+
    ŠvjZý ã                  ó,)  a€ 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^RIHt RRRRRRRRRRR	RR
RRRRRRR/
R lt]! ]P6                  P9                  R4      ]P:                  R7      s]! ]P6                  P9                  R4      ]P:                  R7      s] ! 4       t!Rs"R t#R t$R t%RRRRRRRRRRR	RR
RRRRR/	R lt&RRRRRRRRRRR	RR
RRRRR/	R lt'ERfR lt(ERgR lt)R t*]+! ]PX                  R,           ]-! ^ 4      ,           4      t.R t/R t0]0! R^4      t1]/! R R!4      t2 ! R" R#4      t3]3! 4       t4Rt5R$]6R%&   R!s7R& t8R' t9]P6                  P9                  R(4      t:]:e‰   ](! ]; R)]:: R*24       ](! ]; R+]P6                  R,,           24       ]:R8X  d   ^ RI:t:M.^ RI	t	]	Px                  P{                  R-]:4      P}                  4       t:]:P~                  P€                  P‚                  tAM8 ^R.IHAtA ]C! ]AR/4      '       d   ]APˆ                  ! 4        ]APŠ                  ! 4        R0 tF^R1IGHHtH ^R2IGHItI ^R3IGHJtJ ^R4IGHKtK ^R5IGHLtL ^R6IGHMtM ^R7IGHNtN ^R8IGHOtO ]AP                   tQRtR]S! ]QP©                  R94       U u. uF  p ]F! V 4      NK  	  up 4      tU]U]AP¬                  ]AP®                  ]AP°                  38X  g1   Q R:]U: R;]AP¬                  ]AP®                  ]AP°                  3: 24       h]L]QR3tY]QtZ]Lt[Rt\R<R=/R> lt]]]t^ ]P¾                  t_]PÈ                  ]_,          te]PÈ                  ]f,          tg]PÈ                  ]h,          ti]PÔ                  ]kR3,          tl]PÈ                  ]PÚ                  ,          tn]PÈ                  ]o,          tpR?tqR@trRAtsRBttRC tuERhRD ltvRE twERhRF ltxRG ty^ tz ! RH RI4      t{ ! RJ RK4      t| ! RL RM4      t} ! RN RO4      t~ ! RP RQ4      t ! RR RS4      t€]2'       d   ]EP                  t‚ ! RT RU4      tƒ]ƒt„ ! RV RW4      t… ! RX RY4      t† ! RZ R[4      t‡ ! R\ R]4      tˆ ! R^ R_4      t‰ ! R` Ra]‰4      tŠ]Š! 4       t‹ ! Rb Rc4      tŒ ! Rd Re4      t�^RfIHŽtŽ  ! Rg Rh4      t�ERiRi lt� ! Rj Rk4      t‘ ! Rl Rm4      t’ ! Rn Ro4      t“ ! Rp Rq4      t” ! Rr Rs4      t• ! Rt Ru4      t– ! Rv Rw4      t— ! Rx Ry4      t˜ ! Rz R{4      t™ ! R| R}4      tš ]EP6                  ]œ,          t� ]AEP<                  EP?                  4        FE  w  t t¡] EPE                  ERj4      '       g   K!  ] EPE                  R~4      '       d   K;  ]£! ]�] ]¡4       KG  	  ^ ]AEPJ                  ,          ]AEPL                  ,          ]AEPN                  ,          ]AEPP                  ,          ]AEPR                  ,          ]AEPT                  ,          t«]AEPX                  ^8X  g   Q h]­]AEPZ                  8X  g   Q h]®]AEP\                  8X  g   Q hA�A A¡]EP^                  t°ERkt±/ t²]± F  t³]³]²]³EPi                  4       &   K  	  Rƒ]²R�&   R„]²RŽ&   R…]²R�&   R†]²R�&   R]²R‘&   R€]²R’&   R�]²R“&   R‚]²R”&   R‡]²R•&   R‰]²R–&   Rˆ]²R—&   RŠ]²R˜&   R‹]²R™&   RŒ]²Rš&   R›tµR›t¶ERlt·Rœt¸R�s¹. sº^s»^ s¼]AEPz                  t½]AEP|                  t¾]AEP~                  t¿]AEP€                  tÀ]AEP‚                  tÁ]AEP„                  tÂ]AEP†                  tÃ]AEPˆ                  tÄ^ tÅ^tÆ^tÇ^ tÈ^tÉ^tÊ^tË^tÌ^tÍ^tÎ^tÏ^tÐ^tÑ^tÒ^ tÓ^@tÔ^tÕ^tÖ^ t×^tØ^tÙ^tÚ^tÛ^tÜ^tÝ^tÞ^tß^	tà^
tá^tâ^tã^tä^ tå^tæ^tç^tè^té^tê^të^tì^tí^ tî^tï^tð^tñ^tò]AEPæ                  tô]AEPê                  tö]AEPî                  tø]AEPò                  tú]AEPö                  tü]AEPú                  tþ]AEPþ                  Et ]AEP                  Et]AEP                  Et]AEP
                  Et]AEP                  Et]AEP                  Et
]AEP                  Et]AEP                  Et]UERm8¼  d   ]AEP                  Et]UERn8¼  d   ]AEP"                  Et]AEP&                  Et]AEP*                  Et]AEP.                  Et]AEP2                  Et]AEP6                  Et]AEP:                  Et]AEP>                  Et E]Et!E]Et"^ ]ô,          ]ö,          E] ,          E],          Et#^ ]ô,          ]ö,          E] ,          E],          Et$^ ]ô,          ]ö,          E] ,          ]ø,          E],          Et%E]%Et&^ ]ö,          E] ,          ]ü,          E],          Et'^ ]ô,          ]ö,          E] ,          ]ø,          E],          Et(^ ]ô,          ]ö,          E] ,          ]ø,          E],          Et)^ ]ô,          ]ö,          E] ,          E],          Et*^ ]ô,          ]ö,          E] ,          E],          Et+^ Et,^Et-^Et.^ Es/^Et0^Et1^Et2RžEt3RŸEt4R Et5R¡Et6R¢Et7R£Et8R¤Et9R¥Et:R¦Et;R§Et<R¨Et=R©Et>RªEt?R«Et@R¬EtAR­EtBR®R¯ R°R± R²R³ R´Rµ R¶R· R¸R¹ RºR» /EtC ! R¼ R½E]D4      EtE ! R¾ R¿E]D4      EtF ! RÀ RÁE]E4      EtG]~! E]04      EtH]~! E]14      EtI]~! E]24      EtJRÂEtKRÃEtLRÄEtMRÅEtNRÆEtORÇEtPRÈEtQRÉEtRRÊEtSRËEtTRÌEtURÍEtVRÎEtWRÏEtXRÐEtYRÑEtZRÒEt[RÓEt\RÔEt]RÕEt^RÖEt_R×Et`RØEtaRÙEtbRÚEtcRÛEtdRÜEteRÝEtfRÞEtgRßEthRàEtiRáEtjRâEtkRãEtlRäEtmRåEtnRæEtoRçEtpRèEtqRéEtrRêEtsRëEttRìEtuRíEtvREtwRîEtxRïEtyRðEtzRñEt{RòEt|RóEt}RôEt~RõEt ^ RöEI€EH�Et�EH‚Et‚ E]�EP                  ! 4       Et„E]„EP                  4        F  Et†E]‚E]†,          E]„E]†,          R÷&   K  	  EA�EA‚ERoEtˆERpEt‰Rø EtŠRù Et‹Rú EtŒRû Et�Rü EtŽRý Et�Rþ Et�Rÿ Et‘ER  Et’ER Et“ER Et”ER Et•ER Et–ER Et—ER Et˜ER Et™ER EtšER	 Et›ER
 EtœER ER lEt�ER ER lEtžER EtŸER Et ER Et¡ER Et¢ER Et£ER Et¤ER Et¥ER Et¦ER Et§ER Et¨ER Et©ER EtªER Et«ER Et¬ER Et­ER Et®ER Et¯ER  Et°ER! Et±ER" Et²ER# Et³ER$ Et´ER% EtµER& Et¶ER' Et·ER( Et¸ER) Et¹ER* EtºER+ Et»ER, Et¼ER- Et½ER. Et¾ER/ Et¿ER0 EtÀER1 EtÁER2 EtÂER3 EtÃER4 EtÄER5 EtÅER6 ER7 lEtÆER8 ER9 lEtÇER: EtÈER; EtÉER< EtÊER= EtËER> EtÌER? EtÍER@ EtÎERA EtÏERB EtÐERC EtÑERD EtÒERE EtÓERF EtÔERG EtÕERH EtÖERI Et×ERJ EtØERK EtÙREsÚERL EtÛERM EtÜERN EtÝERO EtÞERP EtßERQ EtàERR EtáERS EtâERT EtãERU EtäERV EtåERW EtæERX EtçERY EtèERZ EtéER[ EtêER\ EtëER] EtìER^ EtíER_ EtîER` EtïERa EtðERb EtñERc EtòERd EtóERe EtôERf EtõERg EtöERh Et÷ERi EtøERj EtùERk EtúERl EtûERm EtüERn EtýERo EtþERp EtÿERq Et ERr EtERs EtERt EtERu EtERv EtERw EtERx EtERy EtERz Et	ER{ Et
ER| EtER} EtER~ EtER EtER€ EtER� EtER‚ EtERƒ EtER„ EtER… EtER† EtER‡ EtERˆEtER‰EtERŠEtER‹EtERŒEtER�EtERŽEtER�EtER�EtER‘Et ER’Et!ER“Et"ER”Et#ER•Et$ER–Et%ER—Et&ER˜Et'ER™Et(ERšEt)ER›Et*ERœEt+ER�Et,ERžEt-ERŸEt.ER Et/ER¡Et0ER¢Et1R½Et2ER£Et3ER¤ Et4ERqER¥ lEt5ER¦ ER§ lEt6ER¨ ER© lEt7ERª ER« lEt8ER¬ ER­ lEt9ER® ER¯ lEt:ER° ER± lEt;ER² ER³ lEt<ER´ ERµ lEt=ER¶ ER· lEt>ER¸ Et?ER¹ Et@ERº ER» lEtAER¼ EtBER½ EtCER¾ EtDER¿ EtEERÀ ERÁ lEtFERÂ ERÃ lEtGERrERÄ lEtHERÅRERÆRRäR/ERÇ ERÈ llEtIERsERÉ ERÊ llEtJERË ERÌ lEtKERÍ EtLERÎ EtMERÏ EtNERÐ EtOERÑ EtPERÒ EtQERÓ EtRERÔ EtSERÕ EtTERÖ EtUER× EtVERØ EtWERÙ EtXERÚ EtYERÛ EtZERÜ Et[ERÝ Et\ERÞ Et]ERß Et^ ! ERà ERá]AEP¾                  4      Et`ERâ EtaERã EtbERä EtcERå EtdERæ EteERç EtfERè EtgERé EthERê EtiERë EtjERì EtkERí EtlERî EtmERï EtnERð EtoERñ ERò lEtp ! ERó ERô]AEPâ                  4      Etr ! ERõ ERö]AEPæ                  4      Ett ! ER÷ ERø]AEPê                  4      EtvERù Etw ! ERú ERû]AEPæ                  4      Etx ! ERü ERý]AEPæ                  4      EtyERtERþ ERÿ llEtzER  ER lEt{ER ER lEt|ER ER lEt}ER Et~ER EtER Et€ER	 Et�ER
 Et‚ER ER lEtƒ ! ER ERE]„4      Et…ER Et†ERuER ER llEt‡ER ER lEtˆER Et‰ERvER ER llEtŠER Et‹ERRERRERRERRERRERR/ER lEtŒERRERRERRERRERRERR/ER lEt�ER  EtŽER! Et�ER" Et�ER# Et‘ER$ Et’ER% Et“ER& Et”ER' Et•ER( Et–ER) Et—ER* Et˜ER+ Et™ER, EtšER- Et›ER. EtœER/ Et�ER0 ER1 lEtžER2 ER3 lEtŸER4 Et ER5 Et¡ERgER6 lEt¢ER7 ER8 lEt£ER9 ER: lEt¤ER; ER< lEt¥ER= Et¦ER> Et§ER? Et¨^Et©^Etª^Et«^Et¬ER@ ERA lEt­ERB Et®ERCERwERD]f! 4       ERERERFERwERG]f! 4       ERHRERIERJERKRERLR/	ERM lEt¯ERHRERIERJERKRERNRERORRØRERPRERQRERRRERLR/
ERS lEt° ! ERT ERU4      Et±]:'       g)   ]AEPd                  ! E]í4       ]AEPf                  ! E]î4       ERV Et´]EPj                  ! E]´4       ^ERWIEH¶Et¶ E]¶EPl                  Et¶]f! 4       Et·E]¶ F=  w  Et¸Et¹EtºEt»E]¹^ÿ,          E]º^ÿ,          E]»^ÿ,          3E]·E]¸EPi                  4       &   K?  	  ERX Et¼ERY Et½ERhERZ lEt¾^ER[IEH¿Et¿ E]¿EP€                  EtÀE]¿EP‚                  EtÁE]¿EP„                  EtÂE]¿EP†                  EtÃE]¿EPˆ                  EtÄ^ER\IEHÅEtÅ  ! ER] ER^E]Æ4      EtÇER_ EtÈ ][EtÉER`][ ERa]Z ERb]EP”                  ^ ,           R9]EP”                  ^,           ERc]EP–                   ERd]EP˜                  ERx8”  d   ^@M^  ERe2tR#   ]B d	    ^ RIAtA EL0i ; iu up i   ]` d    ]a]b,          ]c,          t_ EL;i ; i  E]‡ d    / Et„ E	Li ; i(y  zk
PyMuPDF implemented on top of MuPDF Python bindings.

License:

    SPDX-License-Identifier: GPL-3.0-only
)ÚannotationsN)ÚextraÚtextÚfdÚstreamÚpathÚpath_appendÚ	pyloggingÚpylogging_loggerÚpylogging_levelÚpylogging_nameÚdefaultc        
        ó|  aa€ V Ee1   V P                  R4      '       d   \        V R,          4      pEMV P                  R4      '       d   V R,          pMäV P                  R4      '       d   V R,          pMÃV P                  R4      '       d¡   Rp\        4       p
V R	,          P                  R
4      pV FC  pV'       g   K  VP                  R^4      p\	        V4      ^8X  g   Q RV: R24       hVw  rïWúV&   KE  	  V
P                  R4      oSe   \        S4      oV
P                  RR4      pMQ RT : R24       hVe   \        P                  ! VRRR7      pV# Ve-   \        VR4      '       g   Q h\        VR4      '       g   Q hTpV# Ve   \        P                  ! VR4      pV# Ve   \        P                  ! VR4      pV#  Vf   Sf	   Sf   Vei   ^ RI	pSf   Vf   RpVP                  V4      o\        SVP                  4      '       g   Q hSf   SP                  4       o ! VV3R lR4      pV! 4       pV# T	pV# )aî  
Returns a stream that writes to a specified destination, which can be a
file descriptor, a file, an existing stream or Python's `logging' system.

Args:
    text: text specification of destination.
        fd:<int> - write to file descriptor.
        path:<str> - write to file.
        path+:<str> - append to file.
        logging:<items> - write to Python `logging` module.
            items: comma-separated <name=value> pairs.
                level=<int>
                name=<str>.
            Other names are ignored.
    
    fd: an int file descriptor.
    stream: something with methods .write(text) and .flush().
        If specified we simply return <stream>.
    path: a file path.
        If specified we return a stream that writes to this file.
    path_append: a file path.
        If specified we return a stream that appends to this file.
    pylogging*:
        if any of these args is not None, we return a stream that writes to
        Python's `logging` module.
        
        pylogging:
            Unused other than to activate use of logging module.
        pylogging_logger:
            A logging.Logger; If None, set from <pylogging_name>.
        pylogging_level:
            An int log level, if None we use
            pylogging_logger.getEffectiveLevel().
        pylogging_name:
            Only used if <pylogging_logger> is None:
                If <pylogging_name> is None, we set it to 'pymupdf'.
                Then we do: pylogging_logger = logging.getLogger(pylogging_name)
Nzfd:ºé   NNzpath:ºé   NNzpath+zlogging:T:é   NNÚ,Ú=zNeed `=` in item=Ú.ÚlevelÚnameÚpymupdfz?Expected prefix `fd:`, `path:`. `path+:` or `logging:` in text=ÚwF)ÚmodeÚclosefdÚwriteÚflushÚac                  ó,   <€ ] tR t^”tV V3R ltR tRtR# )Ú_make_output.<locals>.Outc                	ób   <€ VP                  R 4      pV'       d   SP                  SV4       R# R# )Ú
N)ÚrstripÚlog)Úselfr   r   r
   s   &&€€ÚT/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/pymupdf/__init__.pyr   Ú_make_output.<locals>.Out.write•   s+   ø€ ð —{‘{ 4Ó(�ßØ$×(Ñ(¨¸$Ö?ñ ó    c                	ó   € R # ©N© ©r&   s   &r'   r   Ú_make_output.<locals>.Out.flushœ   s   € Ùr)   r,   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__)r   r
   s   €€r'   ÚOutr!   ”   s   ø† ö@ör)   r4   )Ú
startswithÚintÚdictÚsplitÚlenÚgetÚioÚopenÚhasattrÚloggingÚ	getLoggerÚ
isinstanceÚLoggerÚgetEffectiveLevel)r   r   r   r   r   r	   r
   r   r   r   Úitems_dÚitemsÚitemÚnvÚnÚvÚretr>   r4   s   $$$$$$dd$$         r'   Ú_make_outputrJ   .   sF  ù€ ðf Óà�?‰?˜5×!Ò!Ü�T˜"•X“ŠBØ�_‰_˜W×%Ò%Ø˜•8‰DØ�_‰_˜W×%Ò%Ø˜r�(‰KØ�_‰_˜Z×(Ò(ØˆIÜ“fˆGØ˜•H—N‘N 3Ó'ˆEã�ßÙØ—Z‘Z  QÓ'�Ü˜2“w !”|Ð<Ð'9°D±7¸!Ð%<Ó<�|Ø‘�Ø˜“
ñ ð &Ÿk™k¨'Ó2ˆOØÒ*Ü"% oÓ"6�Ø$Ÿ[™[¨°Ó;‰Nà[ÐXÐSWÑRYÐYZÐ[Ó[�1à	‚~Ü�gŠg�b˜s¨EÔ2ˆðH €JðG 
Ò	Ü�v˜w×'Ò'Ð'Ð'Ü�v˜w×'Ò'Ð'Ð'Øˆð@ €Jð? 
Ò	Ü�gŠg�d˜CÓ ˆð< €Jð; 
Ò	 Ü�gŠg�k 3Ó'ˆð8 €Jð7 ØÒ$ØÒ+ØÒ*ØÒ)ãØÒ#ØÒ%Ø!*�Ø&×0Ñ0°Ó@ÐÜÐ*¨G¯N©N×;Ò;Ð;Ð;ØÒ"Ø.×@Ñ@ÓBˆO÷		õ 		ñ ‹eˆð €Jð ˆØ€Jr)   ÚPYMUPDF_MESSAGE)r   r   ÚPYMUPDF_LOGFc                 ó   € \         # r+   ©Ú_g_log_itemsr,   r)   r'   Ú
_log_itemsrP   ­   s   € ÜÐr)   c                ó
   € V s R # r+   )Ú_g_log_items_active)Úactives   &r'   Ú_log_items_activerT   °   s   € à Òr)   c                 ó   € \         R  R# )ºNNNNrN   r,   r)   r'   Ú_log_items_clearrW   ´   s	   € Ü�QŠr)   c        	        ó8   € \        V VVVVVVVV\        R7
      sR# )zG
Sets destination of PyMuPDF messages. See _make_output() for details.
©
r   r   r   r   r   r	   r
   r   r   r   N)rJ   Ú_g_out_message©	r   r   r   r   r   r	   r
   r   r   s	   $$$$$$$$$r'   Úset_messagesr\   ¸   s,   € ô  "ØØØØØ#ØØ-Ø+Ø)Ü"ô‚Nr)   c        	        ó8   € \        V VVVVVVVV\        R7
      sR# )z\
Sets destination of PyMuPDF development/debugging logging. See
_make_output() for details.
rY   N)rJ   Ú
_g_out_logr[   s	   $$$$$$$$$r'   Úset_logr_   Õ   s,   € ô" ØØØØØ#ØØ-Ø+Ø)Üô‚Jr)   Ú c                óÄ  €  \         P                  ! ^ R7      pW!,          p \        P                  P	                  VP
                  4      pVP                  pVP                  pV RV RV RV  2p ?\        '       d   \        P                  V 4       \        '       d   \        V \        ^R7       R# R#   \         d    TP
                  p L‚i ; i  \         d     Lmi ; i)z(
For development/debugging diagnostics.
)ÚcontextÚ:z(): ©Úfiler   N)ÚinspectÚstackÚosr   ÚrelpathÚfilenameÚ	ExceptionÚlinenoÚfunctionÚStopIterationrR   rO   Úappendr^   Úprint)r   Úcallerrg   Úframe_recordrj   Úlinerm   s   &&     r'   r%   r%   ó   sË   € ðÜ—’ aÔ(ˆð •}ˆð	-Ü—w‘w—‘ |×'<Ñ'<Ó=ˆHð ×"Ñ"ˆØ×(Ñ(ˆØ�˜1˜T˜F ! H :¨T°$°Ð8ˆØçÓÜ×Ñ˜DÔ!ßƒzÜˆdœ¨1×-ñ øô ô 	-Ø#×,Ñ,ŠHð	-ûô ô Ùðús"   ‚C ¢)B4 Â4CÃCÃCÃCc                óF   € \         '       d   \        V \         ^R7       R# R# )z
For user messages.
rd   N)rZ   rp   ©r   s   &r'   Úmessagerv     s   € ÷ ƒ~Üˆdœ¨q×1ñ r)   c                 óV   € ^ RI p \        R4       \        V P                  4       4       R# )é    Nzexception_info:)Ú	tracebackr%   Ú
format_exc)ry   s    r'   Úexception_infor{     s   € ÛÜˆ/ÔÜˆ	×ÑÓÖr)   z
()<>[]{}/%c                óÆ   € \         P                  P                  V 4      pVf   TpM"VR8X  d   RpMVR8X  d   RpMQ RT  RT: 24       hW18w  d   \        RV  RV: 24       V# )úq
Returns `True`, `False` or `default` depending on whether $<name> is '1',
'0' or unset. Otherwise assert-fails.
Ú1TÚ0FzUnrecognised value for ú: úUsing non-default setting from )rh   Úenvironr:   r%   ©r   r   rH   rI   s   &&  r'   Úget_env_boolr„     sp   € ô
 	�
‰
�‰˜Ó€AØ‚yØ‰Ø	
ˆcŒØ‰Ø	
ˆcŒØ‰à9Ð+¨D¨6°°A±5Ð9Ó9ˆqØ
„~ÜÐ-¨d¨V°2°a±UÐ;Ô<Ø€Jr)   c                ó–   € \         P                  P                  V 4      pVf   TpM\        V4      pW18w  d   \	        RV  RV 24       V# )r}   r�   r€   )rh   r‚   r:   r6   r%   rƒ   s   &&  r'   Úget_env_intr†   1  sI   € ô
 	�
‰
�‰˜Ó€AØ‚yØ‰ä�!‹fˆØ
„~ÜÐ-¨d¨V°2°a°SÐ9Ô:Ø€Jr)   ÚPYMUPDF_EXCEPTIONS_VERBOSEÚPYMUPDF_USE_EXTRATc                  ó   € ] tR tRtR tRtR# )Ú_GlobalsiK  c                	ó>   € ^ V n         ^ V n        ^ V n        ^ V n        R# ©rx   N)Úno_device_cachingÚsmall_glyph_heightsÚsubset_fontnamesÚskip_quad_correctionsr-   s   &r'   Ú__init__Ú_Globals.__init__L  s"   € Ø!"ˆÔØ#$ˆÔ Ø !ˆÔØ%&ˆÖ"r)   )r�   r�   rŽ   r�   N©r/   r0   r1   r2   r‘   r3   r,   r)   r'   rŠ   rŠ   K  s   † ö'r)   rŠ   z typing.Optional[typing.Callable]Ú_get_layoutc                 ó
   € Rs R# )z:For users who never want to see the layout recommendation.FN)Ú_recommend_layoutr,   r)   r'   Úno_recommend_layoutr—   Z  s
   € ð Òr)   c                 óÞ   € Rp  \         '       d^   \        fT   \        P                  ! R4      R8w  d7   \        P
                  P                  R4      '       g   \        V 4       Rs R# R# R# R# R# )z;Check if we should recommend installing the layout package.zVConsider using the pymupdf_layout package for a greatly improved page layout analysis.NÚPYMUPDF_SUGGEST_LAYOUT_ANALYZERr   zpymupdf.layoutF)r–   r”   rh   ÚgetenvÚ	importlibÚutilÚ	find_specrp   )Úmsgs    r'   Ú_warn_layout_oncerŸ   `  sf   € àd€Cð 	
ßÓÜÒô �IŠIÐ7Ó8¸CÔ?ô —‘×(Ñ(Ð)9×:Ò:äˆcŒ
Ø!Òñ ;ñ @ñ  ñ r)   ÚMUPDF_CPPYYz: $MUPDF_CPPYY=z% so attempting to import mupdf_cppyy.z: $PYTHONPATH=Ú
PYTHONPATHÚmupdf_cppyy)ÚmupdfÚinternal_check_ndebugc                óR   € V P                  R4      pV^ 8¼  d   V RV p \        V 4      # )z4
Converts string to int, ignoring trailing 'rc...'.
ÚrcN)Úfindr6   )r   r¦   s   & r'   Ú_int_rcr¨   ’  s-   € ð 
�‰�4‹€BØ	ˆQ„wØ�C�RˆyˆÜˆt‹9Ðr)   )Úmupdf_location)Úpymupdf_git_branch)Úpymupdf_git_diff)Úpymupdf_git_sha)Úpymupdf_version)Úpymupdf_version_tuple)Úswig_version)Úswig_version_tupler   z8Inconsistent MuPDF version numbers: mupdf_version_tuple=zM != (mupdf.FZ_VERSION_MAJOR, mupdf.FZ_VERSION_MINOR, mupdf.FZ_VERSION_PATCH)=Úfmtz%gc               óÈ   € \        V \        \        34      '       d2   RpV  F'  pV'       d
   VR,          pV\        W1R7      ,          pK)  	  V# \        P
                  ! W4      # )z¼
Returns `value` formatted with mupdf.fz_format_double() if available,
otherwise with Python's `%`.

If `value` is a list or tuple, we return a space-separated string of
formatted values.
r`   Ú )r±   )r@   ÚlistÚtupleÚ	_format_gr£   Úfz_format_double)Úvaluer±   rI   rH   s   &$  r'   r¶   r¶   ¿  sW   € ô �%œ$¤˜×'Ò'ØˆÛˆAßØ�s•
�Ø”9˜QÔ(Õ(ŠCñ ð ˆ
ä×%Ò% cÓ1Ð1r)   Úmatrix_likeÚ
point_likeÚ	quad_likeÚ	rect_likec                ób  € \        V \        4      '       d*   V P                  '       d   \        R4      hV P                  p \        V \
        P                  4      '       d   V # \        V \
        P                  4      '       d   V P                  4       # V f   Q R4       hQ R\        T 4      : 24       h)zn
Returns document as a mupdf.FzDocument, upcasting as required. Raises
'document closed' exception if closed.
údocument closedúdocument is NoneúUnrecognised type(document)=)
r@   ÚDocumentÚ	is_closedÚ
ValueErrorÚthisr£   Ú
FzDocumentÚPdfDocumentÚsuperÚtype)Údocuments   &r'   Ú_as_fz_documentrÊ   è  s’   € ô
 �(œH×%Ò%Ø××ÐÜÐ.Ó/Ð/Ø—=‘=ˆÜ�(œE×,Ñ,×-Ò-ØˆÜ	�Hœe×/Ñ/×	0Ò	0Ø�~‰~ÓÐØ	Ò	Ø%Ð$Ó%ˆqà3Ð1¤$ x£.Ñ!2Ð3Ó3ˆqr)   c                óª  € \        V \        4      '       d*   V P                  '       d   \        R4      hV P                  p \        V \
        P                  4      '       d   V # \        V \
        P                  4      '       d5   \
        P                  ! V 4      pV'       d   VP                  '       g   Q hV# V f   Q R4       hQ R\        T 4      : 24       h)zí
Returns `document` downcast to a mupdf.PdfDocument. If downcast fails (i.e.
`document` is not actually a `PdfDocument`) then we assert-fail if `required`
is true (the default) else return a `mupdf.PdfDocument` with `.m_internal`
false.
r¾   r¿   rÀ   )
r@   rÁ   rÂ   rÃ   rÄ   r£   rÆ   rÅ   Ú
m_internalrÈ   )rÉ   ÚrequiredrI   s   && r'   Ú_as_pdf_documentrÎ   ú  s«   € ô �(œH×%Ò%Ø××ÐÜÐ.Ó/Ð/Ø—=‘=ˆÜ�(œE×-Ñ-×.Ò.ØˆÜ	�Hœe×.Ñ.×	/Ò	/Ü×Ò Ó)ˆßØ—>—>�>Ð!�>Øˆ
Ø	Ò	Ø%Ð$Ó%ˆqà3Ð1¤$ x£.Ñ!2Ð3Ó3ˆqr)   c                ó(  € \        V \        4      '       d   V P                  p \        V \        P                  4      '       d   V P                  4       # \        V \        P                  4      '       d   V # V f   Q R4       hQ R\        T 4      : 24       h)z8
Returns page as a mupdf.FzPage, upcasting as required.
úpage is NoneúUnrecognised type(page)=)r@   ÚPagerÄ   r£   ÚPdfPagerÇ   ÚFzPagerÈ   ©Úpages   &r'   Ú_as_fz_pager×     sr   € ô �$œ×ÒØ�y‰yˆÜ�$œŸ™×&Ò&Ø�z‰z‹|ÐÜ	�Dœ%Ÿ,™,×	'Ò	'ØˆØ	ŠØ!�LÓ!ˆqà/Ð-¤$ t£*¡Ð/Ó/ˆqr)   c                óp  € \        V \        4      '       d   V P                  p \        V \        P                  4      '       d   V # \        V \        P
                  4      '       d5   \        P                  ! V 4      pV'       d   VP                  '       g   Q hV# V f   Q R4       hQ R\        T 4      : 24       h)zÙ
Returns `page` downcast to a mupdf.PdfPage. If downcast fails (i.e. `page`
is not actually a `PdfPage`) then we assert-fail if `required` is true (the
default) else return a `mupdf.PdfPage` with `.m_internal` false.
rÐ   rÑ   )	r@   rÒ   rÄ   r£   rÓ   rÔ   Úpdf_page_from_fz_pagerÌ   rÈ   )rÖ   rÍ   rI   s   && r'   Ú_as_pdf_pagerÚ      sŒ   € ô �$œ×ÒØ�y‰yˆÜ�$œŸ™×&Ò&ØˆÜ	�Dœ%Ÿ,™,×	'Ò	'Ü×)Ò)¨$Ó/ˆßØ—>—>�>Ð!�>Øˆ
Ø	ŠØ!�LÓ!ˆqà/Ð-¤$ t£*¡Ð/Ó/ˆqr)   c                ól   € \         P                  ! V 4      pVP                  '       g   \        R4      hV# )a   
Wrapper for mupdf.pdf_annot_page() which raises an exception if <annot>
is not bound to a page instead of returning a mupdf.PdfPage with
`.m_internal=None`.

[Some other MuPDF functions such as pdf_update_annot()` already raise a
similar exception if a pdf_annot's .page field is null.]
úAnnot is not bound to a page)r£   Úpdf_annot_pagerÌ   ÚRuntimeError)ÚannotrÖ   s   & r'   Ú_pdf_annot_pagerà   5  s.   € ô ×Ò Ó&€DØ�?�?ˆ?ÜÐ9Ó:Ð:Ø€Kr)   c                  ó´  € ] tR tRtR tR tR tR tR tR t	R t
RCR	 ltRDR lt]R 4       t]R 4       t]R 4       t]R 4       tRER lt]R 4       tR t]R 4       t]R 4       tR tR tR tRFR ltR tR tR tRGR lt]R 4       t]R 4       t ]R 4       t!]R  4       t"]R! 4       t#]R" 4       t$]R# 4       t%]R$ 4       t&]R% 4       t']R& 4       t(]R' 4       t)]R( 4       t*]R) 4       t+R* t,R+ t-R, t.RHR- lt/RIR. lt0R/ t1RJR0 lt2R1 t3RKR2 lt4R3 t5R4 t6RCR5 lt7R6 t8R7 t9R8 t:R9 t;RCR: lt<]R; 4       t=RLR< R= llt>RMR> lt?]@R? 4       tA]R@ 4       tB]RA 4       tCRBtDR
# )NÚAnnotiJ  c                	óV   € \        V\        P                  4      '       g   Q hWn        R # r+   )r@   r£   ÚPdfAnnotrÄ   ©r&   rß   s   &&r'   r‘   ÚAnnot.__init__L  s   € Ü˜5¤%§.¡.×1Ò1Ð1Ð1ØŽ	r)   c                	ó,   € \        V P                  4      # r+   )ÚboolrÄ   r-   s   &r'   Ú__bool__ÚAnnot.__bool__P  s   € Ü�D—I‘I‹Ðr)   c                	óN   € \        V R R4      pRV P                  ^,           RV 2# )Úparentz<>Ú'z' annotation on )ÚgetattrrÈ   )r&   rì   s   & r'   Ú__repr__ÚAnnot.__repr__S  s,   € Ü˜˜x¨Ó.ˆØ�4—9‘9˜Q•<�.Ð 0°°Ð9Ð9r)   c                	ó"   € V P                  4       # r+   )rï   r-   s   &r'   Ú__str__ÚAnnot.__str__W  s   € Ø�}‰}‹Ðr)   c                	ó>   € \        V R R4      '       d
   RV n        R# R# )ÚthisownFN)rî   rõ   r-   s   &r'   Ú_eraseÚAnnot._eraseZ  s   € Ü�4˜ E×*Ò*Ø ˆDŽLñ +r)   c                	óü  € V P                   p\        P                  ! V4      \        P                  8w  d   R # \	        4       p \        P
                  ! \        P                  ! V4      R4      pVP                  '       d*   \        R4       \        P                  ! V4      pWB\        &   \        P
                  ! \        P                  ! V4      R4      pVP                  '       d*   \        P                  ! V4      p\        V4      V\        &   M	RV\        &   \        P                  ! \        P                  ! V4      \        R4      4      p^ pVP                  '       d   \        P                   ! V4      pWb\"        &   TpT'       g   T# T P*                  TR&   \,        P/                  T 4      w  r‰p
Y‡R&   Y—R&   Y§R	&   T P0                  R
,          pY·R
&   T#   \$         d    \&        '       d   \)        4         R # i ; i)NÚROzIgnoring redaction key '/RO'.ÚOverlayTextr`   ÚQÚrectÚ
text_colorÚfontnameÚfontsizeÚfill)rÄ   r£   Úpdf_annot_typeÚPDF_ANNOT_REDACTr7   Úpdf_dict_getsÚpdf_annot_objrÌ   Úmessage_warningÚ
pdf_to_numÚdictkey_xrefÚpdf_to_text_stringÚJM_UnicodeFromStrÚdictkey_textÚpdf_dict_getÚPDF_NAMEÚ
pdf_to_intÚdictkey_alignrk   Úg_exceptions_verboser{   rü   ÚTOOLSÚ	_parse_daÚcolors)r&   rß   ÚvaluesÚobjÚxrefr   ÚalignÚvalrý   rþ   rÿ   r   s   &           r'   Ú_get_redact_valuesÚAnnot._get_redact_values^  sŽ  € Ø—	‘	ˆÜ×Ò Ó&¬%×*@Ñ*@Ô@Ùä“ˆð	Ü×%Ò%¤e×&9Ò&9¸%Ó&@À$ÓGˆCØ�~�~ˆ~ÜÐ ?Ô@Ü×'Ò'¨Ó,�Ø'+”|Ñ$Ü×%Ò%¤e×&9Ò&9¸%Ó&@À-ÓPˆCØ�~�~ˆ~Ü×/Ò/°Ó4�Ü'8¸Ó'>�”|Ò$à')�”|Ñ$Ü×$Ò$¤U×%8Ò%8¸Ó%?ÄÈ#ÃÓOˆCØˆEØ�~�~ˆ~Ü×(Ò(¨Ó-�Ø$)”=Ñ!ð ˆçØˆJØ—i‘iˆˆF‰Ü).¯©¸Ó)>Ñ&ˆ
˜hØ&ˆLÑØ"ˆJ‰Ø"ˆJ‰Ø�{‰{˜6Õ"ˆØˆF‰Øˆ
øô ô 	ß#Ó#¬Ô(8Úð	ús    ÁB"G Ã&BG ÇG;Ç-
G;Ç:G;c                	ó|  € \         '       dg   \        V P                  \        P                  4      '       g   Q h\
        P                  ! V P                  4      p\        V\        4      '       g   Q hV# R pR pV P                  p\        V\        P                  4      '       g   Q h\        P                  ! V4      p\        P                  ! V\        R4      \        R4      4      p\        P                  ! V4      '       d   \        P                  ! V4      pV'       d   VP                  '       d   \        V4      pV# )NÚAPÚN)Úg_use_extrar@   rÄ   r£   rä   r   ÚAnnot_getAPÚbytesr  Úpdf_dict_getlr  Úpdf_is_streamÚpdf_load_streamrÌ   ÚJM_BinFromBuffer)r&   rI   ÚrÚresrß   Ú	annot_objÚaps   &      r'   Ú_getAPÚAnnot._getAP…  sß   € ß‹;Ü˜tŸy™y¬%¯.©.×9Ò9Ð9Ð9Ü×#Ò# D§I¡IÓ.ˆCÜ˜s¤E×*Ò*Ð*Ð*ØˆJàˆAØˆCØ—I‘IˆEÜ˜u¤e§n¡n×5Ò5Ð5Ð5Ü×+Ò+¨UÓ3ˆIÜ×$Ò$ i´¸$³ÄÈ#ÃÓOˆBÜ×"Ò" B×'Ò'Ü×+Ò+¨RÓ0�ß�s—~—~�~Ü$ SÓ)�ØˆHr)   c                	óÈ  €  V P                   p\        P                  ! V4      p\        V4      p\        P                  ! V\        R 4      \        R4      4      pVP                  '       g   \        \        4      h\        P                  ! V4      '       g   \        \        4      h\        V4      pVP                  '       g   \        \        4      h\        VP                  4       Wg^4       V'       dD   \        P                  ! V\        R4      4      p\        P                   ! V\        R4      V4       R# R#   \"         d    \$        '       d   \'        4         R#  R# i ; i)r  r  ÚRectÚBBoxN)rÄ   r£   r  rà   r   r  rÌ   rÞ   ÚMSG_BAD_APNr!  ÚJM_BufferFromBytesrÃ   ÚMSG_BAD_BUFFERÚJM_update_streamÚdocÚpdf_dict_get_rectÚpdf_dict_put_rectrk   r  r{   )	r&   Úbuffer_rü   rß   r&  rÖ   Úapobjr%  Úbboxs	   &&&      r'   Ú_setAPÚAnnot._setAP˜  sþ   € ð	9Ø—I‘IˆEÜ×+Ò+¨UÓ3ˆIÜ" 5Ó)ˆDÜ×'Ò'¨´H¸T³NÄHÈSÃMÓRˆEØ×#×#Ð#Ü"¤KÓ0Ð0Ü×&Ò&¨×.Ò.Ü"¤KÓ0Ð0Ü$ gÓ.ˆCØ—>—>�>Ü ¤.Ó1Ð1Ü˜dŸh™h›j¨%°aÔ8ßÜ×.Ò.°	¼8ÀFÓ;KÓL�Ü×'Ò'¨´¸Ó0@À$ÖGñ øô ô 	9ß#Ó#¬×(8Ò#ð	9ús   ‚BD9 ÂBD9 Ä9E!Å
E!Å E!Nc                	óÐ
  € V P                   pVP                  '       g   Q h\        P                  ! V4      p\	        V4      pVP                  4       p\        P                  ! V4      p	\        V4      w  r« V
^ 8X  gS   V	\        P                  \        P                  \        P                  \        P                  \        P                  39  d"   \        P                  ! V\        R4      4       M V
^ 8”  d   \        P                  ! W[RV
 4       V^ 8¼  d   ^M^ pV	\        P                   \        P                  \        P"                  \        P$                  \        P&                  \        P                  \        P                  \        P                  \        P                  \        P(                  \        P*                  39  d   ^ pV'       d"   \        P,                  ! V\        R4      V4       V	\        P"                  8X  d"   V
^ 8”  d   \        P.                  ! W[RV
 4       M|V
^ 8”  dv   \        P0                  ! VP                  4       V
4      p\3        V
4       F   p\        P4                  ! WÛV,          4       K"  	  \        P6                  ! V\        R4      V4       \        P8                  ! V4       \        P:                  ! V4       ^ Vn        T^ 8  g   T^8¼  d   T'       g   R#  \        PF                  ! \        P                  ! T4      \        R4      \        R4      4      pTP                  '       g   \I        \J        4      h\        PL                  ! T\        R4      4      pTP                  '       g"   \        PN                  ! T\        R4      ^4      p\        PP                  ! TP                  4       ^4      pT^ 8¼  dk   T^8  dd   \        PR                  ! T\        R	4      T4       \        PR                  ! T\        R
4      T4       \        PR                  ! T\        R	4      T4       T'       dC   \        PT                  ! T\        R4      T4       \        PT                  ! T\        R4      T4       \        PL                  ! T\        R4      4      pTP                  '       g"   \        PN                  ! T\        R4      ^4      p\        P6                  ! T\        R4      T4       R#   \>         d+   p\@        '       d   \C        4        \E        RT 24       h Rp?ii ; i  \>         d+   p\@        '       d   \C        4        \E        RT 24       h Rp?ii ; i)rx   ÚICNÚRotatezcannot update annot: Tr  r  Ú	ResourcesÚCAÚcaÚBMÚ	ExtGStateÚHz#cannot set opacity or blend mode
: )+rÄ   rÌ   r£   r  rà   r1  r  ÚJM_color_FromSequenceÚPDF_ANNOT_SQUAREÚPDF_ANNOT_CIRCLEÚPDF_ANNOT_LINEÚPDF_ANNOT_POLY_LINEÚPDF_ANNOT_POLYGONÚpdf_dict_delr  Úpdf_set_annot_interior_colorÚPDF_ANNOT_CARETÚPDF_ANNOT_FREE_TEXTÚPDF_ANNOT_FILE_ATTACHMENTÚPDF_ANNOT_INKÚPDF_ANNOT_STAMPÚPDF_ANNOT_TEXTÚpdf_dict_put_intÚpdf_set_annot_colorÚpdf_new_arrayÚrangeÚpdf_array_push_realÚpdf_dict_putÚpdf_dirty_annotÚpdf_update_annotÚresynth_requiredrk   r  r{   rv   r   rÞ   r-  r  Úpdf_dict_put_dictÚpdf_new_dictÚpdf_dict_put_realÚpdf_dict_put_name)r&   ÚopacityÚ
blend_modeÚ
fill_colorÚrotaterß   r&  rÖ   ÚpdfÚtype_ÚnfcolÚfcolÚ
insert_rotÚcolÚiÚer'  Ú	resourcesÚalp0Úextgs   &&&&&               r'   Ú_update_appearanceÚAnnot._update_appearance¬  sþ  € Ø—	‘	ˆØ××ÐÐÐÜ×'Ò'¨Ó/ˆ	Ü˜uÓ%ˆØ�h‰h‹jˆÜ×$Ò$ eÓ,ˆÜ+¨JÓ7‰ˆð1	ð ˜Œz˜UÜ×*Ñ*Ü×*Ñ*Ü×(Ñ(Ü×-Ñ-Ü×+Ñ+ð+ô ô ×"Ò" I¬x¸«~Õ>Ø˜”Ü×2Ò2°EÀÀ¸<ÔHà$¨œk™¨qˆJØÜ×)Ñ)Ü×*Ñ*Ü×-Ñ-Ü×3Ñ3Ü×'Ñ'Ü×(Ñ(Ü×-Ñ-Ü×+Ñ+Ü×*Ñ*Ü×)Ñ)Ü×(Ñ(ðô ð �
çÜ×&Ò& y´(¸8Ó2DÀfÔMð œ×1Ñ1Ô1Ø˜1”9Ü×-Ò-¨e¸&¸5°\ÔBøØ˜”Ü×)Ò)¨$¯(©(«*°eÓ<�Ü ž�AÜ×-Ò-¨c¸µ7Ö;ñ 'ä×"Ò" 9¬h°t«n¸cÔBÜ×!Ò! %Ô(Ü×"Ò" 5Ô)Ø#$ˆCÔ ð �aŒK˜7 aœ<·Ùð 	Ü×$Ò$Ü×'Ò'¨Ó.Ü˜T“NÜ˜S“MóˆBð
 —=—=�=Ü"¤KÓ0Ð0ä×*Ò*¨B´¸Ó0EÓFˆIØ×'×'Ð'Ü!×3Ò3°R¼À+Ó9NÐPQÓR�	ä×%Ò% t§x¡x£z°1Ó5ˆDØ˜!Œ| ¨!¤Ü×'Ò'¨¬x¸«~¸wÔGÜ×'Ò'¨¬x¸«~¸wÔGÜ×'Ò'¨´H¸T³NÀGÔLçÜ×'Ò'¨¬x¸«~¸zÔJÜ×'Ò'¨´H¸T³NÀJÔOä×%Ò% y´(¸;Ó2GÓHˆDØ—?—?�?Ü×.Ò.°	¼8ÀKÓ;PÐRSÓT�ä×Ò ¤h¨s£m°TÔ:ñ øôW ô 	ß#Ó#ÜÔ ÜÐ,¨Q¨CÐ0Ô1Øûð		ûôL ô 	ß#Ó#¬Ô(8ÜÐ;¸A¸3Ð?Ô@Øûð	ús@   Á6ES8 ÇDS8 Ë0ET0 Ñ B6T0 Ó8T-Ô%T(Ô(T-Ô0U%Ô;%U Õ U%c                ó2  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V\        R4      \        R4      4      pVP                  '       g9   \        \        P                  ! \        P                  P                  4      4      pM+\        P                  ! V\        R4      4      p\        V4      p\        V4      V P                  4       P                  ,          pW@P                  4       P                  ,          pV# )zannotation appearance bboxr  r  r,  )ÚCheckParentrÄ   r£   r  r   r  rÌ   ÚJM_py_from_rectÚFzRectÚFixed_INFINITEr2  r+  Ú
get_parentÚtransformation_matrixÚderotation_matrix)r&   rß   r&  r'  r  rü   s   &     r'   Úapn_bboxÚAnnot.apn_bbox  s½   € ô 	�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°T«N¼HÀS»MÓJˆØ�}�}ˆ}Ü!¤%§,¢,¬u¯|©|×/JÑ/JÓ"KÓL‰Cä×*Ò*¨2¬x¸Ó/?Ó@ˆDÜ! $Ó'ˆCä�3‹i˜$Ÿ/™/Ó+×AÑAÕAˆØ�‰Ó ×2Ñ2Õ2ˆØˆ
r)   c                ó,  €  \        V 4       V P                  p\        V\        P                  4      '       g   Q h\        P
                  ! \        P                  ! V4      \        P                  \        P                  4      pVP                  '       g   \        \        P                  ! 4       4      # \        P                  ! V\        P                  4      p\        V4      p\        V4      pV#   \         d    \         '       d   \#        4        h i ; i)zannotation appearance matrix)ro  rÄ   r@   r£   rä   r   r  ÚPDF_ENUM_NAME_APÚPDF_ENUM_NAME_NrÌ   ÚJM_py_from_matrixÚFzMatrixÚpdf_dict_get_matrixÚPDF_ENUM_NAME_MatrixÚMatrixrk   r  r{   )r&   rß   r'  Úmatr  s   &    r'   Ú
apn_matrixÚAnnot.apn_matrix   sÉ   € ð	Ü˜ÔØ—I‘IˆEÜ˜e¤U§^¡^×4Ò4Ð4Ð4Ü×$Ò$Ü×'Ò'¨Ó.Ü×*Ñ*Ü×)Ñ)óˆBð
 —=—=�=Ü(¬¯ªÓ)9Ó:Ð:Ü×+Ò+¨B´×0JÑ0JÓKˆCÜ# CÓ(ˆCä˜“+ˆCàˆJøÜô 	ß#Ó#¬Ô(8Øð	ús   ‚BC0 ÂC0 Â3<C0 Ã0DÄDc           
     ó®  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V\        R4      4      pRpVP                  '       d"   \        \        P                  ! V4      4      pV# \        P                  ! V\        R4      \        R4      \        R4      \        R4      4      p\        P                  ! V4      '       dù   \        P                  ! V4      p\        V4       FÓ  p\        P                  ! W64      p\        P                  ! V4      '       g   K7  \        P                  ! V4      p\        V4       Fw  p	\        P                  ! Wy4      p
\        P                  ! V
\        R4      4      ^ 8X  g   K@  \        \        P                  ! \        P                  ! Wy4      4      4      pVu u # 	  KÕ  	  V# )zannotation BlendModer?  Nr  r  r<  r@  )ro  rÄ   r£   r  r  r  rÌ   r	  Úpdf_to_namer   Úpdf_is_dictÚpdf_dict_lenrS  Úpdf_dict_get_valÚpdf_dict_get_keyÚ
pdf_objcmp)r&   rß   r&  r  r^  rG   rg  Úobj1ÚmÚjÚobj2s   &          r'   Ú	blendmodeÚAnnot.blendmode8  s]  € ô 	�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°T«NÓ;ˆØˆ
Ø�>�>ˆ>Ü*¬5×+<Ò+<¸SÓ+AÓBˆJØÐä×!Ò!ØÜ˜“Ü˜“Ü˜Ó%Ü˜Ó%óˆô ×Ò˜S×!Ò!Ü×"Ò" 3Ó'ˆAÜ˜1–X�Ü×-Ò-¨cÓ5�Ü×$Ò$ T×*Ô*Ü×*Ò*¨4Ó0�AÜ" 1žX˜Ü$×5Ò5°dÓ>˜Ü ×+Ò+¨D´(¸4³.ÓAÀQÖFÜ):¼5×;LÒ;LÌU×McÒMcÐdhÓMlÓ;mÓ)n˜JØ#-Ô-ó	 &ñ	 ð Ðr)   c                óŒ  € \        V 4       V P                  ^ ,          pV\        P                  \        P                  \        P
                  \        P                  \        P                  \        P                  \        P                  39  d   \        4       # \        P                  ! V P                  4      p\        V4      pV# )zBorder information.)ro  rÈ   r£   rD  rK  rM  rE  rF  rG  rC  r7   r  rÄ   ÚJM_annot_border)r&   ÚatypeÚaorI   s   &   r'   ÚborderÚAnnot.borderX  s‘   € ô 	�DÔØ—	‘	˜!•ˆØÜ×&Ñ&Ü×)Ñ)Ü×#Ñ#Ü×$Ñ$Ü×)Ñ)Ü×'Ñ'Ü×&Ñ&ðô ô “6ˆMÜ× Ò  §¡Ó+ˆÜ˜bÓ!ˆØˆ
r)   c                óÔ   € \        V 4       V P                  p\        P                  ! \        P                  ! V4      4      p\        ^^ ^ VR7      p\        P                  ! W2V4       R# )z!Clean appearance contents stream.)ÚrecurseÚinstance_formsÚasciiÚsanitizeN)ro  rÄ   r£   Úpdf_get_bound_documentr  Ú_make_PdfFilterOptionsÚpdf_filter_annot_contents)r&   rš  rß   ra  Úfilter_s   &&   r'   Úclean_contentsÚAnnot.clean_contentsk  sO   € ä�DÔØ—	‘	ˆÜ×*Ò*¬5×+>Ò+>¸uÓ+EÓFˆÜ(°À1ÈAÐX`ÔaˆÜ×'Ò'¨°GÖ<r)   c                ó   €  \        V 4       V P                  p\        V\        P                  4      '       g   Q h\        \        P                  ! V4      4      #   \         d    \        '       d   \        4        h i ; i)zColor definitions.)
ro  rÄ   r@   r£   rä   ÚJM_annot_colorsr  rk   r  r{   rå   s   & r'   r  ÚAnnot.colorss  sb   € ð	Ü˜ÔØ—I‘IˆEÜ˜e¤U§^¡^×4Ò4Ð4Ð4Ü"¤5×#6Ò#6°uÓ#=Ó>Ð>øÜô 	ß#Ó#¬Ô(8Øð	ús   ‚AA ÁA=Á1A=c                óD  € \        V 4       V P                  p\        P                  ! V4      p\	        V4      p \        V4      pV'       g   M\        P                  ! W44       K-  \        P                  ! V\        R4      4       \        P                  ! VP                  4       \        R4      4      p\        P                  ! V4      p^ p\        V^,
          RR4       Fƒ  p\        P                  ! WX4      p	\        P                  ! V	\        R4      4      p
V	P                  '       g   KM  \        P                  ! W¢4      '       d   Kk  \        P                   ! WX4       ^pK…  	  V'       d2   \        P"                  ! VP                  4       \        R4      V4       R# R# )z*Delete 'Popup' and responding annotations.ÚPopupÚAnnotsÚParentNéÿÿÿÿ)ro  rÄ   r£   r  rà   ÚJM_find_annot_irtÚpdf_delete_annotrH  r  r  r  Úpdf_array_lenrS  Úpdf_array_getrÌ   r‰  Úpdf_array_deleterU  )r&   rß   r&  rÖ   Ú	irt_annotÚannotsrG   Úfoundrg  ÚoÚps   &          r'   Údelete_responsesÚAnnot.delete_responses  s*  € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü˜uÓ%ˆØÜ)¨%Ó0ˆIßØÜ×"Ò" 4Ö3Ü×Ò˜9¤h¨wÓ&7Ô8ä×#Ò# D§H¡H£J´¸Ó0BÓCˆÜ×Ò Ó'ˆØˆÜ�q˜•s˜B Ö#ˆAÜ×#Ò# FÓ.ˆAÜ×"Ò" 1¤h¨xÓ&8Ó9ˆAØ—<—<�<ÙÜ×#Ò# A×1Ô1Ü×&Ò& vÔ1Ø’ñ $÷ Ü×Ò˜tŸx™x›z¬8°HÓ+=¸vÖFñ r)   c                ó.  € \        V 4       \        4       pRpRpRpV P                  p\        P                  ! V4      p\        P
                  ! V4      pV\        P                  8w  d   \        \        4      h\        P                  ! V\        R4      \        R4      \        R4      4      pVP                  '       g   \        R\        4       \        P                  ! V\        R4      4      p	\        P                  ! V	\        R4      4      p
V
P                  '       d   \        P                  ! V
4      pMH\        P                  ! V	\        R4      4      p
V
P                  '       d   \        P                  ! V
4      p\        P                  ! V	\        R4      4      p
V
P                  '       d   \        P                  ! V
4      p\        P                  ! V\        R4      4      p
V
P                  '       d   \        P                   ! V
4      p\        P                  ! V\        R	4      \        R
4      4      p
V
P                  '       d   \        P                   ! V
4      p\#        X4      V\$        &   \'        V4      V\(        &   W!\*        &   W1\,        &   V# )zAttached file information.NÚFSÚEFÚFúbad PDF: file entry not foundÚUFÚDescÚLengthÚParamsÚSizer¨  )ro  r7   rÄ   r£   r  r  rL  Ú	TypeErrorÚMSG_BAD_ANNOT_TYPEr   r  rÌ   ÚRAISEPYÚJM_Exc_FileDataErrorr  r  r  ÚJM_EscapeStrFromStrÚdictkey_filenamer	  Údictkey_descrÚdictkey_lengthÚdictkey_size)r&   r%  ÚlengthÚsizeÚdescrß   r&  rb  r   Úfsr±  rj   s   &           r'   Ú	file_infoÚAnnot.file_infoš  sæ  € ô 	�DÔÜ‹fˆØˆØˆØˆØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×$Ò$ UÓ+ˆØ”E×3Ñ3Ô3ÜÔ/Ó0Ð0Ü×$Ò$ØÜ˜“Ü˜“Ü˜“ó	ˆð × × Ð ÜÐ4Ô6JÔKä×Ò 	¬8°D«>Ó:ˆä×Ò˜r¤8¨D£>Ó2ˆØ�<�<ˆ<Ü×/Ò/°Ó2‰Hä×"Ò" 2¤x°£}Ó5ˆAØ�|�|ˆ|Ü ×3Ò3°AÓ6�ä×Ò˜r¤8¨FÓ#3Ó4ˆØ�<�<ˆ<Ü×+Ò+¨AÓ.ˆDä×Ò˜v¤x°Ó'9Ó:ˆØ�<�<ˆ<Ü×%Ò% aÓ(ˆFä×Ò ¬°Ó(:¼HÀVÓ<LÓMˆØ�<�<ˆ<Ü×#Ò# AÓ&ˆDä!4°XÓ!>ˆÔÑÜ/°Ó5ˆŒ]ÑØ%Œ^ÑØ!Œ\ÑØˆ
r)   c                ó\   € \        V 4       V P                  p\        P                  ! V4      # )zFlags field.)ro  rÄ   r£   Úpdf_annot_flagsrå   s   & r'   ÚflagsÚAnnot.flagsÌ  s&   € ô 	�DÔØ—	‘	ˆÜ×$Ò$ UÓ+Ð+r)   c                óÂ  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V4      pV\        P
                  8w  d   \        \        4      h\        P                  ! V\        R4      \        R4      \        R4      4      pVP                  '       g   \        R\        4       \        P                  ! V4      p\        V4      pV# )zRetrieve attached file content.r¶  r·  r¸  r¹  )ro  rÄ   r£   r  r  rL  r¿  rÀ  r   r  rÌ   rÁ  rÂ  r"  r#  )r&   rß   r&  rÈ   r   Úbufr%  s   &      r'   Úget_fileÚAnnot.get_fileÓ  s©   € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×#Ò# EÓ*ˆØ”5×2Ñ2Ô2ÜÔ/Ó0Ð0Ü×$Ò$ Y´¸³ÄÈÃÔPXÐY\ÓP]Ó^ˆØ× × Ð ÜÐ4Ô6JÔKÜ×#Ò# FÓ+ˆÜ˜sÓ#ˆØˆ
r)   c                óô   € \        V 4       ^ pV P                  p\        P                  ! V4      p\        P                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      pV# )z*Get annotation optional content reference.ÚOC©ro  rÄ   r£   r  r  r  rÌ   r  )r&   Úocrß   r&  r  s   &    r'   Úget_ocÚAnnot.get_ocâ  s\   € ä�DÔØˆØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°T«NÓ;ˆØ�>�>ˆ>Ü×!Ò! #Ó&ˆBØˆ	r)   c                	ó.  €  \        V R 4      pV#   \         dz    \        T P                  4      p\	        T\
        P                  4      '       g   Q hTP                  '       d   \        TP                  4       4      MRp\        Y#4      pYn         T# i ; i)rì   N)rî   ÚAttributeErrorrà   rÄ   r@   r£   rÓ   rÌ   rÁ   r1  rÒ   rì   )r&   rI   rÖ   rÉ   s   &   r'   rs  ÚAnnot.get_parentð  s€   € ð	Ü˜4 Ó*ˆCð ˆ
øô ô 	Ü" 4§9¡9Ó-ˆDÜ˜t¤U§]¡]×3Ò3Ð3Ð3Ø04··°”x §¡£Ô,ÀTˆHÜ�tÓ&ˆCà�Kð ˆ
ð	ús   ‚ �ABÁ$,BÂBc                óø  € \        V 4       R\        R\        R\        /p\	        V4      \
        J d!   VP                  VP                  4       R4      pV'       d   \        V^H,          V^H,          4      p\        V4      pTpV'       g   \        P                  ! 4       p\        P                  ! V P                  Wg\        P                  ! ^ 4      V4      p\        V4      p	V'       d   V	P!                  W"4       V	# )zannotation PixmapÚgrayÚrgbÚcmykN)ro  ÚcsGRAYÚcsRGBÚcsCMYKrÈ   Ústrr:   Úlowerr  ÚJM_matrix_from_pyr£   Úfz_device_rgbÚpdf_new_pixmap_from_annotrÄ   ÚFzSeparationsÚPixmapÚset_dpi)
r&   ÚmatrixÚdpiÚ
colorspaceÚalphaÚcspacesÚctmÚcsÚpixrI   s
   &&&&&     r'   Ú
get_pixmapÚAnnot.get_pixmapþ  s¿   € ô 	�DÔØœ6 5¬%°¼Ð@ˆÜ�
ÓœsÓ"Ø Ÿ™ Z×%5Ñ%5Ó%7¸Ó>ˆJßÜ˜C "�H c¨B¥hÓ/ˆFÜ Ó'ˆØˆßÜ×$Ò$Ó&ˆBä×-Ò-¨d¯i©i¸Ä%×BUÒBUÐVWÓBXÐZ_Ó`ˆÜ�S‹kˆßØ�K‰K˜Ô!Øˆ
r)   c                óò  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V4      p\        P
                  ! V\        R4      4      pV\        P                  8w  g   VP                  '       g   \        \        4      h\        P
                  ! V\        R4      4      P                  '       d   \        R\        4       \        4       p\        P
                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      VR&   \        P
                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      VR&   \        P
                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      VR	&   \        P
                  ! V\        R
4      4      pVP                  '       d   \        P                   ! V4      VR&   \        P"                  ! VR4      pVP                  '       d   \        P                   ! V4      VR&   \        P$                  ! V4      p\'        V4      pW…R&   V# )zRetrieve sound stream.ÚSoundr¸  zunsupported sound streamÚRÚrateÚCÚchannelsÚBÚbpsÚEÚencodingÚCOÚcompressionr   )ro  rÄ   r£   r  r  r  r  ÚPDF_ANNOT_SOUNDrÌ   r¿  rÀ  rÁ  rÂ  r7   Úpdf_to_realr  r„  r  r"  r#  )	r&   rß   r&  rÈ   Úsoundr%  r  rÓ  r   s	   &        r'   Ú	get_soundÚAnnot.get_sound  sÁ  € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×#Ò# EÓ*ˆÜ×"Ò" 9¬h°wÓ.?Ó@ˆØ”5×(Ñ(Ô(°×0@×0@Ð0@ÜÔ/Ó0Ð0Ü×Ò˜e¤X¨c£]Ó3×>×>Ð>ÜÐ/Ô1EÔFÜ‹fˆÜ× Ò  ¬°«Ó6ˆØ�>�>ˆ>Ü×+Ò+¨CÓ0ˆC�‰KÜ× Ò  ¬°«Ó6ˆØ�>�>ˆ>Ü#×.Ò.¨sÓ3ˆC�
‰OÜ× Ò  ¬°«Ó6ˆØ�>�>ˆ>Ü×)Ò)¨#Ó.ˆC�‰JÜ× Ò  ¬°«Ó6ˆØ�>�>ˆ>Ü#×/Ò/°Ó4ˆC�
‰OÜ×!Ò! %¨Ó.ˆØ�>�>ˆ>Ü!&×!2Ò!2°3Ó!7ˆC�ÑÜ×#Ò# EÓ*ˆÜ! #Ó&ˆØˆH‰Øˆ
r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   ©ÚutilsÚget_text©r&   ÚargsÚkwargss   &*,r'   r  ÚAnnot.get_text2  ó   € Ü�~Š~˜dÐ4 TÒ4¨VÑ4Ð4r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   )r  Úget_textboxr  s   &*,r'   r  ÚAnnot.get_textbox5  s   € Ü× Ò  Ð7¨Ò7°Ñ7Ð7r)   c                ó0  € \        V 4       \        P                  ! V4      pV'       dm   \        \        R4      '       g   Q R\         R24       h\        V4      pVP                  4       Vn        V;P                  \        P                  ,          un        V P                  p\        P                  ! WS4      p\        V4      pV P                  4       p\        V\        P                   4      '       d	   W‡n        V# \        P$                  ! V4      Vn        V# )zMake annotation TextPage.ÚFZ_STEXT_CLIP_RECTzMuPDF-z% does not support FZ_STEXT_CLIP_RECT.)ro  r£   ÚFzStextOptionsr=   Úmupdf_versionÚJM_rect_from_pyÚinternalÚcliprÐ  r  rÄ   ÚFzStextPageÚTextPagers  r@   ÚweakrefÚ	ProxyTyperì   Úproxy)	r&   r  rÐ  ÚoptionsÚclip2rß   Ú	stextpagerI   r²  s	   &&&      r'   Úget_textpageÚAnnot.get_textpage8  sÑ   € ä�DÔÜ×&Ò& uÓ-ˆßÜœ5Ð"6×7Ò7Ðv¸6Ä-ÀÐPuÐ9vÓvÐ7Ü# DÓ)ˆEØ Ÿ>™>Ó+ˆGŒLØ�MŠMœU×5Ñ5Õ5�MØ—	‘	ˆÜ×%Ò% eÓ5ˆ	Ü�yÓ!ˆØ�O‰OÓˆÜ�aœ×*Ñ*×+Ò+ØŒJð ˆ
ô !Ÿš qÓ)ˆCŒJØˆ
r)   c                óÄ   € \        V 4       V P                  p\        P                  ! \        P                  ! V4      \        R4      4      pVP                  '       d   R# R# )z Check if annotation has a Popup.r¥  TF)ro  rÄ   r£   r  r  r  rÌ   )r&   rß   r  s   &  r'   Ú	has_popupÚAnnot.has_popupK  sJ   € ô 	�DÔØ—	‘	ˆÜ× Ò ¤×!4Ò!4°UÓ!;¼XÀgÓ=NÓOˆØ—~—~�~ˆtÐ0¨5Ð0r)   c                ó„  € \        V 4       V P                  p\        4       p\        \        P
                  ! V4      4      V\        &   \        P                  ! \        P                  ! V4      \        R4      4      p\        \        P                  ! V4      4      V\        &   \        P                  ! \        P                  ! V4      \        R4      4      p\        \        P                  ! V4      4      V\        &   \        P                  ! \        P                  ! V4      R4      p\        \        P                  ! V4      4      V\        &   \        P                  ! \        P                  ! V4      \        R4      4      p\        \        P                  ! V4      4      V\         &   \        P                  ! \        P                  ! V4      R4      p\        P                  ! V4      V\"        &   \        P                  ! \        P                  ! V4      R4      p\        \        P                  ! V4      4      V\$        &   V# )zVarious information details.ÚNameÚTÚCreationDateÚMÚSubjÚNM)ro  rÄ   r7   r	  r£   Úpdf_annot_contentsÚdictkey_contentr  r  r  r„  Údictkey_namer  Údictkey_titler  Údictkey_creationDateÚdictkey_modDateÚdictkey_subjectÚ
dictkey_id)r&   rß   r%  r±  s   &   r'   ÚinfoÚ
Annot.infoS  s—  € ô 	�DÔØ—	‘	ˆÜ‹fˆä0´×1IÒ1IÈ%Ó1PÓQˆŒOÑä×Òœu×2Ò2°5Ó9¼8ÀFÓ;KÓLˆÜ-¬e×.?Ò.?ÀÓ.BÓCˆŒLÑô ×Òœu×2Ò2°5Ó9¼8ÀC»=ÓIˆÜ.¬u×/GÒ/GÈÓ/JÓKˆŒMÑô ×Ò¤× 3Ò 3°EÓ :¸NÓKˆÜ$5´e×6NÒ6NÈqÓ6QÓ$RˆÔ Ñ!ô ×Òœu×2Ò2°5Ó9¼8ÀC»=ÓIˆÜ0´×1IÒ1IÈ!Ó1LÓMˆŒOÑô ×Ò¤× 3Ò 3°EÓ :¸FÓCˆÜ$×7Ò7¸Ó:ˆŒOÑô ×Ò¤× 3Ò 3°EÓ :¸DÓAˆÜ+¬E×,DÒ,DÀQÓ,GÓHˆŒJ‰àˆ
r)   c                óÚ   € V P                   p\        P                  ! V4      p\        P                  ! V\	        R4      4      pVP
                  '       g   ^ # \        P                  ! V4      # )z
annotation IRT xref
ÚIRT)rÄ   r£   r  r  r  rÌ   r  )r&   rß   r&  Úirts   &   r'   Úirt_xrefÚAnnot.irt_xrefu  sP   € ð
 —	‘	ˆÜ×'Ò'¨Ó/ˆ	Ü× Ò  )¬X°e«_Ó=ˆØ�~�~ˆ~ÙÜ×Ò Ó%Ð%r)   c                óX   € \        V 4       \        P                  ! V P                  4      # )z-Get 'open' status of annotation or its Popup.)ro  r£   Úpdf_annot_is_openrÄ   r-   s   &r'   Úis_openÚAnnot.is_open�  s!   € ô 	�DÔÜ×&Ò& t§y¡yÓ1Ð1r)   c                óÐ   € V P                   p\        P                  ! V4      pV\        P                  8X  d   R# \	        \        R4      '       g   Q h\        P
                  ! V4      # )zannotation languageNÚfz_string_from_text_language2)rÄ   r£   Úpdf_annot_languageÚFZ_LANG_UNSETr=   rD  )r&   Ú
this_annotÚlangs   &  r'   ÚlanguageÚAnnot.language‡  sS   € ð —Y‘Yˆ
Ü×'Ò'¨
Ó3ˆØ”5×&Ñ&Ô&ÙÜ”uÐ=×>Ò>Ð>Ð>Ü×2Ò2°4Ó8Ð8r)   c                óÊ   € \        V 4       V P                  p\        P                  ! V4      '       g   R# \        P                  ! V4      p\        P
                  ! V4      pW#3# )zLine end codes.N)ro  rÄ   r£   Ú pdf_annot_has_line_ending_stylesÚpdf_annot_line_start_styleÚpdf_annot_line_end_style)r&   rß   ÚlstartÚlends   &   r'   Ú	line_endsÚAnnot.line_ends‘  sQ   € ô 	�DÔØ—	‘	ˆä×5Ò5°e×<Ò<ÙÜ×1Ò1°%Ó8ˆÜ×-Ò-¨eÓ4ˆØˆ|Ðr)   c                ó*  € \        V 4       V P                  p\        V\        P                  4      '       g   Q hVP
                  '       g   Q h\        P                  ! V4      pV\        P                  8w  d   \        P                  ! V4      pM\        P                  ! V4      pVP
                  '       d   \        V4      MRpV'       g   R# RVn        VP                  4       P                  P                  4       V P                  4       P                  P                  4       8X  g   Q hWDP                  P                  \!        V4      &   VP"                  ^ ,          \        P                  8X  d"   \%        4       p\&        P)                  WE4       TpV# )zNext annotation.NT)ro  rÄ   r@   r£   rä   rÌ   r  ÚPDF_ANNOT_WIDGETÚpdf_next_annotÚpdf_next_widgetrâ   rõ   rs  Úm_internal_valuerì   Ú_annot_refsÚidrÈ   ÚWidgetr  Ú_fill_widget)r&   rG  rb  rß   r  Úwidgets   &     r'   ÚnextÚ
Annot.next�  s$  € ô 	�DÔØ—Y‘Yˆ
Ü˜*¤e§n¡n×5Ò5Ð5Ð5Ø×$×$Ð$Ð$Ð$Ü×$Ò$ ZÓ0ˆØ”E×*Ñ*Ô*Ü×(Ò(¨Ó4‰Eä×)Ò)¨*Ó5ˆEà#×.×.Ð.Œe�EŒl°DˆßÙØˆŒØ�~‰~Ó×$Ñ$×5Ñ5Ó7¸4¿?¹?Ó;L×;QÑ;Q×;bÑ;bÓ;dÔdÐdÐdØ*-�
‰
×Ñœr #›wÑ'à�8‰8�A�;œ%×0Ñ0Ô0Ü“XˆFÜ×Ñ˜sÔ+ØˆCØˆ
r)   c                ó  € \        V 4       V P                  pRp\        P                  ! \        P                  ! V4      \        P
                  4      p\        P                  ! V4      '       d   \        P                  ! V4      pV# )zOpacity.r¨  )ro  rÄ   r£   r  r  ÚPDF_ENUM_NAME_CAÚpdf_is_numberr  )r&   rß   Úopyr>  s   &   r'   r]  ÚAnnot.opacity·  sc   € ô 	�DÔØ—	‘	ˆØˆÜ×Ò¤×!4Ò!4°UÓ!;¼U×=SÑ=SÓTˆÜ×Ò˜r×"Ò"Ü×#Ò# BÓ'ˆCØˆ
r)   c                ó
  € \        V 4       \        P                  ! \        P                  P                  4      pV P                  p\        P
                  ! V4      p\        P                  ! V\        R4      4      pVP                  '       d!   \        P                  ! V\        R4      4      p\        V4      p\        V4      V P                  4       P                  ,          pWPP                  4       P                  ,          pV# )zannotation 'Popup' rectangler¥  r+  )ro  r£   rq  rr  rÄ   r  r  r  rÌ   r2  rp  r+  rs  rt  ru  )r&   rü   rß   r&  r  r  s   &     r'   Ú
popup_rectÚAnnot.popup_rectÂ  sµ   € ô 	�DÔÜ�|Š|œEŸL™L×7Ñ7Ó8ˆØ—	‘	ˆÜ×'Ò'¨Ó/ˆ	Ü× Ò  )¬X°gÓ->Ó?ˆØ�>�>ˆ>Ü×*Ò*¨3´¸Ó0@ÓAˆDä˜dÓ#ˆô �3‹i˜$Ÿ/™/Ó+×AÑAÕAˆØ�‰Ó ×2Ñ2Õ2ˆàˆ
r)   c                óô   € \        V 4       ^ pV P                  p\        P                  ! V4      p\        P                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      pV# )zannotation 'Popup' xrefr¥  rØ  )r&   r  rß   r&  r  s   &    r'   Ú
popup_xrefÚAnnot.popup_xrefÕ  s_   € ô 	�DÔØˆØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°WÓ,=Ó>ˆØ�>�>ˆ>Ü×#Ò# CÓ(ˆDØˆr)   c                óú   € \         '       d"   \        P                  ! V P                  4      pM \        P
                  ! V P                  4      p\        V4      pV P                  4       pWP                  ,          pV# )zannotation rectangle)	r  r   ÚAnnot_rect3rÄ   r£   Úpdf_bound_annotr+  rs  ru  )r&   r  r²  s   &  r'   rü   Ú
Annot.rectá  s]   € ÷ ‹;Ü×#Ò# T§Y¡YÓ/‰Cä×'Ò'¨¯	©	Ó2ˆCÜ�3‹iˆð �O‰OÓˆð 	×"Ñ"Õ"ˆØˆ
r)   c           	     ó  € \         P                  ! V P                  4      p\         P                  ! V\	        R4      4      p\         P
                  ! V4      ^8X  d­   \         P                  ! \         P                  ! V^ 4      4      \         P                  ! \         P                  ! V^4      4      \         P                  ! \         P                  ! V^4      4      ) \         P                  ! \         P                  ! V^4      4      ) 3# R# )z&
annotation delta values to rectangle
ÚRDN)r£   r  rÄ   r  r  r«  r  r¬  )r&   r&  Úarrs   &  r'   Ú
rect_deltaÚAnnot.rect_deltaõ  sÂ   € ô
 ×'Ò'¨¯	©	Ó2ˆ	Ü× Ò  )¬X°d«^Ó<ˆÜ×Ò Ó$¨Ô)ä×%Ò%¤u×':Ò':¸CÀÓ'CÓDÜ×%Ò%¤u×':Ò':¸CÀÓ'CÓDÜ×&Ò&¬×(;Ò(;¸SÀ!Ó(DÓEÐEÜ×&Ò&¬×(;Ò(;¸SÀ!Ó(DÓEÐEð	ð ñ *r)   c                óö   € \        V 4       V P                  p\        P                  ! \        P                  ! V4      \        P
                  4      pVP                  '       g   R# \        P                  ! V4      # )zannotation rotationr¨  )ro  rÄ   r£   r  r  ÚPDF_ENUM_NAME_RotaterÌ   r  )r&   rß   Úrotations   &  r'   ru  ÚAnnot.rotation  sZ   € ô 	�DÔØ—	‘	ˆÜ×%Ò%¤u×':Ò':¸5Ó'AÄ5×C]ÑC]Ó^ˆØ×"×"Ð"ØˆIÜ×Ò Ó*Ð*r)   c                ó¾  € \        V 4       V P                  4       pVP                  pVP                  pWV( ,          ,          pV P                  p\
        P                  ! V4      p\
        P                  ! V\        R4      \        R4      4      pVP                  '       g   \        \        4      h\        V4      p\
        P                  ! V\        R4      V4       R# )z!
Set annotation appearance bbox.
r  r  r,  N)ro  rs  Úrotation_matrixrt  rÄ   r£   r  r   r  rÌ   rÞ   r-  r  r3  )	r&   r6  rÖ   Úrotr€  rß   r&  r'  rü   s	   &&       r'   Úset_apn_bboxÚAnnot.set_apn_bbox  s¦   € ô 	�DÔØ�‰Ó ˆØ×"Ñ"ˆØ×(Ñ(ˆØ�s�d•
ÕˆØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°T«N¼HÀS»MÓJˆØ�}�}ˆ}Ü¤Ó,Ð,Ü˜tÓ$ˆÜ×Ò ¤H¨VÓ$4°dÖ;r)   c                óN  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V\        R4      \        R4      4      pVP                  '       g   \        \        4      h\        V4      p\        P                  ! V\        R4      V4       R# )z!Set annotation appearance matrix.r  r  r  N)ro  rÄ   r£   r  r   r  rÌ   rÞ   r-  rè  Úpdf_dict_put_matrix)r&   rî  rß   r&  r'  r€  s   &&    r'   Úset_apn_matrixÚAnnot.set_apn_matrix  st   € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü× Ò  ¬H°T«N¼HÀS»MÓJˆØ�}�}ˆ}Ü¤Ó,Ð,Ü Ó'ˆÜ×!Ò! "¤h¨xÓ&8¸#Ö>r)   c                ó¢   € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V\        R4      V4       R# )zSet annotation BlendMode.r?  N©ro  rÄ   r£   r  r\  r  )r&   r^  rß   r&  s   &&  r'   Úset_blendmodeÚAnnot.set_blendmode*  s9   € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×Ò 	¬8°D«>¸:ÖFr)   c                óB  € \        V 4       V P                  R,          w  rgV\        P                  \        P                  \        P
                  \        P                  \        P                  \        P                  \        P                  39  d   \        RV R24       R# V\        P                  \        P                  \        P                  \        P                  39  d   V^ 8”  d   \        RV R24       Rp\        V4      \        Jd   RVRVRVR	V/pVP                  RR4       VP                  RR4       VP                  RR4       VP                  R	R4       VR,          f   RVR&   VR	,          f   RVR	&   \        VR,          R
4      '       dC   \        VR,          4      VR&   VR,           F   p\        V\         4      '       d   K  RVR&    M	  V P"                  p	\        P$                  ! V	4      p
\        P&                  ! V
4      p\)        WV
4      # )zZSet border properties.

Either a dict, or direct arguments width, style, dashes or clouds.ºNé   NzCannot set border for 'ú'.NzCannot set cloudy border for 'ÚwidthÚstyleÚdashesÚcloudsÚ__getitem__r¨  )ro  rÈ   r£   rD  rK  rM  rE  rF  rG  rC  rv   r7   Ú
setdefaultr=   rµ   r@   r6   rÄ   r  r›  ÚJM_annot_set_border)r&   r”  rˆ  r‰  rŠ  r‹  r’  ÚatnamerE   rß   r&  ra  s   &&&&&&      r'   Ú
set_borderÚAnnot.set_border1  sä  € ô 	�DÔØŸ	™	 "�‰ˆØÜ×&Ñ&Ü×)Ñ)Ü×#Ñ#Ü×$Ñ$Ü×)Ñ)Ü×'Ñ'Ü×&Ñ&ðô ô Ð-¨f¨X°RÐ8Ô9ÙØÜ×&Ñ&Ü×)Ñ)Ü×'Ñ'Ü×&Ñ&ð	ô ð ˜ŒzÜÐ8¸¸ÀÐCÔDØ�Ü�‹<œtÓ#Ø˜u g¨u°hÀÈÐRXÐYˆFØ×Ñ˜' 2Ô&Ø×Ñ˜' 4Ô(Ø×Ñ˜( DÔ)Ø×Ñ˜( BÔ'Ø�'�?Ò"Ø ˆF�7‰OØ�(ÕÒ#Ø!ˆF�8ÑÜ�6˜(Õ# ]×3Ò3Ü$ V¨HÕ%5Ó6ˆF�8ÑØ˜x×(Ð(�Ü! $¬×,Ô,Ø'+�F˜8Ñ$Ùñ )ð —	‘	ˆÜ×'Ò'¨Ó/ˆ	Ü×*Ò*¨IÓ6ˆÜ" F°Ó;Ð;r)   c                ó²  € V P                   ^ ,          \        P                  8X  d   \        R4      h\	        V 4       V P                  4       P                  p\        V4      \        Jd   RVRV/pVP                  R4      pVP                  R4      p\        P                  \        P                  \        P                  \        P                  \        P                  \        P                  3pV. R39   d   VP                  V P                   RR4       MkVeh   \#        VR4      '       d   \%        V4      .p\'        V4       \)        V4      R9   g   Q hR\+        V4       R	2pVP                  V P                   RV4       V'       d;   V P                   ^ ,          V9  d#   \-        R
V P                   ^,           R24       R# V. R39   d    VP                  V P                   RR4       R# Vej   \#        VR4      '       d   \%        V4      .p\'        V4       \)        V4      R9   g   Q hR\+        V4       R	2pVP                  V P                   RV4       R# R# )zLSet 'stroke' and 'fill' colors.

Use either a dict or the direct arguments.
z'cannot be used for FreeText annotationsr   Ústrokerü  ú[]NÚ	__float__Ú[Ú]z,Warning: fill color ignored for annot type 'r‡  r:  r,   ©é   r   é   )rÈ   r£   rK  rÃ   ro  rs  rì   r7   r:   rD  rC  rE  rF  rG  r  Úxref_set_keyr  r=   ÚfloatÚ
CheckColorr9   r¶   rv   )r&   r  r“  r   r1  Úfill_annotsÚss   &&&&   r'   Ú
set_colorsÚAnnot.set_colors`  s÷  € ð
 �9‰9�Q�<œ5×4Ñ4Ô4ÜÐFÓGÐGä�DÔØ�o‰oÓ×&Ñ&ˆÜ�‹<œtÓ#Ø˜d H¨fÐ5ˆFØ�z‰z˜&Ó!ˆØ—‘˜HÓ%ˆä×-Ñ-¬u×/EÑ/EÄu×G[ÑG[Ô]b×]vÑ]vÔx}÷  yPñ  yPÜ×-Ñ-ð0ˆð �b˜"�XÔØ×Ñ˜TŸY™Y¨¨TÕ2ØÒÜ�v˜{×+Ò+Ü ›-˜�Ü�vÔÜ�v“; )Ô+Ð+Ð+Ø”I˜fÓ%Ð& aÐ(ˆAØ×Ñ˜TŸY™Y¨¨QÔ/ç�D—I‘I˜a•L¨Ô3ÜÐBÀ4Ç9Á9ÈQÅ<À.ÐPRÐSÔTÙØ�B˜�8ÔØ×Ñ˜TŸY™Y¨¨dÖ3ØÒÜ�t˜[×)Ò)Ü˜d›�}�Ü�tÔÜ�t“9 	Ô)Ð)Ð)Ø”I˜d“OÐ$ AÐ&ˆAØ×Ñ˜TŸY™Y¨¨aÖ0ñ r)   c                ó`   € \        V 4       V P                  p\        P                  ! W!4       R# )zSet annotation flags.N)ro  rÄ   r£   Úpdf_set_annot_flags)r&   rÐ  rß   s   && r'   Ú	set_flagsÚAnnot.set_flags‰  s!   € ä�DÔØ—	‘	ˆÜ×!Ò! %Ö/r)   c                óR  € \        V 4       \        V4      \        J d]   VP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pRpV P                  p\
        P                  ! V4      pV'       d   \
        P                  ! Wr4       V'       då   V'       d   \
        P                  ! Ws4       V'       d6   \
        P                  ! \
        P                  ! V4      \        R4      V4       V'       d6   \
        P                  ! \
        P                  ! V4      \        R4      V4       V'       dC   \
        P                  ! \
        P                  ! V4      R	\
        P                  ! V4      4       R# R# R# )
zSet various properties.ÚcontentNÚtitleÚcreationDateÚmodDateÚsubjectr,  r-  r.  )ro  rÈ   r7   r:   rÄ   r£   Úpdf_annot_has_authorÚpdf_set_annot_contentsÚpdf_set_annot_authorÚpdf_dict_put_text_stringr  r  Úpdf_dict_putsÚpdf_new_text_string)	r&   r8  r§  r¨  r©  rª  r«  rß   Ú	is_markups	   &&&&&&&  r'   Úset_infoÚAnnot.set_info�  s,  € ä�DÔÜ�‹:œÓØ—h‘h˜y¨$Ó/ˆGØ—H‘H˜W dÓ+ˆEØŸ8™8 N°DÓ9ˆLØ—h‘h˜y¨$Ó/ˆGØ—h‘h˜y¨$Ó/ˆGØˆDØ—	‘	ˆä×.Ò.¨uÓ5ˆ	çÜ×(Ò(¨Ô8ßçÜ×*Ò*¨5Ô8çÜ×.Ò.¬u×/BÒ/BÀ5Ó/IÌ8ÐTbÓKcÐeqÔrçÜ×.Ò.¬u×/BÒ/BÀ5Ó/IÌ8ÐTWË=ÐZaÔbçÜ×#Ò#¤E×$7Ò$7¸Ó$>ÀÌ×HaÒHaÐbiÓHjÖkñ ñ r)   c                ó,  € V P                   p\        P                  ! V4      p\        V4      pV^8  g*   V\        P                  ! VP                  4       4      8¼  d   \        \        4      h\        P                  ! VP                  4       V^ 4      p\        P                  ! V\        R4      4      p\        P                  ! \        P                  ! V4      4      pV^ 8  d   \        \        4      h\        P                  ! V\        R4      V4       R# )z
Set annotation IRT xref
ÚSubtyper;  N)rÄ   r£   r  rà   Úpdf_xref_lenr1  rÃ   ÚMSG_BAD_XREFÚpdf_new_indirectr  r  Úpdf_annot_type_from_stringr„  ÚMSG_IS_NO_ANNOTrU  )r&   r  rß   r&  rÖ   r<  ÚsubtÚirt_subts   &&      r'   Úset_irt_xrefÚAnnot.set_irt_xref­  sÅ   € ð —	‘	ˆÜ×'Ò'¨Ó/ˆ	Ü˜uÓ%ˆØ�!Œ8�tœu×1Ò1°4·8±8³:Ó>Ô>ÜœlÓ+Ð+Ü×$Ò$ d§h¡h£j°$¸Ó:ˆÜ×!Ò! 3¬°Ó(;Ó<ˆÜ×3Ò3´U×5FÒ5FÈÓ5MÓNˆØ�aŒ<ÜœoÓ.Ð.Ü×Ò˜I¤x°£¸Ö<r)   c                ó¾   € \        V 4       V P                  pV'       g   \        P                  pM\        P                  ! V4      p\        P
                  ! W#4       R# )zSet annotation language.N)ro  rÄ   r£   rF  Úfz_text_language_from_stringÚpdf_set_annot_language)r&   rI  rG  rH  s   &&  r'   Úset_languageÚAnnot.set_language½  s?   € ä�DÔØ—Y‘Yˆ
ßÜ×&Ñ&‰Dä×5Ò5°hÓ?ˆDÜ×$Ò$ ZÖ6r)   c                ó´   € \        V 4       V P                  p\        P                  ! V4      '       d   \        P                  ! W1V4       R# \        R4       R# )zSet line end codes.zbad annot type for line endsN)ro  rÄ   r£   rL  Ú pdf_set_annot_line_ending_stylesr  )r&   ÚstartÚendrß   s   &&& r'   Úset_line_endsÚAnnot.set_line_endsÇ  s=   € ä�DÔØ—	‘	ˆÜ×1Ò1°%×8Ò8Ü×2Ò2°5ÀÖEäÐ:Ö;r)   c                ó¢   € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V\        R4      V4       R# )zSet /Name (icon) of annotation.r*  Nr�  )r&   r   rß   r&  s   &&  r'   Úset_nameÚAnnot.set_nameÐ  s:   € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×Ò 	¬8°FÓ+;¸TÖBr)   c                óô   € \        V 4       V P                  p\        P                  ! V4      pV'       g#   \        P                  ! V\        R4      4       R# \        \        P                  ! V4      W14       R# )z Set / remove annotation OC xref.r×  N)ro  rÄ   r£   r  rH  r  ÚJM_add_oc_objectr›  )r&   rÙ  rß   r&  s   &&  r'   Úset_ocÚAnnot.set_oc×  sO   € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	ßÜ×Ò˜y¬(°4«.Ö9äœU×9Ò9¸)ÓDÀiÖTr)   c                óî   € \        V 4       V P                  p\        VRR4      '       g   \        P                  ! V^4       R# \        P                  ! W!4       VR8  d   \        V4      p^Vn        R# R# )zSet opacity.ç        ç      ð?N)ro  rÄ   Ú_INRANGEr£   Úpdf_set_annot_opacityrà   Útransparency)r&   r]  rß   rÖ   s   &&  r'   Úset_opacityÚAnnot.set_opacityá  sa   € ä�DÔØ—	‘	ˆÜ˜  c×*Ò*Ü×'Ò'¨¨qÔ1ÙÜ×#Ò# EÔ3Ø�SŒ=Ü" 5Ó)ˆDØ !ˆDÖñ r)   c                ó`   € \        V 4       V P                  p\        P                  ! W!4       R# )z-Set 'open' status of annotation or its Popup.N)ro  rÄ   r£   Úpdf_set_annot_is_open)r&   rA  rß   s   && r'   Úset_openÚAnnot.set_opení  s!   € ä�DÔØ—	‘	ˆÜ×#Ò# EÖ3r)   c                óÌ   € \        V 4       V P                  p\        V4      p\        V4      p\        P
                  ! \        V4      V4      p\        P                  ! W%4       R# )z0
Create annotation 'Popup' or update rectangle.
N)ro  rÄ   rà   ÚJM_rotate_page_matrixr£   Úfz_transform_rectr  Úpdf_set_annot_popup)r&   rü   rß   Úpdfpagery  r$  s   &&    r'   Ú	set_popupÚAnnot.set_popupó  sN   € ô 	�DÔØ—	‘	ˆÜ! %Ó(ˆÜ# GÓ,ˆÜ×#Ò#¤O°DÓ$9¸3Ó?ˆÜ×!Ò! %Ö+r)   c                óª  € \        V 4       V P                  p\        V4      p\        V4      p\        P
                  ! \        V4      V4      p\        P                  ! V4      '       g   \        P                  ! V4      '       d   \        \        4      h \        P                  ! W%4       R#   \         d   p\        RT 24        Rp?R# Rp?ii ; i)zSet annotation rectangle.zcannot set rect: NF)ro  rÄ   rà   rß  r£   rà  r  Úfz_is_empty_rectÚfz_is_infinite_rectrÃ   ÚMSG_BAD_RECTÚpdf_set_annot_rectrk   rv   )r&   rü   rß   râ  ry  r$  rh  s   &&     r'   Úset_rectÚAnnot.set_rectþ  s    € ä�DÔØ—	‘	ˆä! %Ó(ˆÜ# GÓ,ˆÜ×#Ò#¤O°DÓ$9¸3Ó?ˆÜ×!Ò! !×$Ò$¬×(AÒ(AÀ!×(DÒ(DÜœlÓ+Ð+ð	Ü×$Ò$ UÖ.øÜô 	ÜÐ'¨ sÐ+Ô,Ýûð	ús   ÂB. Â.CÂ9CÃCc                óÀ  € \        V 4       V P                  p\        P                  ! V4      pV\        P                  \        P
                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  39  d   R# TpV^ 8  d   VR,          pK  VR8¼  d   VR,          pK  V\        P                  8X  d   V^Z,          ^ 8w  d   ^ p\        P                  ! V4      p\        P                   ! V\#        R4      V4       R# )zSet annotation rotation.Néh  r;  )ro  rÄ   r£   r  rJ  rD  rK  rL  rM  rE  rF  rG  rC  rN  rO  r  rP  r  )r&   r`  rß   rÈ   ry  r&  s   &&    r'   Úset_rotationÚAnnot.set_rotation  s  € ä�DÔà—	‘	ˆÜ×#Ò# EÓ*ˆØÜ×%Ñ%Ü×&Ñ&Ü×)Ñ)Ü×/Ñ/Ü×#Ñ#Ü×$Ñ$Ü×)Ñ)Ü×'Ñ'Ü×&Ñ&Ü×%Ñ%Ü×$Ñ$ðô ñ ØˆØ�AŒgØ�3�JŠCØ�SŒjØ�3�JŠCØ”5×,Ñ,Ô,°°rµ¸Q´ØˆCÜ×'Ò'¨Ó.ˆ	Ü×Ò˜y¬(°8Ó*<¸cÖBr)   c                óÀ  € \        V 4       V P                  P                  '       g   R# \        P                  ! V P                  4      p\        P
                  ! V4      p\        P                  ! \        P                  ! V P                  4      R4      pVP                  '       d   \        P                  ! V4      '       d   W3# \        P                  ! V4      pWV3# )zannotation typeÚnullÚIT)
ro  rÄ   rÌ   r£   r  Úpdf_string_from_annot_typer  r  Úpdf_is_namer„  )r&   rb  Úcr±  Úits   &    r'   rÈ   Ú
Annot.type,  sŸ   € ô 	�DÔØ�y‰y×#×#Ð#ÙÜ×$Ò$ T§Y¡YÓ/ˆÜ×,Ò,¨UÓ3ˆÜ×Ò¤×!4Ò!4°T·Y±YÓ!?ÀÓFˆØ�|�|ˆ|œu×0Ò0°×3Ò3Ø�:ÐÜ×Ò˜qÓ!ˆØ˜"ˆ~Ðr)   c               ó<   € V ^8„  d   QhRRRRRRRRRR	R
R	RR	RRRR/	# )r†  r^  ÚOptStrr]  ÚOptFloatrÿ   rœ  rþ   rý   ÚOptSeqÚborder_colorr_  Ú	cross_outrè   r`  r6   r,   )Úformats   "r'   Ú__annotate__ÚAnnot.__annotate__:  sm   € ÷ {*ñ {*Øð{*àð{*ð ð{*ð ð	{*ð
 ð{*ð !ð{*ð ð{*ð ð{*ð ñ{*r)   c
                óx  € \         P                  ! V P                  4      p
V'       d4   \         P                  ! V
\	        R4      4      pV'       g   \        R4      h\        P                  4        \        V 4       R pV P                  ^ ,          pV P                  P                  RR4      pV P                  P                  RR'4      pV P                  R,          pVe   TpMV P                  R,          pRpV P                  pV	R'8w  dJ   V	^ 8  d   V	R	,          p	K  V	R	8¼  d   V	R	,          p	K  V\         P                  8X  d   V	^Z,          ^ 8w  d   ^ p	Vf   V P                  p\!        VR
4      '       g   V P"                  p^ Tu;8:  d   ^8  g   M V'       d   RpMRpV\         P                  8X  dp   \%        V4       \%        V4       \&        P)                  V 4      w  pppV^ 8:  d   ^pV'       d   TpV'       d   TpV^ 8”  d   Tp\+        V \-        V4      VVV4       RpV P/                  VVVV	R7      pVRJ d   \1        R4      hV\         P                  8X  dU   V P3                  4       p^ Tu;8:  d   ^8  d4   M R# VP5                  R4      '       g   V P7                  RV,           4       R# V! VR4      pV! VR4      pV P9                  4       P:                  pV( pV'       d@   RRP=                  \?        \@        V4      4      ,           R,           pVPC                  R4      pMRpV PD                  '       d   V PD                  w  pp M^ ^ p pV P3                  4       pVPG                  4       p!Rp"V\         PH                  8X  Ed!   V'       dv   Rp"V!RR' p!V!w  p#p$p%p&p'V!PK                  V%4       V!PK                  V$4       V!PK                  V&4       V!PK                  V$4       V!PK                  V'4       V!PK                  R4       V^ 8”  g   VR8w  d…   Rp"V^ 8”  d"   \M        V4      PC                  4       R,           .M. p(V! FP  p)V)PO                  R4      '       d   K  V)PO                  R4      '       d   VR8w  d   VRR' p)V(PK                  V)4       KR  	  T(p!RP=                  V!4      pV\         PP                  \         PR                  39   d§   RP=                  V!RR' 4      R,           pRp"VR8w  dF   V\         PP                  8X  d   VV,           R,           pM\V\         PR                  8X  d
   VR,           pM=V\         PP                  8X  d   VR ,           pMV\         PR                  8X  d
   VR,           pVe   VV,           pVPU                  R!R"^4      pRp"V'       d   VPC                  R4      V,           pRp"R#V,           R$,           pVV ,           ^ 8”  Ed×   V\         PP                  \         PR                  39   Ed±   R\&        PV                  \&        PX                  \&        PZ                  \&        P\                  \&        P^                  \&        P`                  \&        Pb                  \&        Pd                  \&        Pf                  3
p*\i        ^\-        V*4      4      p+^\k        ^V P                  R,          4      ,          p,V Pl                  V,) V,) V,V,3,           pRp"V Pn                  p-VV+9   d]   \q        V-^ ,          4      V,          p.\q        V-^,          4      V,          p/V*V,          ! V V.V/RV4      p0VV0PC                  4       ,          pV V+9   d]   \q        V-R(,          4      V,          p.\q        V-R',          4      V,          p/V*V ,          ! V V.V/RV4      p0VV0PC                  4       ,          pV"'       dA   V'       d&   V Ps                  V4       V P7                  V^R%7       MV P7                  V^ R%7       V\         Pt                  \         Pv                  \         Px                  \         Pz                  \         P|                  \         PR                  \         PP                  \         P~                  \         P€                  \         P‚                  3
9  d   R# V P„                  p1V1R'8X  d   R# V Pl                  P†                  V Pl                  Pˆ                  ,           ^,          p2V1^ 8X  dy   \‹        V\�        ^^4      ,
          4      R&8  d   R# V Pl                  P�                  V2V( 4      p3V P‘                  V3Pl                  4       V P“                  \�        ^^4      4       R# \�        V14      p4V Pl                  P�                  V2V44      p3V Ps                  V3Pl                  4       V P“                  VV4,          4       R# ))aª  Update annot appearance.

Notes:
    Depending on the annot type, some parameters make no sense,
    while others are only available in this method to achieve the
    desired result. This is especially true for 'FreeText' annots.
Args:
    blend_mode: set the blend mode, all annotations.
    opacity: set the opacity, all annotations.
    fontsize: set fontsize, 'FreeText' only.
    fontname: set the font, 'FreeText' only.
    border_color: set border color, 'FreeText' only.
    text_color: set text color, 'FreeText' only.
    fill_color: set fill color, all annotations.
    cross_out: draw diagonal lines, 'Redact' only.
    rotate: set rotation, 'FreeText' and some others.
ÚRCú-cannot set border_color if rich_text is Falsec                óZ   € \        W4      pV'       g   R# VR,           P                  4       # )zHReturn valid PDF color operator for a given color sequence.
            r)   r#   )Ú	ColorCodeÚencode)rô  ÚcodeÚccs   && r'   Úcolor_stringÚ"Annot.update.<locals>.color_string^  s'   € ô ˜2Ó$ˆBßÙØ˜•I×%Ñ%Ó'Ð'r)   rŠ  Nrˆ  r“  r   rí  r•  ú/H gs
r`   )r]  r^  r_  r`  FzError updating annotation.s   /H gss   /H gs
Úfrõ  r–  r³   z] 0 d
úutf-8Tó   Sr)   s    wó   ws   RGó   
ó   bó   ss   
S
s
   
S
[] 0 d
ó   q
s   
Q
©rü   çñhãˆµøä>r¨  éþÿÿÿ)Jr£   r  rÄ   r  r  rÃ   râ   Úupdate_timing_testro  rÈ   r”  r:   r  r�  rK  rŽ  r=   r]  r�  r  r  ÚJM_make_annot_DAr9   rl  rÞ   r(  r5   r7  rs  rt  ÚjoinÚmapræ  r  rQ  Ú
splitlinesr  ro   r¶   ÚendswithrG  rF  ÚreplaceÚ
_le_squareÚ
_le_circleÚ_le_diamondÚ_le_openarrowÚ_le_closedarrowÚ_le_buttÚ_le_ropenarrowÚ_le_rclosedarrowÚ	_le_slashrS  Úmaxrü   ÚverticesÚPointrê  rJ  rD  rL  rM  rE  rC  rN  rO  ru  ÚtlÚbrÚabsr  ÚmorphÚsetRectr~  )5r&   r^  r]  rÿ   rþ   rý   rü  r_  rý  r`  r&  Úis_rich_textr	  Ú
annot_typeÚdtÚbwidthr“  r   rü   ÚapnmatÚopa_codeÚtcolÚfnameÚfsizer  r'  ÚbfillÚbstrokeÚp_ctmÚimatrŠ  Úline_end_leÚline_end_riÚap_tabÚ
ap_updatedÚ_ÚLLÚLRÚURÚULÚntabrs   Úle_funcsÚle_funcs_rangeÚdÚpointsÚp1Úp2Úleftry  r-  Úquadr€  s5   &&&&&&&&&&                                           r'   ÚupdateÚAnnot.update:  sÊ  € ô8 ×'Ò'¨¯	©	Ó2ˆ	çÜ ×-Ò-¨i¼À$»ÓHˆLßÜ Ð!PÓQÐQÜ× Ñ Ô"Ü�DÔò	(ð —Y‘Y˜q•\ˆ
à�[‰[�_‰_˜X tÓ,ˆØ—‘—‘ ¨"Ó-ˆØ—‘˜XÕ&ˆØÒ!Ø‰Dà—;‘;˜vÕ&ˆDØˆØ—‘ˆØ�RŒ<Ø˜1”*Ø˜#•’Ø˜C”-Ø˜#•’ØœU×6Ñ6Ô6¸6ÀB½;È!Ô;KØ�ð
 ÒØŸ™ˆJÜ�w ×,Ò,Ø—l‘lˆGà�Ö˜!ÖŸzØ ‰HàˆHàœ×2Ñ2Ô2Ü�zÔ"Ü�zÔ"Ü!&§¡°Ó!6ÑˆD�%˜ð ˜ŒzØ�ßØ!�ßØ �Ø˜!Œ|Ø �Ü˜T¤3 t£9¨d°E¸5ÔAØˆJð
 ×%Ñ%ØØ!ØØð	 &ó 
ˆð �%‹<ÜÐ;Ó<Ð<àœ×2Ñ2Ô2à—‘“ˆBØ�GÖ˜aÖáð )+¯©°h×(?Ò(?Ø—‘˜J¨�OÔ,Ùá˜T 3Ó'ˆÙ˜v sÓ+ˆà—‘Ó!×7Ñ7ˆØˆvˆçØ˜3Ÿ8™8¤C¬¨R£LÓ1Õ1°IÕ=ˆFØ—]‘] 7Ó+‰FàˆFà�>�>ˆ>Ø'+§~¡~Ñ$ˆK™à'(¨!˜ˆKð �[‰[‹]ˆØ—‘“ˆØˆ
àœ×/Ñ/Õ/ßØ!�
Ø  ˜�Ø$*Ñ!��2�r˜2˜rØ—‘˜bÔ!Ø—‘˜bÔ!Ø—‘˜bÔ!Ø—‘˜bÔ!Ø—‘˜bÔ!Ø—‘˜dÔ#à˜Œz˜W¨œ^Ø!�
Ø?EÈ¼zœ	 &Ó)×0Ñ0Ó2°UÕ:Ñ;Èr�Û"�DØ—}‘} T×*Ò*Ù Ø—}‘} U×+Ò+°¸3´Ø& s¨˜|˜Ø—K‘K Ö%ñ #ð �à—‘˜FÓ#ˆBàœ%×1Ñ1´5×3LÑ3LÐMÔMØ—‘˜F 3 B˜KÓ(¨5Õ0ˆBØˆJØ˜Œ|Ø¤×!8Ñ!8Ô8Ø˜e� dÕ*‘BØ¤5×#<Ñ#<Ô<Ø˜d��Bøà¤×!8Ñ!8Ô8Ø˜d�‘BØ¤5×#<Ñ#<Ô<Ø˜d��BàÒØ˜"•ˆBà—‘˜HÐ&6¸Ó:ˆBØˆJçØ—‘ Ó)¨BÕ.ˆBØˆJà�b�[˜8Õ#ˆð ˜Õ$ qÕ(¨Z¼E×<SÑ<SÔUZ×UnÑUnÐ;oÕ-oàœe×.Ñ.´×0@Ñ0@Ü×)Ñ)¬5×+>Ñ+>Ü×-Ñ-¬u¯~©~Ü×,Ñ,¬e×.DÑ.DÜŸ™ð	)ˆHô
 # 1¤c¨(£mÓ4ˆNØ”C˜˜4Ÿ;™; wÕ/Ó0Õ0ˆAØ—9‘9   Q B¨¨1˜~Õ-ˆDØˆJØ—]‘]ˆFØ˜nÔ,Ü˜6 !�9Ó%¨Õ,�Ü˜6 !�9Ó%¨Õ,�Ø Ö,¨T°2°r¸5À*ÓM�Ø�d—k‘k“mÕ#�Ø˜nÔ,Ü˜6 "�:Ó&¨Õ-�Ü˜6 "�:Ó&¨Õ-�Ø Ö,¨T°2°r¸4ÀÓL�Ø�d—k‘k“mÕ#�çßØ—‘˜dÔ#Ø—‘˜B Q�Õ'à—‘˜B Q�Ô'ð
 Ü×%Ñ%Ü×&Ñ&Ü×/Ñ/Ü×#Ñ#Ü×$Ñ$Ü×)Ñ)Ü×'Ñ'Ü×&Ñ&Ü×%Ñ%Ü×$Ñ$ðô ñ à�m‰mˆØ�"Œ9Ùà�Y‰Y�\‰\˜DŸI™IŸL™LÕ(¨AÕ-ˆà�!Œ8Ü�6œF 1 a›LÕ(Ó)¨DÔ0ÙØ—9‘9—?‘? 1 v gÓ.ˆDØ�L‰L˜Ÿ™Ô#Ø×Ñ¤ q¨!£Ô-Ùä�S‹kˆØ�y‰y�‰˜q #Ó&ˆØ�‰�d—i‘iÔ Ø×Ñ˜F S�LÖ)r)   c                óö  € \        V 4       V P                  p\        P                  ! V4      p\        P                  ! V4      p\        P
                  ! V4      pV\        P                  8w  d   \        \        4      h\        P                  ! V\        R4      \        R4      \        R4      4      p	V	P                  '       g   \        R\        4       \        P                  ! V\        R4      4      p
\        V4      pV'       d"   VP                  '       g   \!        \"        4      hV'       d‡   \%        WyV^4       \        P&                  ! V4      w  rÍ\        P(                  ! V4      p\        P*                  ! V	\        R4      V4       \        P,                  ! Wž\        R4      \        R4      4       V'       d¦   \        P.                  ! V	\        R4      V4       \        P.                  ! V
\        R4      V4       \        P.                  ! V	\        R4      V4       \        P.                  ! V
\        R4      V4       \        P.                  ! V\        R	4      V4       V'       dC   \        P.                  ! V	\        R4      V4       \        P.                  ! V
\        R4      V4       V'       dE   \        P.                  ! V	\        R
4      V4       \        P.                  ! V
\        R
4      V4       R# R# )zUpdate attached file.r¶  r·  r¸  úbad PDF: no /EF objectÚDLr½  r¾  rº  ÚContentsr»  N)ro  rÄ   r£   r  r›  r  rL  r¿  rÀ  r   r  rÌ   rÁ  rÂ  r  r.  rÃ   r/  r0  Úfz_buffer_storageÚpdf_new_intrU  Úpdf_dict_putlr¯  )r&   r4  rj   Ú	ufilenamerÊ  rß   r&  ra  rÈ   r   rË  r%  r9   r@  Úls   &&&&&          r'   Úupdate_fileÚAnnot.update_file7  s  € ä�DÔØ—	‘	ˆÜ×'Ò'¨Ó.ˆ	Ü×*Ò*¨9Ó5ˆÜ×#Ò# EÓ*ˆØ”5×2Ñ2Ô2ÜÔ/Ó0Ð0Ü×$Ò$ Y´¸³ÄÈÃÔPXÐY\ÓP]Ó^ˆà× × Ð ÜÐ-Ô/CÔDä×Ò 	¬8°D«>Ó:ˆô ! Ó)ˆß˜3Ÿ>Ÿ>˜>ÜœnÓ-Ð-ßÜ˜S¨#¨qÔ1ä×,Ò,¨SÓ1‰FˆCÜ×!Ò! #Ó&ˆAÜ×Ò˜v¤x°£~°qÔ9Ü×Ò ¬8°HÓ+=¼xÈÓ?OÔPçÜ×*Ò*¨6´8¸C³=À(ÔKÜ×*Ò*¨2¬x¸«}¸hÔGÜ×*Ò*¨6´8¸D³>À8ÔLÜ×*Ò*¨2¬x¸«~¸xÔHÜ×*Ò*¨9´h¸zÓ6JÈHÔUçÜ×*Ò*¨6´8¸D³>À9ÔMÜ×*Ò*¨2¬x¸«~¸yÔIçÜ×*Ò*¨6´8¸FÓ3CÀTÔJÜ×*Ò*¨2¬x¸Ó/?ÀÖFñ r)   c                 	ó>   € ^ p \        R4       F  pW,          p K  	  V # )rx   i0u  )rS  )Útotalrg  s     r'   r  ÚAnnot.update_timing_testb  s!   € àˆÜ˜–ˆAØ�JŠEñ !àˆr)   c           	     óZ  € \        V 4       V P                  p\        V\        P                  4      '       g   Q h\        P
                  ! V4      p\        V4      p\        P                  ! 4       p\        P                  ! 4       p\        P                  ! W5V4       \        V4      p\        P                  ! WF4      p\        P                  ! V\        R4      4      pVP                  '       g!   \        P                  ! V\        R4      4      pVP                  '       g!   \        P                  ! V\        R4      4      pVP                  '       g   \        P                  ! VR4      pVP                  '       dÛ   . p\!        ^ \        P"                  ! V4      ^4       F±  p	\        P$                  ! \        P&                  ! Wy4      4      p
\        P$                  ! \        P&                  ! Wy^,           4      4      p\        P(                  ! W«4      p\        P*                  ! WÄ4      pVP-                  VP.                  VP0                  34       K³  	  V# \        P                  ! VR4      pVP                  '       Ed,   . p\!        \        P"                  ! V4      4       EF  p	. p\        P&                  ! Wy4      p\!        ^ \        P"                  ! V4      ^4       F±  p\        P$                  ! \        P&                  ! Wï4      4      p
\        P$                  ! \        P&                  ! Wï^,           4      4      p\        P(                  ! W«4      p\        P*                  ! WÄ4      pVP-                  VP.                  VP0                  34       K³  	  VP-                  V4       EK  	  V# R# )zannotation vertex pointsÚVerticesÚLÚ
QuadPointsÚCLÚInkListN)ro  rÄ   r@   r£   rä   r  rà   r|  rq  Úpdf_page_transformÚJM_derotate_page_matrixÚ	fz_concatr  r  rÌ   r  rS  r«  r  r¬  ÚFzPointÚfz_transform_pointro   ÚxÚy)r&   rß   r&  rÖ   Úpage_ctmÚdummyÚderotr±  r%  rg  ri  rj  ÚpointÚres1Úo1rŒ  s   &               r'   r(  ÚAnnot.verticesi  s•  € ô 	�DÔØ—	‘	ˆÜ˜%¤§¡×0Ò0Ð0Ð0Ü×'Ò'¨Ó.ˆ	Ü˜uÓ%ˆÜ—>’>Ó#ˆÜ—’“ˆÜ× Ò  ¨hÔ7Ü'¨Ó-ˆÜ—?’? 8Ó3ˆô ×Ò˜y¬(°:Ó*>Ó?ˆØ�|�|ˆ|¤E×$6Ò$6°yÄ(È3Ã-Ó$P Ø�|�|ˆ|¤E×$6Ò$6°yÄ(È<ÓBXÓ$Y Ø�|�|ˆ|¤E×$7Ò$7¸	À4Ó$H à�<�<ˆ<ð ˆCÜ˜1œe×1Ò1°!Ó4°aÖ8�Ü×%Ò%¤e×&9Ò&9¸!Ó&?Ó@�Ü×%Ò%¤e×&9Ò&9¸!¸q½SÓ&AÓB�ÜŸš aÓ+�Ü×0Ò0°ÓA�Ø—
‘
˜UŸW™W e§g¡gÐ.Ö/ñ 9ð ˆJä×Ò 	¨9Ó5ˆØ�<�<‰<ð ˆCÜœ5×.Ò.¨qÓ1×2�Ø�Ü×(Ò(¨Ó.�Ü˜q¤%×"5Ò"5°bÓ"9¸1Ö=�AÜ×)Ò)¬%×*=Ò*=¸bÓ*DÓE�AÜ×)Ò)¬%×*=Ò*=¸bÀAÅ#Ó*FÓG�AÜ!ŸMšM¨!Ó/�EÜ!×4Ò4°UÓE�EØ—K‘K %§'¡'¨5¯7©7Ð!3Ö4ñ >ð —
‘
˜4× ñ 3ð ˆJñ r)   c                ó„   € \        V 4       V P                  p\        P                  ! \        P                  ! V4      4      # )zannotation xref number)ro  rÄ   r£   r  r  rå   s   & r'   r  Ú
Annot.xrefŸ  s1   € ô 	�DÔØ—	‘	ˆÜ×Ò¤× 3Ò 3°EÓ :Ó;Ð;r)   ©rì   rÄ   rõ   ©rx   )r¨  NNr¨  ©r™  )NNNrx   ©Nrx   )Nr¨  NNr¨  ©NNN©NNNNNNr+   )	NNrx   NNNNTr¨  ©NNNN)Er/   r0   r1   r2   r‘   ré   rï   rò   rö   r  r(  r7  rl  Úpropertyrv  r�  rŽ  r”  rŸ  r  r³  rÌ  rÐ  rÔ  rÚ  rs  rö  r  r  r  r$  r'  r8  r=  rA  rI  rQ  r]  r]  re  rh  rü   rq  ru  rz  r~  r‚  r�  r   r¤  r³  r¾  rÃ  rÉ  rÌ  rÐ  rØ  rÜ  rã  rê  rî  rÈ   rN  rY  Ústaticmethodr  r(  r  r3   r,   r)   r'   râ   râ   J  s³  † òòò:òò!ò%òNô&9ô(aðF ñó ðð  ñó ðð. ñó ðð> ñó ðô$=ð ñ	ó ð	òGð6 ñ/ó ð/ðb ñ,ó ð,òò	òôò(ò@5ò8ôð& ñ1ó ð1ð ñó ððB ñ	&ó ð	&ð ñ2ó ð2ð
 ñ9ó ð9ð ñ	ó ð	ð ñó ðð2 ñó ðð ñó ðð$ ñ	ó ð	ð ñó ðð& ñó ðð ñ+ó ð+ò<ò"	?òGô-<ô^'1òR0ôlò<=ô 7ò<òCôUò
"ò4ò	,òô Cð< ñó ð÷{*ôz)GðV ñó ðð ñ3ó ð3ðj ñ<ó ô<r)   râ   c                  óz   € ] tR tRtR tR tRR ltRR ltRR ltRR lt	RR	 lt
RR
 lt]R 4       tR tR tRtR# )ÚArchivei§  c                óŒ   € \        4       V n        \        P                  ! 4       V n        V'       d   V P
                  ! V!   R# R# )zÅ
Archive(dirname [, path]) - from folder
Archive(file [, path]) - from file name or object
Archive(data, name) - from memory item
Archive() - empty archive
Archive(archive [, path]) - from archive
N)r´   Ú_subarchivesr£   Úfz_new_multi_archiverÄ   Úadd©r&   r  s   &*r'   r‘   ÚArchive.__init__¨  s2   € ô !›FˆÔÜ×.Ò.Ó0ˆŒ	ßØ�HŠH�tÔñ r)   c                	ó2   € R \        V P                  4       2# )zArchive, sub-archives: )r9   r€  r-   s   &r'   rï   ÚArchive.__repr__µ  s   € Ø(¬¨T×->Ñ->Ó)?Ð(@ÐAÐAr)   Nc                	óH   € \         P                  ! V P                  W4       R # r+   )r£   Úfz_mount_multi_archiverÄ   )r&   Úsubarchr   s   &&&r'   Ú	_add_archÚArchive._add_arch¸  s   € Ü×$Ò$ d§i¡i°Ö?r)   c                	ót   € \         P                  ! V4      p\         P                  ! V P                  W24       R # r+   )r£   Úfz_open_directoryrˆ  rÄ   )r&   Úfolderr   Úsubs   &&& r'   Ú_add_dirÚArchive._add_dir»  s&   € Ü×%Ò% vÓ.ˆÜ×$Ò$ d§i¡i°Ö;r)   c                	óÞ   € \        V4      p\        P                  ! \        P                  ! 4       4      p\        P                  ! WRV4       \        P
                  ! V P                  WS4       R # r+   )r.  r£   Úfz_new_tree_archiveÚFzTreeÚfz_tree_archive_add_bufferrˆ  rÄ   )r&   Úmemoryr   r   Úbuffr�  s   &&&&  r'   Ú_add_treeitemÚArchive._add_treeitem¿  sF   € Ü! 6Ó*ˆÜ×'Ò'¬¯ª«Ó8ˆÜ×(Ò(¨#°TÔ:Ü×$Ò$ d§i¡i°Ö;r)   c                	ó°   € V^8X  d   \         P                  ! V4      pM\         P                  ! V4      p\         P                  ! V P                  WC4       R# ©r™  N)r£   Úfz_open_zip_archiveÚfz_open_tar_archiverˆ  rÄ   )r&   Úfilepathrb  r   r�  s   &&&& r'   Ú_add_ziptarfileÚArchive._add_ziptarfileÅ  s=   € Ø�AŒ:Ü×+Ò+¨XÓ6‰Cä×+Ò+¨XÓ6ˆCÜ×$Ò$ d§i¡i°Ö;r)   c                	óò   € \        V4      p\        P                  ! V4      pV^8X  d   \        P                  ! V4      pM\        P                  ! V4      p\        P
                  ! V P                  Wc4       R# r›  )r.  r£   Úfz_open_bufferÚfz_open_zip_archive_with_streamÚfz_open_tar_archive_with_streamrˆ  rÄ   )r&   r–  rb  r   r—  r   r�  s   &&&&   r'   Ú_add_ziptarmemoryÚArchive._add_ziptarmemoryÌ  sW   € Ü! 6Ó*ˆÜ×%Ò% tÓ,ˆØ�!Œ8Ü×7Ò7¸Ó@‰Cä×7Ò7¸Ó@ˆCÜ×$Ò$ d§i¡i°Ö;r)   c                óN	  a € R pV 3R lp\        V\        P                  4      '       d   \        V4      p\        V\        4      '       Ed   \        P
                  P                  V4      '       d0   S P                  W4       V! \        P                  ! V4      VR4      # \        P
                  P                  V4      '       d   \        V\        4      '       d   VR8w  g   Q RV: R24       h\        P                  ! VR4      ;_uu_ 4       pVP                  4       pRRR4       S P                  XV4       V! V.RR	4      # \        R
V: 24      hV! V4      '       dA   \        V\        4      '       d   VRV: R28w  g   Q hS P                  W4       V! V.RR	4      # \        V\        P                   4      '       dk   \#        VRR4      pVf/   VP$                  P'                  4       pS P)                  V^V4       MS P+                  V^V4       V! VP-                  4       VR4      # \        V\.        P0                  4      '       d¡   \#        VP2                  RR4      pVf[   VP2                  p\        V\        P4                  4      '       g   VP2                  pS P)                  VP'                  4       ^ V4       MS P+                  V^ V4       V! VP7                  4       VR4      # \        V\8        4      '       d   S P;                  W4       V! . VR4      # \        V\<        4      '       Ed   \?        V4      ^8X  dø   Vw  rš\        V
\        4      '       g   Q R\A        V
4      : 24       hV! V	4      '       d   S P                  WšVR7       Mœ\        V	\        4      '       dr   \        P
                  P                  V	4      '       dL   \        P                  ! V	R4      ;_uu_ 4       pVP                  4       pRRR4       S P                  XW¢R7       MQ R\A        T	4      : R24       hV! V
.VR	4      # \C        VR4      '       d   V F  pS PE                  W²4       K  	  R# \G        R\A        V4       R24      h  + '       g   i     ELj; i  + '       g   i     Lž; i)a9  
Add a sub-archive.

Args:
    content:
        The content to be added. May be one of:
            `str` - must be path of directory or file.
            `bytes`, `bytearray`, `io.BytesIO` - raw data.
            `zipfile.Zipfile`.
            `tarfile.TarFile`.
            `pymupdf.Archive`.
            A two-item tuple `(data, name)`.
            List or tuple (but not tuple with length 2) of the above.
    path: (str) a "virtual" path name, under which the elements
        of content can be retrieved. Use it to e.g. cope with
        duplicate element names.
c                óL   € \        V \        \        \        P                  34      # r+   )r@   r  Ú	bytearrayr;   ÚBytesIO©ri  s   &r'   Úis_binary_dataÚ#Archive.add.<locals>.is_binary_dataç  s   € Ü˜a¤%¬´B·J±JÐ!?Ó@Ð@r)   c                óŽ  <€ \        W VR 7      pVR8w  g   SP                  . 8X  d   SP                  P                  V4       R# SP                  R,          pVR,          R8w  g   VR,          VR,          8w  d   SP                  P                  V4       R# VR,          P                  VR,          4       VSP                  R&   R# ))r±   Úentriesr   Útreer±   r   r¯  Nr¨  )r7   r€  ro   Úextend)r¯  Úmountr±   r‰  Últreer&   s   &&&  €r'   Úmake_subarchÚ!Archive.add.<locals>.make_subarchê  sž   ø€ Ü˜s¸%Ô@ˆGØ�fŒ} × 1Ñ 1°RÔ 7Ø×!Ñ!×(Ñ(¨Ö1à×)Ñ)¨"Õ-�Ø˜•< 6Ô)¨U°6­]¸gÀf½oÔ-MØ×%Ñ%×,Ñ,¨WÖ5à˜)Õ$×+Ñ+¨G°IÕ,>Ô?Ø,1�D×%Ñ% bÓ)r)   Údirr`   z'Need name for binary content, but path=r   ÚrbNr°  zNot a file or directory: rj   Úzipr   ÚtarÚmultizUnexpected type(name)=)r   zUnexpected type(data)=rŒ  zUnrecognised type )$r@   ÚpathlibÚPathræ  rh   r   Úisdirr�  ÚlistdirÚisfiler;   r<   Úreadr˜  rÃ   ÚzipfileÚZipFilerî   ÚfpÚgetvaluer¥  rŸ  ÚnamelistÚtarfileÚTarFileÚfileobjrª  Úgetnamesr~  rŠ  rµ   r9   rÈ   r=   r‚  r¿  )r&   r§  r   r¬  r´  r  Úffrj   rÃ  Údatar   rE   s   f&&         r'   r‚  ÚArchive.addÕ  sÅ  ø€ ò$	Aõ
	2ô �gœwŸ|™|×,Ò,Ü˜'“lˆGä�gœs×#Ó#Ü�w‰w�}‰}˜W×%Ò%Ø—‘˜gÔ,Ù#¤B§J¢J¨wÓ$7¸¸uÓEÐEÜ—‘—‘ ×(Ò(Ü! $¬×,Ò,°¸´ð FØB¸T¹GÀ1ÐEóFÐ;ä—W’W˜W d×+Ô+¨qØŸ™›�B÷ ,à×"Ñ" 2 tÔ,Ù# T F¨D°&Ó9Ð9ä Ð#<¸W¹KÐ!HÓIÐIá˜G×$Ò$Ü˜d¤C×(Ò(¨Tð 6?Ø9=¹¸qð6Bô .Bð Bð Bà×Ñ˜wÔ-Ù  ¨¨fÓ5Ð5ä˜¤§¡×1Ò1Ü˜w¨
°DÓ9ˆHØÒØ—Z‘Z×(Ñ(Ó*�Ø×&Ñ& r¨1¨dÕ3à×$Ñ$ X¨q°$Ô7Ù × 0Ñ 0Ó 2°D¸%Ó@Ð@ä˜¤§¡×1Ò1Ü˜wŸ™°¸Ó=ˆHØÒØ—_‘_�Ü! "¤b§j¡j×1Ò1ØŸ™�BØ×&Ñ& r§{¡{£}°a¸Õ>à×$Ñ$ X¨q°$Ô7Ù × 0Ñ 0Ó 2°D¸%Ó@Ð@ä˜¤×)Ò)Ø�N‰N˜7Ô)Ù  D¨'Ó2Ð2ä�gœu×%Ó%¬#¨g«,¸!Ô*;à ‰JˆDÜ˜d¤C×(Ò(ÐEÐ,C¼¸T»
±}Ð*EÓEÐ(Ù˜d×#Ò#Ø×"Ñ" 4°DÐ"Õ9Ü˜D¤#×&Ò&Ü—7‘7—>‘> $×'Ò'ÜŸš  t×,Ô,°ØŸV™V›X˜÷ -à×&Ñ& r¨4Ð&Ô;øà6Ð3¬¨T«
¡}°AÐ6Ó6�qÙ  ¨¨fÓ5Ð5ä�W˜m×,Ò,ã�Ø—‘˜Ö$ñ  áô Ð0´°g³°¸qÐAÓBÐB÷w ,×+Ð+ú÷Z -×,ús   ÄR Ï-RÒ R	ÒR$	c                ó   € V P                   # )z
List of sub archives.
)r€  r-   s   &r'   Ú
entry_listÚArchive.entry_list>  s   € ð
 × Ñ Ð r)   c                	óD   € \         P                  ! V P                  V4      # r+   )r£   Úfz_has_archive_entryrÄ   ©r&   r   s   &&r'   Ú	has_entryÚArchive.has_entryE  s   € Ü×)Ò)¨4¯9©9°dÓ;Ð;r)   c                	óZ   € \         P                  ! V P                  V4      p\        V4      # r+   )r£   Úfz_read_archive_entryrÄ   r#  )r&   r   r—  s   && r'   Ú
read_entryÚArchive.read_entryH  s#   € Ü×*Ò*¨D¯I©I°tÓ<ˆÜ Ó&Ð&r)   )r€  rÄ   r+   )r/   r0   r1   r2   r‘   rï   rŠ  r�  r˜  rŸ  r¥  r‚  r{  rÎ  rÓ  r×  r3   r,   r)   r'   r~  r~  §  sL   † òòBô@ô<ô<ô<ô<ôgðR ñ!ó ð!ò<ö'r)   r~  c                  óV  € ] tR tRtR tR tR tR tR tR t	RJR	 lt
R
 tR tR tRKR ltR tRLR ltRJR ltR tRMR ltR tR tR tRJR ltRJR ltR tR tR tR tR t]R 4       tR t R t!R  t"R! t#R" t$]%R# 4       t&R$ t'R% t(R& t)R' t*R( t+]%R) 4       t,]%R* 4       t-]%R+ 4       t.]%R, 4       t/]%R- 4       t0R. t1R/ t2]%R0 4       t3R1 t4R2 t5R3 t6RNR4 lt7R5 t8R6 t9R7 t:R8 t;R9 t<RNR: lt=R; t>R< t?R= t@R> tAR? tBR@ tCRA tDRORB ltERC tFRPRD ltGRE tHRF tI]%RG 4       tJ]%RH 4       tK]
tL]
tM]
tNRItOR# )QÚXmliM  c                	ó   € V # r+   r,   r-   s   &r'   Ú	__enter__ÚXml.__enter__O  ó   € Øˆr)   c                	ó   € R # r+   r,   rƒ  s   &*r'   Ú__exit__ÚXml.__exit__R  ó   € Ùr)   c                	ó
  € \        V\        P                  4      '       d	   Wn        R# \        V\        4      '       d4   \        P
                  ! V4      p\        P                  ! V4      V n        R# Q R\        T4       24       h)rx   zUnsupported type for rhs: N)r@   r£   ÚFzXmlrÄ   ræ  Úfz_new_buffer_from_copied_dataÚfz_parse_xml_from_html5rÈ   )r&   Úrhsr—  s   && r'   r‘   ÚXml.__init__U  s]   € Ü�cœ5Ÿ;™;×'Ò'ØŽIÜ˜œS×!Ò!Ü×7Ò7¸Ó<ˆDÜ×5Ò5°dÓ;ˆDŽIà>Ð2´4¸³9°+Ð>Ó>�1r)   c                	ó.   a€ V3R  lo^ p. pS! WV4      pV# )c           	     óø  <€ V eõ   V P                   '       d0   VP                  VRV P                   R234       V P                  p KE  VP                  VRV P                   234       V P                  4       P                  4        F  w  r4VP                  VRV RV R234       K!  	  V P                  pV'       d   S! WQV^,           4      pVP                  VRV P                   234       V P                  p Kø  V# )NÚ"Ú(r   z 'rí   Ú))Úis_textro   r   r]  ÚtagnameÚget_attributesrD   Úfirst_child)ÚnoderD   ÚshiftÚkrH   ÚchildÚ	show_nodes   &&&   €r'   rö  Ú%Xml._get_node_tree.<locals>.show_node_  sÝ   ø€ ØÒ"Ø—<—<�<Ø—L‘L %¨1¨T¯Y©Y¨K°qÐ)9Ð!:Ô;ØŸ9™9�DÙØ—‘˜e q¨¯©¨Ð%7Ð8Ô9Ø ×/Ñ/Ó1×7Ñ7Ö9‘D�AØ—L‘L %¨1¨Q¨C¨r°!°°A¨Ð!7Ö8ñ :à×(Ñ(�ßÙ% e°E¸AµIÓ>�EØ—‘˜e q¨¯©¨Ð%7Ð8Ô9Ø—y‘y’ØˆLr)   r,   )r&   ró  rD   rö  s   &  @r'   Ú_get_node_treeÚXml._get_node_tree^  s%   ø€ õ	ð  ˆØˆÙ˜$ uÓ-ˆØˆr)   c                óJ   € V P                  R4      pV P                  V4       V# )zAdd bulleted list ("ul" tag)Úul©Úcreate_elementÚappend_child©r&   rõ  s   & r'   Úadd_bullet_listÚXml.add_bullet_listt  ó%   € à×#Ñ# DÓ)ˆØ×Ñ˜%Ô Øˆr)   c                ó´   € V P                  R4      pVe	   W9   d   V # V P                  R4       Vf   TpMVRV,           ,          pV P                  RV4       V # )z5Set some class via CSS. Replaces complete class spec.Úclassr³   ©Úget_attribute_valueÚremove_attributeÚset_attribute)r&   r   Úclss   && r'   Ú	add_classÚXml.add_classz  s[   € à×&Ñ& wÓ/ˆØŠ?˜tœ{ØˆKØ×Ñ˜gÔ&ØŠ;Ø‰Cà�3˜•:ÕˆCØ×Ñ˜7 CÔ(Øˆr)   Nc                óÜ   € V P                  R4      p\        V4      \        J d!   VP                  V P	                  V4      4       V P                  4       pVf   T pVP                  V4       V # )zAdd a "code" tagr  ©rý  rÈ   ræ  rþ  Úcreate_text_nodeÚspan_bottom©r&   r   rõ  Úprevs   &&  r'   Úadd_codeÚXml.add_code‡  sb   € à×#Ñ# FÓ+ˆÜ�‹:œÓØ×Ñ˜t×4Ñ4°TÓ:Ô;Ø×ÑÓ!ˆØŠ<ØˆDØ×Ñ˜%Ô Øˆr)   c                óJ   € V P                  R4      pV P                  V4       V# )z!Add monospaced lines ("pre" node)Úprerü  rÿ  s   & r'   Úadd_codeblockÚXml.add_codeblock’  ó%   € à×#Ñ# EÓ*ˆØ×Ñ˜%Ô Øˆr)   c                óJ   € V P                  R4      pV P                  V4       V# )zAdd description list ("dl" tag)Údlrü  rÿ  s   & r'   Úadd_description_listÚXml.add_description_list˜  r  r)   c                óJ   € V P                  R4      pV P                  V4       V# )zAdd "div" tagÚdivrü  rÿ  s   & r'   Úadd_divisionÚXml.add_divisionž  r  r)   c                óì   € V\        ^^4      9  d   \        R4      hV P                  pRV 2pV P                  V4      pVR9  d   V P	                  V4       V# V P
                  P	                  V4       V# )zAdd header tagzHeader level must be in [1, 6]Úh)Úh1Úh2Úh3Úh4Úh5Úh6r²  )rS  rÃ   rï  rý  rþ  rì   )r&   r   Úthis_tagÚnew_tagrõ  s   &&   r'   Ú
add_headerÚXml.add_header¤  ss   € àœ˜a ›Ô#ÜÐ=Ó>Ð>Ø—<‘<ˆØ�e�W�+ˆØ×#Ñ# GÓ,ˆØÐDÔDØ×Ñ˜eÔ$ØˆLØ�‰× Ñ  Ô'Øˆr)   c                óJ   € V P                  R4      pV P                  V4       V# )zAdd horizontal line ("hr" tag)Úhrrü  rÿ  s   & r'   Úadd_horizontal_lineÚXml.add_horizontal_line±  r  r)   c                ó,  € V P                  R4      pVe   VP                  RV 4       Ve   VP                  RV 4       Ve   VP                  RRV 24       Ve   VP                  RV 4       VP                  RV 4       V P                  V4       V# )zAdd image node (tag "img").Úimgrˆ  Úheightr‰  zfloat: r  Úsrc)rý  r  rþ  )r&   r   rˆ  r3  Úimgfloatr  rõ  s   &&&&&& r'   Ú	add_imageÚXml.add_image·  sœ   € à×#Ñ# EÓ*ˆØÒØ×Ñ ¨E¨7Ô4ØÒØ×Ñ ¨V¨HÔ6ØÒØ×Ñ ¨7°8°*Ð)=Ô>ØÒØ×Ñ ¨E¨7Ô4Ø×Ñ˜E d VÔ-Ø×Ñ˜%Ô Øˆr)   c                ó
  € V P                  R4      p\        V\        4      '       g   TpVP                  RV4       VP	                  V P                  V4      4       V P                  4       pVf   T pVP	                  V4       V # )zAdd a hyperlink ("a" tag)r   Úhref)rý  r@   ræ  r  rþ  r  r  )r&   r9  r   rõ  r  s   &&&  r'   Úadd_linkÚXml.add_linkÆ  sx   € à×#Ñ# CÓ(ˆÜ˜$¤×$Ò$ØˆDØ×Ñ˜F DÔ)Ø×Ñ˜4×0Ñ0°Ó6Ô7Ø×ÑÓ!ˆØŠ<ØˆDØ×Ñ˜%Ô Øˆr)   c                ó˜   € V P                   R9  d   \        RV P                   4      hV P                  R4      pV P                  V4       V# )z8Add item ("li" tag) under a (numbered or bulleted) list.zcannot add list item toÚli)Úolrû  )rï  rÃ   rý  rþ  rÿ  s   & r'   Úadd_list_itemÚXml.add_list_itemÓ  sC   € à�<‰<˜|Ô+ÜÐ6¸¿¹ÓEÐEØ×#Ñ# DÓ)ˆØ×Ñ˜%Ô Øˆr)   c                óº   € V P                  R4      pV^8”  d   VP                  R\        V4      4       Ve   VP                  RV4       V P                  V4       V# )zAdd numbered list ("ol" tag)r>  rÇ  rÈ   )rý  r  ræ  rþ  )r&   rÇ  Únumtyperõ  s   &&& r'   Úadd_number_listÚXml.add_number_listÛ  sV   € à×#Ñ# DÓ)ˆØ�1Œ9Ø×Ñ ¬¨U«Ô4ØÒØ×Ñ ¨Ô0Ø×Ñ˜%Ô Øˆr)   c                ó¦   € V P                  R4      pV P                  R8w  d   V P                  V4       V# V P                  P                  V4       V# )zAdd "p" tagr²  )rý  rï  rþ  rì   rÿ  s   & r'   Úadd_paragraphÚXml.add_paragraphå  sL   € à×#Ñ# CÓ(ˆØ�<‰<˜3ÔØ×Ñ˜eÔ$ð ˆð �K‰K×$Ñ$ UÔ+Øˆr)   c                	óJ   € V P                  R 4      pV P                  V4       V# ©Úspanrü  rÿ  s   & r'   Úadd_spanÚXml.add_spanî  s%   € Ø×#Ñ# FÓ+ˆØ×Ñ˜%Ô Øˆr)   c                ó´   € V P                  R4      pVe	   W9   d   V # V P                  R4       Vf   TpMVRV,           ,          pV P                  RV4       V # )z;Set some style via CSS style. Replaces complete style spec.r‰  Ú;r  )r&   r   r‰  s   && r'   Ú	add_styleÚXml.add_styleó  s\   € à×(Ñ(¨Ó1ˆØÒ ¤ØˆKØ×Ñ˜gÔ&ØŠ=Ø‰Eà�S˜4•ZÕˆEØ×Ñ˜7 EÔ*Øˆr)   c                óÜ   € V P                  R4      p\        V4      \        J d!   VP                  V P	                  V4      4       V P                  4       pVf   T pVP                  V4       V # )zAdd a subscript ("sub" tag)r�  r  r  s   &&  r'   Úadd_subscriptÚXml.add_subscript 	  ób   € à×#Ñ# EÓ*ˆÜ�‹:œÓØ×Ñ˜t×4Ñ4°TÓ:Ô;Ø×ÑÓ!ˆØŠ<ØˆDØ×Ñ˜%Ô Øˆr)   c                óÜ   € V P                  R4      p\        V4      \        J d!   VP                  V P	                  V4      4       V P                  4       pVf   T pVP                  V4       V # )zAdd a superscript ("sup" tag)Úsupr  r  s   &&  r'   Úadd_superscriptÚXml.add_superscript	  rT  r)   c                ó.  € VP                  4       p\        V4      pV P                  4       pVf   T p\        V4       FT  w  rVVP	                  V P                  V4      4       WS^,
          8  g   K4  VP	                  V P                  R4      4       KV  	  V # )z"Add text. Line breaks are honored.r+  )r  r9   r  Ú	enumeraterþ  r  rý  )r&   r   ÚlinesÚ
line_countr  rg  rs   s   &&     r'   Úadd_textÚXml.add_text	  sƒ   € à—‘Ó!ˆÜ˜“Zˆ
Ø×ÑÓ!ˆØŠ<ØˆDä  Ö'‰GˆAØ×Ñ˜d×3Ñ3°DÓ9Ô:Ø •>Ö!Ø×!Ñ! $×"5Ñ"5°dÓ";Ö<ñ (ð ˆr)   c                	ó\   € \         P                  ! V P                  VP                  4       R # r+   )r£   Úfz_dom_append_childrÄ   rÿ  s   &&r'   rþ  ÚXml.append_child$	  s   € Ü×!Ò! 4§9¡9¨e¯j©jÖ9r)   c                	ó˜   € V P                  R 4      pVP                  V4       V P                  4       pVf   T pVP                  V4       V# rI  )rý  rO  r  rþ  )r&   r‰  rJ  r  s   &&  r'   Úappend_styled_spanÚXml.append_styled_span'	  sI   € Ø×"Ñ" 6Ó*ˆØ�‰�uÔØ×ÑÓ!ˆØŠ<ØˆDØ×Ñ˜$ÔØˆr)   c                	óT   € \        \        P                  ! V P                  4      4      # r+   )rÚ  r£   Úfz_dom_bodyrÄ   r-   s   &r'   ÚbodytagÚXml.bodytag0	  s   € Ü”E×%Ò% t§y¡yÓ1Ó2Ð2r)   c                	óX   € \         P                  ! V P                  4      p\        V4      # r+   )r£   Úfz_dom_clonerÄ   rÚ  ©r&   rI   s   & r'   ÚcloneÚ	Xml.clone3	  s    € Ü× Ò  $§)¡)Ó,ˆÜ�C‹yÐr)   c                	óÄ   € \        V 4      \        J d   V # \        V 4      \        J d   R \        V 4       R2# \        V 4      \        \
        39   d   R\	        V 4       2# V # )zrgb(rí  rá  )rÈ   ræ  r6   ÚsRGB_to_rgbrµ   r´   )Úcolors   &r'   Ú
color_textÚXml.color_text7	  sZ   € ä�‹;œ#ÓØˆLÜ�‹;œ#ÓØœ+ eÓ,Ð-¨QÐ/Ð/Ü�‹;œ5¤$˜-Ô'Øœ˜u›˜Ð'Ð'Øˆr)   c                	óV   € \        \        P                  ! V P                  V4      4      # r+   )rÚ  r£   Úfz_dom_create_elementrÄ   )r&   Útags   &&r'   rý  ÚXml.create_elementA	  s   € Ü”E×/Ò/°·±¸CÓ@ÓAÐAr)   c                	óV   € \        \        P                  ! V P                  V4      4      # r+   )rÚ  r£   Úfz_dom_create_text_noderÄ   )r&   r   s   &&r'   r  ÚXml.create_text_nodeD	  s   € Ü”E×1Ò1°4·9±9¸dÓCÓDÐDr)   c                ó¦   € V P                  4       pV F:  p\        RV^ ,          ,          V^,          P                  RR4      ,           4       K<  	  R# )z)Print a list of the node tree below self.z  r#   ú\nN)rø  rv   r  )r&   rD   rE   s   &  r'   ÚdebugÚ	Xml.debugG	  s>   € à×#Ñ#Ó%ˆÛˆDÜ�D˜4 �7•N T¨!¥W§_¡_°T¸5Ó%AÕAÖBó r)   c                	ó„   € \         P                  ! V P                  WV4      pVP                  '       d   \	        V4      # R # r+   )r£   Úfz_dom_findrÄ   rÌ   rÚ  ©r&   ru  ÚattÚmatchrI   s   &&&& r'   r§   ÚXml.findM	  s2   € Ü×Ò §¡¨C°eÓ<ˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	ó„   € \         P                  ! V P                  WV4      pVP                  '       d   \	        V4      # R # r+   )r£   Úfz_dom_find_nextrÄ   rÌ   rÚ  r€  s   &&&& r'   Ú	find_nextÚXml.find_nextR	  s2   € Ü×$Ò$ d§i¡i°¸5ÓAˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	ó¼   € \         P                  ! V P                  4      '       d   R # \         P                  ! V 4      pVP                  '       d   \        V4      # R # r+   )r£   Úfz_xml_textrÄ   Úfz_dom_first_childrÌ   rÚ  rk  s   & r'   rñ  ÚXml.first_childW	  sB   € ä×Ò˜dŸi™i×(Ò(áÜ×&Ò&¨Ó-ˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	óX   € V'       g   Q h\         P                  ! V P                  V4      # r+   )r£   Úfz_dom_attributerÄ   ©r&   Úkeys   &&r'   r  ÚXml.get_attribute_value`	  s    € ßˆ
ˆsÜ×%Ò% t§y¡y°#Ó6Ð6r)   c                	óö   € \         P                  ! V P                  4      '       d   R # \        4       p^ p \         P                  ! V P                  V4      w  r4V'       d	   V'       g    V# W1V&   V^,          pKF  r+   )r£   r‰  rÄ   r7   Úfz_dom_get_attribute)r&   Úresultrg  r  r�  s   &    r'   rð  ÚXml.get_attributesd	  sb   € Ü×Ò˜dŸi™i×(Ò(áÜ“ˆØˆØÜ×1Ò1°4·9±9¸aÓ@‰HˆCßŸcØð ˆð �C‰LØ��FŠAr)   c                	ó\   € \         P                  ! V P                  VP                  4       R # r+   )r£   Úfz_dom_insert_afterrÄ   ©r&   rò  s   &&r'   Úinsert_afterÚXml.insert_afterr	  s   € Ü×!Ò! 4§9¡9¨d¯i©iÖ8r)   c                	ó\   € \         P                  ! V P                  VP                  4       R # r+   )r£   Úfz_dom_insert_beforerÄ   r—  s   &&r'   Úinsert_beforeÚXml.insert_beforeu	  s   € Ü×"Ò" D§I¡I¨t¯y©yÖ9r)   c                	ó  € VP                  4       p\        V4      p\        V4       FT  w  rEV P                  V P	                  V4      4       WC^,
          8  g   K4  V P                  V P                  R4      4       KV  	  V # )r™  r+  )r  r9   rZ  rþ  r  rý  )r&   r   r[  r\  rg  rs   s   &&    r'   Úinsert_textÚXml.insert_textx	  sk   € Ø—‘Ó!ˆÜ˜“Zˆ
Ü  Ö'‰GˆAØ×Ñ˜d×3Ñ3°DÓ9Ô:Ø •>Ö!Ø×!Ñ! $×"5Ñ"5°dÓ";Ö<ñ (ð ˆr)   c                ó   € V P                   RJ# )zCheck if this is a text node.Nru   r-   s   &r'   rî  ÚXml.is_text�	  s   € ð �y‰y Ð$Ð$r)   c                ó\   € V P                   pVf   R#  VP                  pV'       g   V# TpK  )zReturn last child node.N)rñ  r]  )r&   rõ  r]  s   &  r'   Ú
last_childÚXml.last_child†	  s0   € ð × Ñ ˆØŠ=ÙØØ—:‘:ˆDßØ�ØŠEr)   c                	ó€   € \         P                  ! V P                  4      pVP                  '       d   \	        V4      # R # r+   )r£   Úfz_dom_nextrÄ   rÌ   rÚ  rk  s   & r'   r]  ÚXml.next’	  s.   € ä×Ò §¡Ó+ˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	ó€   € \         P                  ! V P                  4      pVP                  '       d   \	        V4      # R # r+   )r£   Úfz_dom_parentrÄ   rÌ   rÚ  rk  s   & r'   rì   Ú
Xml.parent˜	  s.   € ä×!Ò! 4§9¡9Ó-ˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	ó€   € \         P                  ! V P                  4      pVP                  '       d   \	        V4      # R # r+   )r£   Úfz_dom_previousrÄ   rÌ   rÚ  rk  s   & r'   ÚpreviousÚXml.previousž	  s.   € ä×#Ò# T§Y¡YÓ/ˆØ�>�>ˆ>Ü˜“9Ðñ r)   c                	óF   € \         P                  ! V P                  4       R # r+   )r£   Úfz_dom_removerÄ   r-   s   &r'   ÚremoveÚ
Xml.remove¤	  s   € Ü×Ò˜TŸY™YÖ'r)   c                	ó\   € V'       g   Q h\         P                  ! V P                  V4       R # r+   )r£   Úfz_dom_remove_attributerÄ   rŽ  s   &&r'   r  ÚXml.remove_attribute§	  s   € ßˆ
ˆsÜ×%Ò% t§y¡y°#Ö6r)   c                	óT   € \        \        P                  ! V P                  4      4      # r+   )rÚ  r£   Úfz_xml_rootrÄ   r-   s   &r'   ÚrootÚXml.root«	  s   € ä”E×%Ò% t§y¡yÓ1Ó2Ð2r)   c                óî   € \        V\        4      '       d   TpMGV\        8X  d   RpM9V\        8X  d   RpM+V\        8X  d   RpMV\
        8X  d   RpM\        RV: 24      hV P                  RV 24       V # )z Set text alignment via CSS stylerL  ÚcenterÚrightÚjustifyzUnrecognised align=ztext-align: )r@   ræ  ÚTEXT_ALIGN_LEFTÚTEXT_ALIGN_CENTERÚTEXT_ALIGN_RIGHTÚTEXT_ALIGN_JUSTIFYrÃ   rO  )r&   r  Úts   && r'   Ú	set_alignÚXml.set_align¯	  sv   € ä�uœc×"Ò"Ø‰AØ”oÔ%Ø‰AØÔ'Ô'Ø‰AØÔ&Ô&Ø‰AØÔ(Ô(Ø‰AäÐ3¨U©HÐ5Ó6Ð6Ø�‰˜ a SÐ)Ô*Øˆr)   c                	ó\   € V'       g   Q h\         P                  ! V P                  W4       R # r+   )r£   Úfz_dom_add_attributerÄ   )r&   r�  r¸   s   &&&r'   r  ÚXml.set_attributeÀ	  s   € ßˆ
ˆsÜ×"Ò" D§I¡I¨sÖ:r)   c                óL   € V P                  RV P                  V4       24       V # )z"Set background color via CSS stylezbackground-color: )rO  rq  ©r&   rp  s   &&r'   Úset_bgcolorÚXml.set_bgcolorÄ	  s%   € à�‰Ð+¨D¯O©O¸EÓ,BÐ+CÐDÔEØˆr)   c                óH   € V'       d   RpMRpV P                  RV 24       V # )zSet bold on / off via CSS styleÚboldÚnormalzfont-weight: ©rc  ©r&   r  s   &&r'   Úset_boldÚXml.set_boldÉ	  s)   € çØ‰CàˆCØ×Ñ -°¨uÐ 5Ô6Øˆr)   c                óL   € V P                  RV P                  V4       24       V # )zSet text color via CSS stylezcolor: )rc  rq  rÊ  s   &&r'   Ú	set_colorÚXml.set_colorÒ	  s&   € à×Ñ '¨$¯/©/¸%Ó*@Ð)AÐ BÔCØˆr)   c                ó.   € V P                  RV 24       V # )z(Set number of text columns via CSS stylez	columns: rÐ  )r&   Úcolss   &&r'   Úset_columnsÚXml.set_columns×	  s   € à×Ñ )¨D¨6Ð 2Ô3Øˆr)   c                ó.   € V P                  RV 24       V # )z"Set font-family name via CSS stylezfont-family: rÐ  )r&   Úfonts   &&r'   Úset_fontÚXml.set_fontÜ	  s   € à×Ñ -°¨vÐ 6Ô7Øˆr)   c                óf   € \        V4      \        J d   RpMRpRV V 2pV P                  V4       V # )z Set font size name via CSS styler`   Úpxzfont-size: )rÈ   ræ  rc  )r&   rÿ   rà  r   s   &&  r'   Úset_fontsizeÚXml.set_fontsizeá	  s;   € ä�‹>œSÓ Ø‰BàˆBØ˜X˜J r dÐ+ˆØ×Ñ Ô%Øˆr)   c                ó’   € V P                   pVP                  RRV4      '       d   \        RV R24      hV P                  RV4       V # )zSet a unique id.NrY  zid 'z' already exists)r¹  r§   rÃ   r  )r&   Úuniquer¹  s   && r'   Úset_idÚ
Xml.set_idë	  sJ   € ð �y‰yˆØ�9‰9�T˜4 ×(Ò(Ü˜t F 8Ð+;Ð<Ó=Ð=Ø×Ñ˜4 Ô(Øˆr)   c                óH   € V'       d   RpMRpV P                  RV 24       V # )z!Set italic on / off via CSS styleÚitalicrÏ  zfont-style: rÐ  rÑ  s   &&r'   Ú
set_italicÚXml.set_italicô	  s)   € çØ‰CàˆCØ×Ñ ,¨s¨eÐ 4Ô5Øˆr)   c                ó.   € V P                  RV 24       V # )z>Set inter-line spacing value via CSS style - block-level only.z-mupdf-leading: ©rO  )r&   Úleadings   &&r'   Úset_leadingÚXml.set_leadingý	  s   € à�‰Ð)¨'¨Ð3Ô4Øˆr)   c                ó.   € V P                  RV 24       V # )z,Set inter-letter spacing value via CSS stylezletter-spacing: rÐ  ©r&   Úspacings   &&r'   Úset_letter_spacingÚXml.set_letter_spacing
  s   € à×ÑÐ"2°7°)Ð <Ô=Øˆr)   c                ó.   € V P                  RV 24       V # )z6Set line height name via CSS style - block-level only.zline-height: rì  )r&   Ú
lineheights   &&r'   Úset_lineheightÚXml.set_lineheight
  s   € à�‰˜ z lÐ3Ô4Øˆr)   c                ó.   € V P                  RV 24       V # )zSet margin values via CSS stylez	margins: rÐ  rÑ  s   &&r'   Úset_marginsÚXml.set_margins
  s   € à×Ñ )¨C¨5Ð 1Ô2Øˆr)   c                ó.   € V P                  RV 24       V # )zSet opacity via CSS stylez	opacity: rÐ  )r&   r]  s   &&r'   rØ  ÚXml.set_opacity
  s   € à×Ñ )¨G¨9Ð 5Ô6Øˆr)   c                ó(   € V P                  R4       V # )z$Insert a page break after this node.zpage-break-after: alwaysrì  r-   s   &r'   Úset_pagebreak_afterÚXml.set_pagebreak_after
  s   € à�‰Ð1Ô2Øˆr)   c                ó(   € V P                  R4       V # )z%Insert a page break before this node.zpage-break-before: alwaysrì  r-   s   &r'   Úset_pagebreak_beforeÚXml.set_pagebreak_before
  s   € à�‰Ð2Ô3Øˆr)   c                ód  € V P                   pVP                  4       pVe   VP                  V4       Ve   VP                  V4       Ve   VP	                  V4       Ve   VP                  V4       Ve   VP                  V4       Ve   VP                  V4       Ve   VP                  V4       Ve   VP                  V4       V	e   VP                  V	4       V
e   VP                  V
4       Ve   VP                  V4       Ve   VP                  V4       Ve   VP                  V4       Ve   VP                  4        Ve   VP!                  4        Ve   VP#                  V4       Ve   V P%                  V4       Ve   V P'                  V4       . pVP)                  R4      pVe   VP+                  V4       VP,                  pV'       d/   VP+                  VP)                  R4      4       VP,                  pK6  V P/                  RRP1                  V4      4       VP3                  4        V # )zPSet any or all properties of a node.

To be used for existing nodes preferably.
r‰  rN  )r¹  r  rÄ  rË  rÒ  rÕ  rÙ  rÝ  rá  Úset_text_indentré  rî  ró  r÷  rú  rÿ  r  Úset_word_spacingrå  r
  r  ro   rñ  r  r  r²  )r&   r  ÚbgcolorrÎ  rp  ÚcolumnsrÜ  rÿ   Úindentrè  rí  Úletter_spacingrö  ÚmarginsÚpagebreak_afterÚpagebreak_beforeÚword_spacingÚunqidr	  r¹  ÚtempÚstylesÚ	top_stylerõ  s   &&&&&&&&&&&&&&&&&&&     r'   Úset_propertiesÚXml.set_properties 
  sî  € ð2 �y‰yˆØ× Ñ Ó"ˆØÒØ�N‰N˜5Ô!ØÒØ×Ñ˜WÔ%ØÒØ�M‰M˜$ÔØÒØ�N‰N˜5Ô!ØÒØ×Ñ˜WÔ%ØÒØ�M‰M˜$ÔØÒØ×Ñ˜hÔ'ØÒØ× Ñ  Ô(ØÒØ�O‰O˜FÔ#ØÒØ×Ñ˜WÔ%ØÒ%Ø×#Ñ# NÔ3ØÒ!Ø×Ñ 
Ô+ØÒØ×Ñ˜WÔ%ØÒ&Ø×$Ñ$Ô&ØÒ'Ø×%Ñ%Ô'ØÒ#Ø×!Ñ! ,Ô/ØÒØ�K‰K˜ÔØŠ?Ø�N‰N˜3ÔàˆØ×,Ñ,¨WÓ5ˆ	ØÒ Ø�M‰M˜)Ô$Ø× Ñ ˆßØ�M‰M˜%×3Ñ3°GÓ<Ô=Ø×%Ñ%ŠEØ×Ñ˜7 C§H¡H¨VÓ$4Ô5Ø�‰ŒØˆr)   c                ó.   € V P                  RV 24       V # )z;Set text indentation name via CSS style - block-level only.ztext-indent: rì  )r&   r	  s   &&r'   r  ÚXml.set_text_indentl
  s   € à�‰˜ v hÐ/Ô0Øˆr)   c                	ó.   € V P                  R V 24       V # )ztext-decoration: rÐ  rÑ  s   &&r'   Úset_underlineÚXml.set_underlineq
  s   € Ø×ÑÐ"3°C°5Ð 9Ô:Øˆr)   c                ó.   € V P                  RV 24       V # )z*Set inter-word spacing value via CSS stylezword-spacing: rÐ  rñ  s   &&r'   r  ÚXml.set_word_spacingu
  s   € à×Ñ .°°	Ð :Ô;Øˆr)   c                óX  € T pV P                   pVf   R# VP                  '       d   VP                  pVe   K$   Ve   VP                  R8w  d   R#  Vf   V# VP                  R9   g   VP                  '       d   VP                  pK8  VP                  R8X  d   TpVP
                  pKY  V# )z$Find deepest level in stacked spans.NrJ  )r   r�  rV  Úbody)r¤  rî  r®  rï  r]  rñ  )r&   rì   rõ  s   &  r'   r  ÚXml.span_bottomz
  s”   € àˆØ—‘ˆØŠ=ÙØ�m�mˆmØ—N‘NˆEØŒ}ØØŠ=˜EŸM™M¨VÔ3ÙàØŠ}Ø�Ø�}‰}Ð 9Ô9¸U¿]¿]¸]ØŸ
™
�ÙØ�}‰} Ô&Ø�Ø×)Ñ)’à�r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Ú
fz_xml_tagrÄ   r-   s   &r'   rï  ÚXml.tagname“
  s   € ä×Ò §¡Ó+Ð+r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   r‰  rÄ   r-   s   &r'   r   ÚXml.text—
  s   € ä× Ò  $§)¡)Ó,Ð,r)   ©rÄ   r+   rv  rz  r›  ©T)NNNNNNNNNNNNNNNNNN)Ú	underline)Pr/   r0   r1   r2   rÜ  rà  r‘   rø  r   r
  r  r  r  r  r+  r/  r6  r:  r?  rC  rF  rK  rO  rR  rW  r]  rþ  rc  rg  rl  r|  rq  rý  r  r|  r§   r†  r{  rñ  r  rð  r˜  rœ  rŸ  rî  r¤  r]  rì   r®  r²  r  r¹  rÄ  r  rË  rÒ  rÕ  rÙ  rÝ  rá  rå  ré  rî  ró  r÷  rú  rØ  rÿ  r  r  r  r  r  r  rï  r   Úadd_varÚadd_sampÚadd_kbdr3   r,   r)   r'   rÚ  rÚ  M  s  † òòò?òò,òô	òòòôòôôòôòòò
ô	ô	òò:òò3òð ñó ðòBòEòCòò
ð
 ñó ðò7òò9ò:òð ñ%ó ð%ð ñ	ó ð	ð ñó ðð
 ñó ðð
 ñó ðò
(ò7ð ñ3ó ð3òò";òô
òò
ò
ò
òôòò
ò
ò
ò
ò
ò
ô
JòXô
òò
ð2 ñ,ó ð,ð ñ-ó ð-ð €GØ€HØ„Gr)   rÚ  c                  óH   € ] tR tRtR tR tR t]R 4       t]R 4       t	Rt
R# )	Ú
Colorspacei 
  c                ó<  € \        V\        P                  4      '       d	   Wn        R# V\        8X  d6   \        P                  ! \        P                  P
                  4      V n        R# V\        8X  d6   \        P                  ! \        P                  P                  4      V n        R# V\        8X  d6   \        P                  ! \        P                  P                  4      V n        R# \        P                  ! \        P                  P                  4      V n        R# )z!Supported are GRAY, RGB and CMYK.N)
r@   r£   ÚFzColorspacerÄ   ÚCS_GRAYÚ
Fixed_GRAYÚCS_CMYKÚ
Fixed_CMYKÚCS_RGBÚ	Fixed_RGB)r&   rb  s   &&r'   r‘   ÚColorspace.__init__¢
  s©   € ä�uœe×0Ñ0×1Ò1ØŽIØ”gÔÜ×*Ò*¬5×+=Ñ+=×+HÑ+HÓIˆDŽIØ”gÔÜ×*Ò*¬5×+=Ñ+=×+HÑ+HÓIˆDŽIØ”fŒ_Ü×*Ò*¬5×+=Ñ+=×+GÑ+GÓHˆDŽIä×*Ò*¬5×+=Ñ+=×+GÑ+GÓHˆDŽIr)   c                	óL   € RV P                   ,          pRV RV P                   2# )r`   zColorspace(CS_z) - )r`   ÚGRAYr`   ÚRGBÚCMYK)rG   r   ©r&   ri  s   & r'   rï   ÚColorspace.__repr__¯
  s'   € Ø+¨D¯F©FÕ3ˆØ ˜s $ t§y¡y kÐ2Ð2r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_colorspace_namerÄ   r-   s   &r'   Ú_nameÚColorspace._name³
  s   € Ü×'Ò'¨¯	©	Ó2Ð2r)   c                óB   € \         P                  ! V P                  4      # )zSize of one pixel.)r£   Úfz_colorspace_nrÄ   r-   s   &r'   rG   ÚColorspace.n¶
  ó   € ô ×$Ò$ T§Y¡YÓ/Ð/r)   c                ó"   € V P                  4       # )zName of the Colorspace.©r=  r-   s   &r'   r   ÚColorspace.name»
  s   € ð �z‰z‹|Ðr)   r$  N)r/   r0   r1   r2   r‘   rï   r=  r{  rG   r   r3   r,   r)   r'   r+  r+   
  s:   † òIò3ò3ð ñ0ó ð0ð ñó ôr)   r+  c                  ó   € ] tR tRtR tRtR# )ÚDeviceWrapperiÁ
  c                	óò  € \        V\        P                  4      '       d   Vw  pW n        R # \        V\        R 4      '       dŽ   Vw  r4\        V4      p\        P                  ! V4      '       d2   \        P                  ! \        P                  ! 4       V4      V n        R # \        P                  ! \        P                  ! 4       W54      V n        R # \        V\        P                  4      '       d"   Vw  p\        P                  ! V4      V n        R # \        V\        P                  R 4      '       d8   Vw  rx\        P                  ! V4      p	\        P                  ! Wy4      V n        R # \        RV: 24      h)Nz%Unrecognised args for DeviceWrapper: )Ú
args_matchr£   ÚFzDevicerÄ   rì  ÚJM_irect_from_pyÚfz_is_infinite_irectÚfz_new_draw_devicer|  Úfz_new_draw_device_with_bboxÚFzDisplayListÚfz_new_list_devicer  r  Úfz_new_stext_devicerk   )
r&   r  ÚdeviceÚpmr  r6  r  ÚtprÐ  Úoptss
   &*        r'   r‘   ÚDeviceWrapper.__init__Â
  s  € Ü�tœUŸ^™^×,Ò,Ø‰GˆFØŽIÜ˜œv t×,Ò,Ø‰HˆBÜ# TÓ*ˆDÜ×)Ò)¨4×0Ò0Ü!×4Ò4´e·n²nÓ6FÈÓK�–	ä!×>Ò>ÄÇÂÓ@PÐRTÓ[�–	Ü˜œu×2Ñ2×3Ò3Ø‰CˆBÜ×0Ò0°"Ó5ˆDŽIÜ˜œu×0Ñ0°$×7Ò7Ø‰IˆBÜ×'Ò'¨Ó/ˆDÜ×1Ò1°2Ó<ˆDŽIäÐDÀTÁHÐMÓNÐNr)   r$  Nr“   r,   r)   r'   rG  rG  Á
  s   † öOr)   rG  c                  óL   € ] tR tRtR tR tR
R ltRR lt]R 4       t	R t
R	tR# )ÚDisplayListiØ
  c                	ó>   € \        V 4      \        J g   R # RV n        R # ©NF)rÈ   rX  rõ   r-   s   &r'   Ú__del__ÚDisplayList.__del__Ù
  s   € Ü�D‹zœ[Ó(©&ØˆŽr)   c                	ó\  € \        V4      ^8X  dL   \        V^ ,          \        P                  4      '       d%   \        P                  ! V^ ,          4      V n        R# \        V4      ^8X  d8   \        V^ ,          \        P                  4      '       d   V^ ,          V n        R# Q RT: 24       h)r™  zUnrecognised args=N)r9   r@   r£   rq  rO  rÄ   rƒ  s   &*r'   r‘   ÚDisplayList.__init__Ý
  su   € Üˆt‹9˜Œ>œj¨¨a­´%·,±,×?Ò?Ü×+Ò+¨D°­GÓ4ˆDŽIÜ�‹Y˜!Œ^¤
¨4°­7´E×4GÑ4G× HÒ HØ˜Q�ˆDŽIà-Ð+ d¡WÐ-Ó-�1r)   Nc                	óæ   € \        V\        4      '       d   VP                  pM.\        P                  ! \        P                  P
                  4      p\        V P                  WW4R 4      pRVn        V# )NT)r@   r+  rÄ   r£   r-  r3  ÚJM_pixmap_from_display_listrõ   )r&   rî  rð  rñ  r  r  s   &&&&& r'   rö  ÚDisplayList.get_pixmapå
  sU   € Ü�j¤*×-Ò-Ø#Ÿ™‰Jä×+Ò+¬E×,>Ñ,>×,HÑ,HÓIˆJÜ)¨$¯)©)°VÈÐVZÓ[ˆØˆŒØˆ
r)   c                óŒ   € \         P                  ! 4       pWn        \         P                  ! V P                  V4      pRVn        V# )z#Make a TextPage from a DisplayList.T)r£   r  rÐ  r  rÄ   rõ   )r&   rÐ  Ústext_optionsr  s   &&  r'   r$  ÚDisplayList.get_textpageî
  s8   € ä×,Ò,Ó.ˆØ#ÔÜ×Ò §	¡	¨=Ó9ˆØˆŒØˆ
r)   c                	ón   € \        \        P                  ! V P                  4      4      p\	        V4      pV# r+   )rp  r£   Úfz_bound_display_listrÄ   r+  rÑ  s   & r'   rü   ÚDisplayList.rectö
  s)   € äœe×9Ò9¸$¿)¹)ÓDÓEˆÜ�3‹iˆØˆ
r)   c                	ó¬   € \         P                  ! V P                  VP                  \	        V4      \        V4      \         P                  ! 4       4       R # r+   )r£   Úfz_run_display_listrÄ   rR  rè  r  ÚFzCookie)r&   Údwr‹  Úareas   &&&&r'   ÚrunÚDisplayList.runü
  s8   € Ü×!Ò!Ø—	‘	Ø—	‘	Ü! !Ó$Ü Ó%Ü—’Ó ö	r)   ©rÄ   rõ   )NNrx   N©r   )r/   r0   r1   r2   r[  r‘   rö  r$  r{  rü   rm  r3   r,   r)   r'   rX  rX  Ø
  s/   † òò.ôôð ñó ðö
r)   rX  c                  ó¼  € ] tR tRtR R ltR R ltR tR t]P                  ERR R	 ll4       t
]P                  ER8¼  d+   ]P                  R
 R l4       t
]P                  R R l4       t
ERR lt
ERR ltR R ltR R ltR tR R ltR tR tR tERR R lltER	R R lltR tR  R! ltER
R" ltR# tR$ tR% tERR& ltR' tR( R) ltERR* R+ llt R, t!R- t"R. t#R/ t$R0 t%ERR1 lt&R2 t'R3 t(R4 t)ERR5 lt*R6 t+R7 t,R8 t-R9 t.ERR: lt/]0R; 4       t1ERR< lt2ERR= lt3R> t4R? t5R@RARBRA/RC RD llt6]0RE 4       t7RF t8RG t9ERRH lt:ERRI RJ llt;RK t<ERRL RM llt=RN t>ER
RO RP llt?RQ RR lt@RS RT ltARU RV ltBRW RX ltCRY RZ ltDERR[ R\ lltEERR] ltFR^ tGERR` ltHRa tIERRb ltJERRc Rd lltKERRe ltLRf tMRg tNRh Ri ltORj tPRk Rl ltQRm tRERRn Ro lltSERRp Rq lltTRr tUERRs ltVRtRRuRRvRRwRRxR_R@RA/Ry Rz lltWERR{ R| lltXR} R~ ltYR tZERR€ R� llt[R‚ t\Rƒ R„ lt]R… R† lt^R‡ t_ERRˆ lt`ERR‰ RŠ lltaR‹ERRŒERR�ERRŽERR�^R@^RB^R�^ R‘^ R’^R“R/R” ltb]0R• 4       tc]0R– 4       td]0R— 4       te]0R˜ 4       tf]0R™ 4       tg]0Rš 4       thR› tiRœ tjR� tkRž tlRŸ tmR  tnR¡ toR¢ tpERR£ ltqR¤ trR¥ ts]0R¦ 4       tt]0R§ 4       tuR¨ tvERR© ltwRª txR« tyR¬ tz]0R­ R® l4       t{ERR¯ R° llt|]0R± 4       t}ERR² lt~]0R³ 4       tERR´ Rµ llt€R¶ t�R· t‚]0R¸ 4       tƒR¹ t„Rº t…R» t†]0R¼ R½ l4       t‡]0R¾ R¿ l4       tˆER
RÀ RÁ llt‰RÂ tŠERRÃ lt‹]0RÄ 4       tŒRÅ t�RÆ RÇ ltŽRÈ t�ERRÉ lt�ERRÊ lt‘ERRË lt’RÌ t“ER RÍ lt”RÎ t•RÏ t–ER!RÐ RÑ llt—ER"RÒ RÓ llt˜RÔ t™ERRÕ ltšER#RÖ lt›ERR× ltœRØ RÙ lt�ERRÚ RÛ lltžRÜ RÝ ltŸER$RÞ Rß llt Rà Rá lt¡Râ Rã lt¢Rä t£ERRå Ræ llt¤ER%Rç Rè llt¥Ré t¦ER&Rê Rë llt§ERRì lt¨ERRí lt©ER'Rî ltª]0Rï 4       t«ER(Rð lt¬Rñ t­]0Rò 4       t®RóR/Rô Rõ llt¯Rö t°R÷ t±Rø t²Rù t³ERRú lt´Rû tµRü t¶ERRý lt·Rþ t¸Rÿ t¹ER  tºER t»ER)t¼]0! ER 4      t½]´t¾ERt¿R# (*  rÁ   i	  c               ó   € V ^8„  d   QhRR/# )r†  Úreturnrè   r,   )rþ  s   "r'   rÿ  ÚDocument.__annotate__  s   € ÷ ñ  4ñ r)   c                	ó~  € \        V4      \        J d   WP                  8  d   R # R# \        V4      \        \        39  g   \        V4      ^8w  d   R# Vw  r# \        V\        4      '       d   V^ 8  g   W P                  8¼  d   R#  \        V\        4      '       d   V^ 8  g   W0P                  V4      8¼  d   R# R # )TF)	rÈ   r6   Ú
page_countrµ   r´   r9   r@   Úchapter_countÚchapter_page_count)r&   ÚlocÚchapterÚpnos   &&  r'   Ú__contains__ÚDocument.__contains__  s–   € Ü�‹9œÓØ—_‘_Ô$ÙÙÜ�‹9œU¤D˜MÔ)¬S°«X¸¬]ÙØ‰ˆØÜ! '¬3×/Ò/Ø˜Q”;Ø×0Ñ0Ô0áØÜ! #¤s×+Ò+Ø˜”7Ø×1Ñ1°'Ó:Ô:áÙr)   c               ó   € V ^8„  d   QhRR/# )r†  rs  ÚNoner,   )rþ  s   "r'   rÿ  rt  !  s   € ÷ ;ñ ;˜dñ ;r)   c                	ó¶  € V P                   '       g   \        R 4      h\        V4      \        J d   V P	                  V4      # \        V4      \
        \        \        39   d   V P                  V4      # \        V4      \        Jd   \        R4      hV P                  pVP                  '       d   VP                  M^ pVP                  '       d   VP                  MTpVP                  '       d   VP                  M^pV^ 8  d   W2,          pK  W28¼  d   \        R4      hV^ 8  d   WB,          pK  WB8”  d   \        R4      hV P                  \        W4V4      4      # )ú	is no PDFzbad argument typeúbad page number(s))Úis_pdfrÃ   rÈ   r6   Údelete_pager´   rµ   rS  Údelete_pagesÚslicerv  rÇ  ÚstopÚstep)r&   rg  ÚpcrÇ  r‡  rˆ  s   &&    r'   Ú__delitem__ÚDocument.__delitem__!  s  € Ø�{�{ˆ{Ü˜[Ó)Ð)Ü�‹7”c‹>Ø×#Ñ# AÓ&Ð&Ü�‹7”tœU¤EÐ*Ô*Ø×$Ñ$ QÓ'Ð'Ü�‹7œ%ÓÜÐ0Ó1Ð1Ø�_‰_ˆØŸ7Ÿ7˜7�—’¨ˆØŸŸ˜ˆq�vŠv RˆØŸŸ˜ˆq�vŠv QˆØ�aŒiØ�KŠEØŒ;ÜÐ1Ó2Ð2Ø�QŒhØ�JŠDØŒ9ÜÐ1Ó2Ð2Ø× Ñ ¤ u°DÓ!9Ó:Ð:r)   c                	ó   € V # r+   r,   r-   s   &r'   rÜ  ÚDocument.__enter__8  rÞ  r)   c                	ó&   € V P                  4        R # r+   ©Úcloserƒ  s   &*r'   rà  ÚDocument.__exit__;  ó   € Ø�
‰
Žr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rg  r6   rs  rÒ   r,   )rþ  s   "r'   rÿ  rt  ?  s   € ÷ ñ ˜Sð ¨ñ r)   c                	ó   € R # r+   r,   ©r&   rg  s   &&r'   rŒ  ÚDocument.__getitem__>  s   € ár)   c               ó    € V ^8„  d   QhRRRR/# )r†  rg  r†  rs  z
list[Page]r,   )rþ  s   "r'   rÿ  rt  D  s   € ÷ 	ñ 	 ð 	¨:ñ 	r)   c                	ó   € R # r+   r,   r•  s   &&r'   rŒ  r–  C  ó   € ár)   c               ó    € V ^8„  d   QhRRRR/# )r†  rg  ztuple[int, int]rs  rÒ   r,   )rþ  s   "r'   rÿ  rt  H  s   € ÷ 	ñ 	 ð 	°Tñ 	r)   c                	ó   € R # r+   r,   r•  s   &&r'   rŒ  r–  G  r™  r)   c                	óö  € \        V\        4      '       d8   \        VP                  \	        V 4      4      !   Uu. uF  q V,          NK  	  up# \        V\
        4      '       gm   \        V\        4      '       dK   \	        V4      ^8X  d;   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q RV: R24       hW9  d   \        RV R24      hV P                  V4      # u upi )r†  c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir+   )r@   r6   )Ú.0ri  s   & r'   Ú	<genexpr>Ú'Document.__getitem__.<locals>.<genexpr>N  s    é € ÐRqÑopÐjkÔS]Ð^_Ôad×SeÐSeÓopùs   ‚FTzInvalid item number: i=r   úpage z not in document)
r@   r†  rS  Úindicesr9   r6   rµ   ÚallÚ
IndexErrorÚ	load_page)r&   rg  rŒ  s   && r'   rŒ  r–  K  sÉ   € Ü�aœ×ÒÜ%*¨A¯I©I´c¸$³iÓ,@Ò%AÓBÑ%A ˜—G�GÑ%AÑBÐBÜ˜!œS×!Ò!¤j°´E×&:Ò&:¼sÀ1»vÈ¼{ÏsËsÑRqÑopÓRqÏsÏsÊsÑRqÑopÓRq×OqÒOqð 	.Ø*¨¡t¨1Ð-ó	.ÐràŒ=Ü˜u Q CÐ'7Ð8Ó9Ð9Ø�~‰~˜aÓ Ð ùò Cs   ºC6Nc                ó†  € \         p^ s  RV n        RV n        RV n        RV n        . V n        / V n        / V n        / V n        \        P                  ! 4       V n
        \        V\        P                  4      '       d   Tp	W�n        RV n         Vs R# Tp
Tp\!        V4      p\        P"                  ! V4      '       g;   VP$                  VP&                  ,
          p
VP(                  VP*                  ,
          pWn        W n        VEe+   Ve   Vf   Tp\        V\0        \2        34      '       d   Ml\        V\4        4      '       d   \1        V4      pMJ\        V\6        P8                  4      '       d   VP;                  4       pM\=        R\?        V4      : R24      hW n        \        V\0        \2        34      '       g   Q h\A        V4      ^ 8X  d   \C        R4      h\        PD                  ! \        PF                  ! V4      \A        V4      4      p \        PH                  ! V'       d   TMRV4      pEM V'       Edm   V'       d   Q h\        V\R        4      '       d   MZ\U        VR	4      '       d   \S        V4      pM<\U        VR
4      '       d   VPV                  pM\=        R\?        V4      : RV: R24      hWn        \X        PZ                  P]                  V4      '       g   \_        RV R24      h\X        PZ                  Pa                  V4      '       g   \Q        RV R24      h\X        PZ                  Pc                  V4      ^ 8X  d   \C        RV: R24      hV'       d0    \        Pd                  ! V4      p\        PH                  ! VV4      pMC \        Pf                  ! V4      pM+\        P                  ! 4       p\        Ph                  ! V4      pV
^ 8”  d    V^ 8”  d   \        Pj                  ! WêW·4       M5\        Pl                  ! V4      '       d   \        Pj                  ! VRR^4       Wàn        RV n7        V Pn                  '       dŸ   \p        Ps                  4       V n:        V Pv                  '       d	   RV n        MV Py                  4        V'       d&   VP{                  4       P}                  R4      '       g   V'       d'   RVP{                  4       9   d    V P                  4       p\€        '       dg   \        V P                  \        P                  4      V n        V P                  '       d   \‚        P„                  V nC        M\‚        Pˆ                  V nC        Vs R#   \J         d'   p\L        ^8”  d   \O        4        \Q        R4      ThRp?ii ; i  \J         d0   p\L        ^8”  d   \O        4        \Q        RT: RT: R24      ThRp?ii ; i  \J         d,   p\L        ^8”  d   \O        4        \Q        RT: R24      ThRp?ii ; i  \J         d'   p\L        ^8”  d   \O        4        \Q        R4      ThRp?ii ; i  Ts i ; i)aþ  Creates a document. Use 'open' as a synonym.

Notes:
    Basic usages:
    open() - new PDF document
    open(filename) - string or pathlib.Path, must have supported
            file extension.
    open(type, buffer) - type: valid extension, buffer: bytes object.
    open(stream=buffer, filetype=type) - keyword version of previous.
    open(filename, fileype=type) - filename with unrecognized extension.
    rect, width, height, fontsize: layout reflowable document
    on open (e.g. EPUB). Ignored if n/a.
FNTzbad stream: type(stream)=r   zCannot open empty stream.r`   zFailed to open streamÚabsoluter   zbad filename: type(filename)=z
 filename=zno such file: 'rí   z' is no filez!Cannot open empty file: filename=zFailed to open file z	 as type i�  iX  Úsvgúcannot open broken document)EÚJM_mupdf_show_errorsrÂ   Úis_encryptedÚmetadataÚ	FontInfosÚ	GraftmapsÚ
ShownPagesÚInsertedImagesr  ÚWeakValueDictionaryÚ
_page_refsr@   r£   rÆ   rÄ   Úthis_is_pdfr  rç  Úx1Úx0Úy1Úy0r=  r   r  Ú
memoryviewr©  r;   rª  rÄ  r¿  rÈ   r9   ÚEmptyFileErrorÚfz_open_memoryÚpython_buffer_dataÚfz_open_document_with_streamrk   r  r{   ÚFileDataErrorræ  r=   r   rh   r   ÚexistsÚFileNotFoundErrorr¿  ÚgetsizeÚfz_open_fileÚfz_open_documentrÅ   Úfz_layout_documentÚfz_is_document_reflowablerõ   r  Úgen_idÚ	_graft_idÚ
needs_passÚinit_docrç  r  Úconvert_to_pdfr  r   Úpage_count_pdfÚpage_count2Úpage_count_fz)r&   rj   r   Úfiletyperü   rˆ  r3  rÿ   ÚJM_mupdf_show_errors_oldÚpdf_documentr   r"  r$  Ústream2r1  rh  Ú	fz_streamra  r@  s   &&&&&&&&           r'   r‘   ÚDocument.__init__T  s  € ô$ $8Ð Ø ÐðB	<Ø %ˆDŒNØ %ˆDÔØ %ˆDÔØ#ˆDŒMØ!ˆDŒNØ!ˆDŒNØ!ˆDŒOØ#%ˆDÔÜ&×:Ò:Ó<ˆDŒOÜ˜(¤E×$5Ñ$5×6Ò6Ø'�Ø(”	Ø#'�Ô Øðh $<Ò ðe ˆAØˆAÜ Ó%ˆAÜ×,Ò,¨Q×/Ò/Ø—D‘D˜1Ÿ4™4•K�Ø—D‘D˜1Ÿ4™4•K�à!ŒJØ ŒKàÓ!ØÒ'¨HÒ,<ð  (�HÜ˜f¤u¬jÐ&9×:Ò:ØÜ ¬	×2Ò2Ü" 6›]‘FÜ ¬¯
©
×3Ò3Ø#Ÿ_™_Ó.‘Fä#Ð&@´4¸³<±/ÀÐ$CÓDÐDØ$”ä! &¬5´*Ð*=×>Ò>Ð>Ð>Ü�v“; !Ô#ô )Ð)DÓEÐEä×.Ò.¬u×/GÒ/GÈÓ/OÔQTÐU[ÓQ\Ó]�ðHÜ×<Ò<Ï¹XÐWYÐ[bÓc’C÷
 �ß!Ð!�zÜ˜h¬×,Ò,ØÜ˜X z×2Ò2Ü" 8›}‘HÜ˜X v×.Ò.Ø'Ÿ}™}‘Hä#Ð&D´T¸(³^Ñ4EÀ[ÀxÁkÐQRÐ$SÓTÐTØ%”
ô —w‘w—~‘~ h×/Ò/Ü+¨o¸h¸ZÀqÐ,IÓJÐJÜŸ™Ÿ™¨×1Ò1Ü'¨!¨H¨:°\Ð(BÓCÐCÜ—W‘W—_‘_ XÓ.°!Ô3Ü(Ð+MÀHÁ;ÈaÐ)PÓQÐQçðnÜ$)×$6Ò$6°xÓ$@˜	Ü#×@Ò@ÀÈ9ÓU™ð
YÜ#×4Ò4°XÓ>™ô ×'Ò'Ó)�Ü×&Ò& sÓ+�à�1Œu˜˜QœÜ×(Ò(¨°Õ=Ü×0Ò0°×5Ò5Ü×(Ò(¨¨c°3¸Ô;àŒIð  ˆDŒLà�|�|ˆ|Ü!&§¡£�”Ø—?—?�?Ø(,�DÕ%à—M‘M”O÷  §¡Ó 0× 9Ñ 9¸%× @Ò @ÇHÐQVÐZb×ZhÑZhÓZjÔQjðRØ ×/Ñ/Ó1˜÷
 ‹{Ü#-¨t¯y©y¼%×:KÑ:KÓ#L�Ô Ø×#×#Ð#Ü',×';Ñ';�DÕ$ä',×':Ñ':�DÔ$à#;Ò øô] !ô HÜ+¨aÔ/´NÔ4DÜ'Ð(?Ó@ÀaÐGûðHûô> %ô nÜ/°!Ô3¼Ô8HÜ+Ð.BÀ8Á,ÈiÐX`ÑWcÐcdÐ,eÓfÐlmÐmûðnûô %ô YÜ/°!Ô3¼Ô8HÜ+Ð.BÀ8Á,ÈaÐ,PÓQÐWXÐXûðYûô< %ô RÜ/°!Ô3¼Ô8HÜ+Ð,IÓJÐPQÐQûðRûð $<Ñ úsÞ   ŠBX< ÂE<X< È!U È.
X< È9X< ÉCX< ÌA
X< Í-V ÎX< ÎW Î$A-X< ÐA"X< Ñ5X< Ò$X< Ò:X< ÓX< ÓX Ó(X< Ó4A&X< ÕVÕ)!V
Ö
VÖX< ÖWÖ*W×W×X< ×X×&X Ø XØX< ØX9Ø!X4Ø4X9Ø9X< Ø<Y c               ó   € V ^8„  d   QhRR/# ©r†  rs  r6   r,   )rþ  s   "r'   rÿ  rt  í  s   € ÷ ñ ˜ñ r)   c                	ó   € V P                   # r+   )rv  r-   s   &r'   Ú__len__ÚDocument.__len__í  s   € Ø�‰Ðr)   c               ó   € V ^8„  d   QhRR/# ©r†  rs  ræ  r,   )rþ  s   "r'   rÿ  rt  ð  s   € ÷ Xñ X˜#ñ Xr)   c                	óö   € V P                   '       d   R MRpV P                  f7   V P                  R8X  d   V RV P                  R R2# V RV P                   R2# V RV P                   RV P                  R R2# )zclosed r`   zDocument(<new PDF, doc# rH  z>)z
Document('ú')z', <memory, doc# )rÂ   r   r   rÆ  )r&   rÂ   s   & r'   rï   ÚDocument.__repr__ð  s   € Ø!%§§ ‘I°Rˆ	Ø�;‰;ÒØ�y‰y˜BŒØ#˜Ð$<¸T¿^¹^ÈAÐ<NÈbÐQÐQØ�[ 
¨4¯9©9¨+°RÐ8Ð8Ø�˜J t§y¡y kÐ1BÀ4Ç>Á>ÐRSÐBTÐTVÐWÐWr)   c           	     ó,  € V P                   '       g   V P                  '       d   \        R4      h\        V ^ R7      pVP                  '       g   R# \
        P                  ! \
        P                  ! V4      \        R4      \        R4      \        R4      \        R4      4      pVP                  '       d   \
        P                  ! V4      '       g   \        R4      h\
        P                  ! V4      p\        W24      p\
        P                  ! WEV4       R# )	zAdd new form font.údocument closed or encrypted©rÍ   NÚRootÚAcroFormÚDRÚFontzPDF has no form fonts yet)rÂ   r«  rÃ   rÎ   rÌ   r£   r   Úpdf_trailerr  r…  rÞ   Úpdf_new_nameÚJM_pdf_obj_from_strrU  )r&   r   rÜ  ra  Úfontsrô  rH   s   &&&    r'   Ú_addFormFontÚDocument._addFormFontø  sË   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×#Ò#Ü×!Ò! 3Ó'Ü˜Ó Ü˜Ó$Ü˜“Ü˜Ó óˆð ××Ð¤u×'8Ò'8¸%×'@Ò'@ÜÐ ;Ó<Ð<Ü×Ò Ó%ˆÜ Ó+ˆÜ×Ò˜E aÖ(r)   c               ó    € V ^8„  d   QhRRRR/# )r†  Úidxr6   rs  r  r,   )rþ  s   "r'   rÿ  rt    s   € ÷ $ñ $àð$ð ñ$r)   c                óV   € V P                  4       V,          pV P                  V4       R# )z$Delete TOC / bookmark item by index.N)Úget_outline_xrefsÚ_remove_toc_item)r&   rë  r  s   && r'   Údel_toc_itemÚDocument.del_toc_item  s%   € ð
 ×%Ñ%Ó'¨Õ,ˆØ×Ñ˜dÖ#r)   c                ó.  € V P                   '       g   V P                  '       d   \        R4      h. p\        V ^ R7      pVP                  '       g   V# \
        P                  ! \
        P                  ! V4      \        R4      4      p\
        P                  ! V\        R4      4      pVP                  '       g   V# \
        P                  ! V\        R4      4      p\        WQ4      p\        V4      p\
        P                  ! V4      p\
        P                  ! W'4       \
        P                  ! V\        R4      4       \        V4       F&  p\        W4      w  rš\
        P                  ! W*4       K(  	  VP!                  V4       TpV P#                  4        V# )zDelete the TOC.rÞ  rß  rà  ÚOutlinesÚFirst)rÂ   r«  rÃ   rÎ   rÌ   r£   r  rä  r  ÚJM_outline_xrefsr9   r  Úpdf_delete_objectrH  rS  ÚJM_INT_ITEMro   rÈ  )r&   Úxrefsra  r¹  ÚolrootÚfirstÚ
xref_countÚolroot_xrefrg  r@  r  r  s   &           r'   Ú_delToCÚDocument._delToC  s2  € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ØˆÜ˜t¨aÔ0ˆØ�~�~ˆ~ØˆLä×!Ò!¤%×"3Ò"3°CÓ"8¼(À6Ó:JÓKˆä×#Ò# D¬(°:Ó*>Ó?ˆØ× × Ð ØˆLä×"Ò" 6¬8°GÓ+<Ó=ˆä  Ó.ˆÜ˜“Zˆ
ä×&Ò& vÓ.ˆÜ×Ò Ô1Ü×Ò˜4¤¨*Ó!5Ô6ä�zÖ"ˆAÜ! %Ó+‰GˆAÜ×#Ò# CÖ.ñ #ð 	�‰�[Ô!ØˆØ�‰ŒØˆ
r)   c                	óÄ   € \        V 4      p\        P                  ! W!4       VP                  P                  '       d#   \        P
                  ! VP                  4       R # R # r+   )rÎ   r£   Úpdf_delete_pagerÌ   Úrev_page_mapÚll_pdf_drop_page_tree)r&   r{  ra  s   && r'   Ú_delete_pageÚDocument._delete_page4  sA   € Ü˜tÓ$ˆÜ×Ò˜sÔ(Ø�>‰>×&×&Ð&Ü×'Ò'¨¯©Ö8ñ 'r)   c                óÂ   € \        V 4      p\        V^\        P                  ! V4      ^,
          4      '       g   \	        \
        4      h\        P                  ! W!4       R# )zDelete object.N)rÎ   rÕ  r£   r·  rÃ   r¸  rõ  ©r&   r  ra  s   && r'   Ú_deleteObjectÚDocument._deleteObject:  sD   € ä˜tÓ$ˆÜ˜˜a¤×!3Ò!3°CÓ!8¸Õ!:×;Ò;ÜœlÓ+Ð+Ü×Ò Ö*r)   c               ó0   € V ^8„  d   QhRRRRRRRRRRRR	/# )
r†  Údoc1ú
'Document'Údoc2Ú	from_pager6   Úto_pageÚstart_atrs  r  r,   )rþ  s   "r'   rÿ  rt  A  sT   € ÷ C@ñ C@ØðC@àðC@ð ðC@ð ð	C@ð
 ðC@ð ñC@r)   c                óü  € R pV^ 8  d   ^ pM&W!P                   8¼  d   VP                   ^,
          pMTpV^ 8  g   W1P                   8¼  d   VP                   ^,
          pMTpV^ 8  d   \        R4      hTpWg8:  d   ^MRp	\        \        WgV	,           V	4      4      p
\        \	        V
4      4       Uu. uF  q¸V,           NK  	  pp. p. p\        \	        V
4      4       FW  pW«,          pWË,          pVP                  V4      pV P                  V4      pVP                  V4       VP                  V4       KY  	  \        \	        V4      4       EF'  pWV,          ,          pVP                  4       p\	        V4      ^ 8X  d   RpK7  WV,          ,          p\        P                  ! 4       p\        V4      p\        P                  ! V\        P                  ! ^ 4      V4       \        \        P                  ! V4      4      p. pV FJ  pVR,          \        8X  d   VR,          V
9  d   K%  V! VWêV4      pV'       g   K9  VP                  V4       KL  	  V. 8w  g   EK  VP!                  \#        V4      4       EK*  	  R# u upi )z«Insert links contained in copied page range into destination PDF.

Parameter values **must** equal those of method insert_pdf(), which must
have been previously executed.
c           	     óÔ  € V R,          V,          p\        \        V4      4      pV R,          \        8X  de   \        R,          pVP	                  V R,          4      pV R,          V,          pV! W,          VP
                  VP                  V R,          V4      p	V	# V R,          \        8X  dÐ   V R,          ^ 8¼  d‰   \        R,          pV P                  R\        ^ ^ 4      4      p
\        V
4      \        Jd   \        ^ ^ 4      p
V! V R,          V
P
                  V
P                  V R,          V R,          V R,          V4      p	V	# \        R	,          p\        V R,          4      pV^R pV R,          pV! W¼V4      p	 V	# V R,          \        8X  d(   \        R
,          pV! V R,          V R,          V4      p	V	# V R,          \        8X  d    \        R,          pV! V R,          V4      p	V	# Rp	V	# )z5Create annotation object string for a passed-in link.ÚfromÚkindÚgoto1rÖ   ÚtoÚzoomÚgotor1re   Úgotor2ÚlaunchÚurir`   r¨  )r¶   rµ   Ú	LINK_GOTOÚ
annot_skelÚindexri  rj  Ú
LINK_GOTORr:   r)  rÈ   Úget_pdf_strÚLINK_LAUNCHÚLINK_URI)ÚlnkÚxref_dstÚpno_srcró  r$  rü   Útxtrë  r²  rß   Úpntr  r  s   &&&&         r'   Ú	cre_annotÚ%Document._do_links.<locals>.cre_annotQ  s¾  € ð �F•˜cÕ!ˆAÜœU 1›XÓ&ˆDØ�6�{œiÔ'Ü  Õ)�Ø—m‘m C¨¥KÓ0�Ø˜•I •O�Ù˜H�M¨1¯3©3°·±°S¸µ[À$ÓG�ðF ˆLðC �V•¤
Ô*Ø�v•; !Ô#Ü$ XÕ.�CØŸ'™' $¬¨a°«Ó4�CÜ˜C“y¬Ó-Ü# A q›k˜ÙØ˜F�ØŸ™ØŸ™Ø˜F�Ø˜F�Ø˜F�Øó�Eð6 ˆLô# % XÕ.�CÜ$ S¨¥YÓ/�BØ˜A˜b˜�BØ˜F��AÙ  tÓ,‘Eð ˆLð �V•¤Ô+Ü  Õ*�Ù˜C �K¨¨V­°dÓ;�ð ˆLð �V•¤Ô(Ü  Õ'�Ù˜C �J¨Ó-�ð
 ˆLð �àˆLr)   z'start_at' must be >= 0Nr  rÖ   r¨  )rv  rÃ   r´   rS  r9   Ú	page_xrefro   Ú	get_linksr£   r|  rÚ   rd  rq  r  Úfz_invert_matrixr  Ú_addAnnot_FromStringrµ   )r	  r  r  r  r  r&  rÃ  rT  ÚsaÚincrr#  rg  Úpno_dstÚxref_srcr"  Úp_srcÚp_dstÚold_xrefÚnew_xrefÚpage_srcÚlinksÚpage_dstró  Úpage_src_pdf_documentÚictmÚlink_tabrX  Ú
annot_texts   &&&&&                       r'   Ú	_do_linksÚDocument._do_linksA  s  € ò ,	ðb �qŒ=Ø‰BØŸ/™/Ô)Ø—‘ 1Õ$‰BàˆBà�QŒ;˜'§_¡_Ô4Ø—‘ 1Õ$‰BàˆBà�aŒ<ÜÐ6Ó7Ð7Øˆà”H‰q "ˆô ”u˜R d¥¨DÓ1Ó2ˆÜ#(¬¨W«Ô#6Ó7Ñ#6˜a˜—6�6Ñ#6ˆÐ7ð ˆØˆÜ”s˜7“|Ö$ˆAØ•JˆEØ•JˆEØ—~‘~ eÓ,ˆHØ—~‘~ eÓ,ˆHØ�O‰O˜HÔ%Ø�O‰O˜HÖ%ñ %ô ”s˜8“}×%ˆAØ A�JÕ'ˆHØ×&Ñ&Ó(ˆEô
 �5‹z˜QŒØ�ÙØ A�JÕ'ˆHô —.’.Ó"ˆCÜ$0°Ó$:Ð!Ü×$Ò$Ð%:¼E¿LºLÈ»OÈSÔQÜœ%×0Ò0°Ó5Ó6ˆDàˆHÛ�Ø�V•9¤	Ô)¨q°­yÀÔ/GÙÙ& q¨(¸TÓB�
ß‘:Ø—O‘O JÖ/ñ ð ˜2�~Ø×-Ñ-¬u°X«×?óA &ùò 8s   Â1I9c               ó0   € V ^8„  d   QhRRRRRRRRRRRR	/# )
r†  r¹  r
  r4  r  r6   r  r  rs  r  r,   )rþ  s   "r'   rÿ  rt  Ç  sT   € ÷ DPñ DPØðDPàðDPð ð	DPð
 ðDPð ðDPð ñDPr)   c           	     ó`  a.a/a0€ VP                   '       g   R# R o.R o0V/3R lo/V/3R lpRV.V03R llpR p	\        P                  ! V 4      p
\        P                  ! V4      pV P                   '       dp   V	! V 4      pVP                  \	        R4      4      pVP                  \	        R	4      4      pVP                  4       '       g   VP                  \	        R	4      ^4      pEM]\        P                  ! V	! V4      4      pVP                  \	        R4      4       VP                  \	        R4      ^4       VP                  \	        R	4      4       VP                  \	        R	4      ^4       \        P                  ! W,4      p\        P                  ! W¯4      pVP                  \	        R4      4      pVP                  \	        R	4      4      pVP                  4       p\        P                  ! V
V^ 4      p\        P                  ! \        P                  ! V
4      \	        R
4      4      pVP                  \	        R4      V4       W48:  d   \        W4^,           4      pM\        W4^,
          R4      p/ pV F£  pVV,          pVP!                  4        UUUu. uF   w  pppV\        P"                  8X  g   K  VNK"  	  uppp FT  p\        P$                  ! VV4      pVP                  \	        R4      4       V! V4      w  ppV'       g   KI  R^ RVR. /VV&   KV  	  K¥  	  VP'                  4        F¢  p\        P$                  ! VV4      p\        P                  ! VV4      p\        P                  ! V
V4      p S/! V . 4      p!V P                  4       p"\        P                  ! V
V"^ 4      p#VP)                  V#4       V"VV,          R&   V!VV,          R&   K¤  	  \        \+        V4      4       EF„  pWV,           ,          p$VVV,          ,          pVP!                  4        UUUu. uF   w  pppV\        P"                  8X  g   K  VNK"  	  p%pppV%'       g   Kk  \        P,                  ! V$4      p&\        P                  ! V&P/                  4       \	        R4      4      p'\        P
                  ! V'4      '       g0   \        P                  ! V&P/                  4       \	        R4      ^4      p'V% EFƒ  p\        P$                  ! VV4      p\        P0                  ! \        P2                  ! VR4      4      p(\        P                  ! VP                  \	        R4      4      4      pV^ 8X  d‡    \        P                  ! VV4      p)\        P                  ! T
T)4      p+T+P                  4       p\        P                  ! T
T^ 4      p,\        P(                  ! T'T,4       \        P(                  ! TT,4       M`VV,          pVR,          P9                  V4      p-VR,          V-,          p\        P                  ! V
V^ 4      p,\        P(                  ! V'V,4       V('       g   EKl  \        P(                  ! VV,4       EK†  	  EK‡  	  V! W­VR7       R# u upppi u upppi   \4         d   p*\7        RT: RT* 24        Rp*?*EKË  Rp*?*ii ; i)z�Insert widgets of copied page range into target PDF.

Parameter values **must** equal those of method insert_pdf() which
must have been previously executed.
Nc                ó4  € \        V P                  4       4       Fz  pV P                  V4      pVP                  \	        R4      4      p\        VP                  4       4       F/  pVP                  V4      pVP                  \	        R4      V4       K1  	  K|  	  R# )z2Make sure all kids have correct "Parent" pointers.ÚKidsr§  N)rS  r«  r¬  r  r  rU  )Úacro_fieldsrg  rì   ÚkidsrŒ  Úkids   &     r'   Úclean_kid_parentsÚ/Document._do_widgets.<locals>.clean_kid_parentsØ  s|   € ä˜;×4Ñ4Ó6Ö7�Ø$×2Ñ2°1Ó5�Ø×*Ñ*¬8°FÓ+;Ó<�Ü˜t×1Ñ1Ó3Ö4�AØ×,Ñ,¨QÓ/�CØ×$Ñ$¤X¨hÓ%7¸Ö@ó 5ó 8r)   c           	     óp  € R pR p\         P                  ! W4      p\         P                  ! W4      pVP                  \        R4      4      p	VP                  \        R4      4      p
V	P	                  4       '       d   V! WW)W:4       R# V
P	                  4       '       d   V! WW:W)4       R# V! WW'W8V4       R# )a  Called for each pair of widgets having the same name.

Args:
    pdf: target MuPDF document
    acro_fields: object Root/AcroForm/Fields
    xref1, xref2: widget xrefs having same names
    name: (str) the name

Result:
    Defined or updated widget parent that points to both widgets.
c                ó’  € \         P                  ! W^ 4      p\         P                  ! W^ 4      pVP                  V4      pVP                  V4       VP	                  4       '       g_   \         P
                  ! W4      p	V	P                  \        R4      4       V	P                  \        R4      V4       VP                  V4       R# \        VP                  4       4       Fe  p
VP                  V
4      pVP                  \        R4      V4       \         P                  ! WP                  4       ^ 4      pVP                  V4       Kg  	  R# )z»Merge widget in xref2 into "Kids" list of widget xref1.

Args:
    xref1, kids1: target widget and its "Kids" array.
    xref2, kids2: source wwidget and its "Kids" array (may be empty).
r+  r§  N)r£   r¹  Úpdf_array_findr­  Úpdf_is_arrayÚpdf_load_objectrH  r  rU  Úpdf_array_pushrS  r«  r¬  r  )ra  rA  Úxref1Úkids1Úxref2Úkids2Úw1_indÚw2_indrë  r\  rg  rC  Úkid_inds   &&&&&&       r'   Ú	re_targetÚ=Document._do_widgets.<locals>.join_widgets.<locals>.re_targetî  s  € ô ×/Ò/°¸AÓ>�Ü×/Ò/°¸AÓ>�à!×0Ñ0°Ó8�Ø×,Ñ,¨SÔ1à×)Ñ)×+Ò+Ü"×2Ò2°3Ó>�Fð ×'Ñ'¬°«Ô6Ø×'Ñ'¬°Ó(:¸FÔCð ×(Ñ(¨Ö0ä" 5×#6Ñ#6Ó#8Ö9˜Ø#×1Ñ1°!Ó4˜Ø×(Ñ(¬°(Ó);¸VÔDÜ"'×"8Ò"8¸¿n¹nÓ>NÐPQÓ"R˜Ø×,Ñ,¨WÖ5ó	 :r)   c                ót  € \         P                  ! V ^4      pVP                  \        R4      V4       VP	                  \        R4      ^4      p\         P
                  ! W4      p	V	P                  4       p
\         P                  ! W
^ 4      pVP                  \        R4      4      pVP                  \        R4      4       V	P                  \        R4      V4       VP                  \        R4      4      pVP                  \        R4      4       V	P                  \        R4      V4       VP                  \        R4      4       VP                  \        R4      V4       VP                  \        R4      4       VP                  \        R4      V4       \         P                  ! W^ 4      p\         P                  ! W^ 4      pVP                  V4       VP                  V4       VP                  V4      pVP                  V4       VP                  V4      pVP                  V4       VP                  V4       R# )a@  Make new "Parent" for two widgets with same name.

Args:
    xref1, w1: first widget
    xref2, w2: second widget
    name: field name

Result:
    Both widgets have no "Kids". We create a new object with the
    name and a "Kids" array containing the widgets.
    Original widgets must be removed from AcroForm/Fields.
r+  r@  ÚFTÚAAr§  N)r£   rZ  r¯  r  Úpdf_dict_put_arrayÚpdf_add_objectr  r¹  r  rH  rU  rK  rH  r­  )ra  rA  rL  Úw1rN  Úw2r   ÚnewrB  Únew_objÚnew_obj_xrefÚnew_indÚftÚaaÚind1Úind2rë  s   &&&&&&&          r'   Ú
new_targetÚ>Document._do_widgets.<locals>.join_widgets.<locals>.new_target  sµ  € ô ×(Ò(¨¨aÓ0�Ø×,Ñ,¬X°c«]¸DÔAØ×-Ñ-¬h°vÓ.>ÀÓB�Ü×.Ò.¨sÓ8�Ø&×1Ñ1Ó3�Ü×0Ò0°ÀAÓF�ð —_‘_¤X¨d£^Ó4�Ø—‘¤¨£Ô/Ø×$Ñ$¤X¨d£^°RÔ8à—_‘_¤X¨d£^Ó4�Ø—‘¤¨£Ô/Ø×$Ñ$¤X¨d£^°RÔ8ð —‘¤¨£Ô.Ø—‘¤¨Ó 2°GÔ<Ø—‘¤¨£Ô.Ø—‘¤¨Ó 2°GÔ<ô ×-Ò-¨c¸!Ó<�Ü×-Ò-¨c¸!Ó<�Ø×#Ñ# DÔ)Ø×#Ñ# DÔ)ð "×0Ñ0°Ó6�Ø×,Ñ,¨SÔ1Ø!×0Ñ0°Ó6�Ø×,Ñ,¨SÔ1à×*Ñ*¨7Ö3r)   r@  N)r£   rJ  r  r  rI  )ra  rA  rL  rN  r   rS  rd  rZ  r[  rM  rO  s   &&&&&      r'   Újoin_widgetsÚ*Document._do_widgets.<locals>.join_widgetsá  s›   € ò6ò<04ôd ×&Ò& sÓ2ˆBÜ×&Ò& sÓ2ˆBØ—O‘O¤H¨VÓ$4Ó5ˆEØ—O‘O¤H¨VÓ$4Ó5ˆEð ×!Ñ!×#Ò#Ù˜#¨E¸%ÖGØ×#Ñ#×%Ò%Ù˜#¨E¸%ÖGá˜3¨U¸À4ÖHr)   c           	     ó   <€ \         P                  ! V \        R4      4      pVP                  4       '       g   V# \	        VP                  4       4       Fw  pVP                  V4      p\         P                  ! \         P                  ! V\        R4      4      4      '       d   S! WA4      pKX  VP                  VP                  4       4       Ky  	  V# )zFReturn xref list of leaf kids for a parent.

Call with an empty list.
r@  )
r£   r  r  rI  rS  r«  r¬  r…  ro   r  )rì   Ú	kids_listrB  rg  rC  Úget_kidss   &&   €r'   rj  Ú&Document._do_widgets.<locals>.get_kidsK  s£   ø€ ô
 ×%Ò% f¬h°vÓ.>Ó?ˆDØ×$Ñ$×&Ò&Ø Ð Ü˜4×-Ñ-Ó/Ö0�Ø×(Ñ(¨Ó+�Ü×$Ò$¤U×%7Ò%7¸¼XÀfÓ=MÓ%N×OÒOÙ (¨Ó 8’Ià×$Ñ$ S§^¡^Ó%5Ö6ñ 1ð Ðr)   c                ó’   <€ . p\         P                  ! V \        R4      4      pVP                  4       pV^ 8X  d   W13# S! W!4      pW13# )z:Get the xref of top "Parent" and the list of leaf widgets.r§  )r£   r  r  r  )r\  ri  rì   Úparent_xrefrj  s   &   €r'   Ú
kids_xrefsÚ(Document._do_widgets.<locals>.kids_xrefs[  sQ   ø€ àˆIÜ×'Ò'¨´¸Ó0BÓCˆFØ ×+Ñ+Ó-ˆKØ˜aÔØ"Ð-Ð-Ù  Ó3ˆIØÐ)Ð)r)   c                óR  <€ / p\        \        P                  ! V4      4       Fp  p\        P                  ! W4      pVP	                  4       p\        P
                  ! V\        R4      4      pVP                  V. 4      pVP                  V4       WƒV&   Kr  	  VP                  4        Ft  w  r˜\        V4      ^8  d   K  VR,          w  r«V'       d   S! WW«V	4       K6  V	RV R2,           p\        P                  ! W4      pVP                  \        R4      V4       Kv  	  S! V4       R# )z6Handle any widget name duplicates caused by the merge.r+  r…  z [r—  N)rS  r£   r«  r¬  r  Úpdf_dict_get_text_stringr  r:   ro   rD   r9   rJ  r¯  )ra  rA  Újoin_duplicatesÚnamesrg  Úwobjectr  r+  r÷  r   Úxref0rL  ÚnewnamerD  rf  s   &&&          €€r'   Údeduplicate_namesÚ/Document._do_widgets.<locals>.deduplicate_namese  sù   ø€ àˆEô œ5×.Ò.¨{Ó;Ö<�Ü×-Ò-¨kÓ=�Ø×)Ñ)Ó+�ô ×2Ò2°7¼HÀS»MÓJ�ØŸ	™	 ! RÓ(�Ø—‘˜TÔ"Ø �a“ñ =ð  %Ÿ{™{ž}‘�Ü�u“: ”>ÙØ$ R�y‘�ß"Ù  °5ÀÖFà" r¨%¨° ]Õ2�GÜ#×3Ò3°CÓ?�GØ×4Ñ4´X¸c³]ÀGÖLñ  -ñ ˜kÖ*r)   c                ó„   € \         P                  ! V 4      p\         P                  ! \         P                  ! V4      R4      # )z,Retrieve the AcroForm dictionary form a PDF.úRoot/AcroForm)r£   Úpdf_document_from_fz_documentÚpdf_dict_getprä  )r1  ra  s   & r'   Úget_acroformÚ*Document._do_widgets.<locals>.get_acroform�  s0   € ä×5Ò5°cÓ:ˆCä×&Ò&¤u×'8Ò'8¸Ó'=¸ÓOÐOr)   ÚFieldsr  rà  rá  ÚPr3  Úold_kidsÚnew_kidsr¦  zAA/Cr§  zcannot copy widget at xref=r€   )rr  ©Fr¨  )Úis_form_pdfr£   r{  r  r  rI  rX  Úpdf_deep_copy_objrH  Úpdf_graft_mapped_objectrY  r  r¹  rä  rU  rS  Úannot_xrefsrT  rJ  ÚkeysrK  r9   rÙ   r  r…  r|  rk   r  r  )1r¹  r4  Úgraftmapr  r  r  rr  rn  rw  r}  ÚtarpdfÚsrcpdfÚacrorA  Útar_coÚ
acro_graftÚacro_tarÚtar_xrefÚacro_tar_indr¹  Ú	src_rangeÚparentsrg  Úsrc_pager  Úwtyper@  Úw_objrm  r�  rì   Úparent_graftÚ
parent_tarÚkids_xrefs_newÚparent_xref_newÚ
parent_indÚtar_pageÚw_xrefsÚtar_page_pdfÚ
tar_annotsÚis_aacÚw_obj_graftrh  Ú	w_obj_tarÚw_obj_tar_indrë  rD  rj  rf  s1   &&&&&&&                                       @@@r'   Ú_do_widgetsÚDocument._do_widgetsÇ  s®  ú€ ð ��ˆÙò	Aòh	IõT	õ 	*÷	+ð 	+ò8	Pô ×4Ò4°SÓ9ˆÜ×4Ò4°SÓ9ˆà�?�?ˆ?á Ó$ˆDà×+Ñ+¬H°XÓ,>Ó?ˆKØ×&Ñ&¤x°£~Ó6ˆFØ×&Ñ&×(Ò(Ø×0Ñ0´¸$³ÀÓC�ùô ×*Ò*©<¸Ó+<Ó=ˆDð ×Ñœh xÓ0Ô1Ø×#Ñ#¤H¨XÓ$6¸Ô:Ø×Ñœh t›nÔ-Ø×#Ñ#¤H¨T£N°AÔ6ô ×6Ò6°xÓFˆJô ×+Ò+¨FÓ?ˆHØ"×/Ñ/´¸Ó0BÓCˆKØ×*Ñ*¬8°D«>Ó:ˆFð  ×*Ñ*Ó,ˆHÜ ×1Ò1°&¸(ÀAÓFˆLÜ×%Ò%¤e×&7Ò&7¸Ó&?ÄÈ&ÓAQÓRˆDØ×Ñœh zÓ2°LÔAàÔÜ˜i°1­Ó5‰Iä˜i°1­°bÓ9ˆIàˆó ˆAØ˜1•vˆHð '/×&:Ñ&:Ô&<õá&<‘N�D˜% ØœE×2Ñ2Ñ2÷ �Ù&<ö�ô
 ×-Ò-¨f°dÓ;�Ø×"Ñ"¤8¨C£=Ô1ñ )3°5Ó(9Ñ%�˜Xß‘;à" AØ" HØ" Bð,�G˜KÓ(óñ ð& —L‘L–NˆDÜ×*Ò*¨6°4Ó8ˆFÜ ×8Ò8¸À6ÓJˆLÜ×-Ò-¨f°lÓCˆJÙ% j°"Ó5ˆNØ(×3Ñ3Ó5ˆOÜ×/Ò/°¸ÈÓKˆJØ×&Ñ& zÔ2Ø(7ˆG�D�M˜*Ñ%Ø(6ˆG�D�M˜*Ó%ñ #ô ”s˜9“~×&ˆAà a�<Õ(ˆHð ˜9 Q�<Õ(ˆHð
 '/×&:Ñ&:Ô&<õá&<‘N�D˜% ØœE×2Ñ2Ñ2÷ �Ù&<ð ò ÷
 Ùô !×6Ò6°xÓ@ˆLô ×+Ò+¨L×,<Ñ,<Ó,>ÄÈÓ@RÓSˆJÜ×%Ò% j×1Ò1Ü"×5Ò5Ø ×$Ñ$Ó&¬°Ó(:¸Aó�
ô  �Ü×-Ò-¨f°dÓ;�ô ×*Ò*¬5×+>Ò+>¸uÀfÓ+MÓN�ô $×.Ò.Ø×&Ñ&¤x°Ó'9Ó:ó�ð  !Ô#ð!Ü&+×&CÒ&CÀHÈeÓ&T˜ô !&× 4Ò 4°V¸[Ó I�IØ(×3Ñ3Ó5�HÜ$)×$:Ò$:¸6À8ÈQÓ$O�MÜ×(Ò(¨°]ÔCÜ×(Ò(¨°mÕDà$ [Õ1�FØ  Õ,×2Ñ2°4Ó8�CØ% jÕ1°#Õ6�HÜ$)×$:Ò$:¸6À8ÈQÓ$O�MÜ×(Ò(¨°]ÔC÷ ’6Ü×(Ò(¨°×?ô=  ñ5 'ñt 	˜&¸×OùômùôHøô> %ô !Ü'Ð*FÀÁÀrÈ!ÈÐ(MÔNÞ ûð!ús0   ÊY6
Ê0Y6
ÐY=
Ð8Y=
ÕZÚZ-ÚZ(Ú(Z-c           	     	ó   € \        V 4      p\        P                  ! \        P                  ! V4      \	        R 4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! V^V,          ^,           4      p\        P                  ! V\	        R4      \	        R4      4      p\        P                  ! V4      p\        V4      pV# ©rà  ÚNamesÚEmbeddedFilesr·  r¸  )rÎ   r£   r   rä  r  r¬  r"  r#  )r&   rë  ra  rs  ÚentryÚfilespecrÓ  Úconts   &&      r'   Ú_embeddedFileGetÚDocument._embeddedFileGet  s¡   € Ü˜tÓ$ˆÜ×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô ×#Ò# E¨1¨S­5°­7Ó3ˆÜ×&Ò& u¬h°t«n¼hÀs»mÓLˆÜ×#Ò# HÓ-ˆÜ Ó$ˆØˆr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rE   útyping.Union[int, str]rs  r6   r,   )rþ  s   "r'   rÿ  rt    s   € ÷ ñ Ð'=ð À#ñ r)   c                	ó¬   € V P                  4       pW9   d   VP                  V4      pV# V\        \        V4      4      9   d   TpV# \	        R V R24      h)rí   z' not in EmbeddedFiles array.)Úembfile_namesr  rS  r9   rÃ   )r&   rE   Ú	filenamesrë  s   &&  r'   Ú_embeddedFileIndexÚDocument._embeddedFileIndex  sa   € Ø×&Ñ&Ó(ˆ	ØÔØ—/‘/ $Ó'ˆCð
 ˆ
ð	 ”Uœ3˜y›>Ó*Ô*ØˆCð ˆ
ô ˜q  Ð&CÐDÓEÐEr)   c           	     	ój  € \        V 4      p\        V4      pVP                  '       g   \        \        4      h\
        P                  ! \
        P                  ! V4      \        R 4      \        R4      \        R4      \        R4      4      p\
        P                  ! V4      '       g�   \
        P                  ! \
        P                  ! V4      \        R 4      4      p	\
        P                  ! V^4      p\
        P                  ! V	V\        R4      \        R4      \        R4      4       \        WgW4V^4      p
\
        P                  ! \
        P                  ! V
\        R4      \        R4      4      4      p\
        P                  ! V\
        P                   ! V4      4       \
        P                  ! WŠ4       V# r§  )rÎ   r.  rÌ   r¿  r/  r£   r   rä  r  rI  r  rR  rV  ÚJM_embed_filer  rK  r±  )r&   r   r4  rj   rW  rÊ  ra  rË  rs  r¹  Ú	fileentryr  s   &&&&&&      r'   Ú_embfile_addÚDocument._embfile_add&  sG  € Ü˜tÓ$ˆÜ! 'Ó*ˆØ��ˆÜœ^Ó,Ð,ä×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô ×!Ò! %×(Ò(Ü×%Ò%¤e×&7Ò&7¸Ó&<¼hÀvÓ>NÓOˆDÜ×'Ò'¨¨QÓ/ˆEÜ×ÒØØÜ˜WÓ%Ü˜_Ó-Ü˜WÓ%ôô " #¨XÀ$ÈÓJˆ	Ü×ÒÜ×#Ò# I¬x¸«~¼xÈ»}ÓMóˆô 	×Ò˜U¤E×$=Ò$=¸dÓ$CÔDÜ×Ò˜UÔ.Øˆr)   c           	     	ó&  € \        V 4      p\        P                  ! \        P                  ! V4      \	        R 4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! W1^,           4       \        P
                  ! W14       R# )rà  r¨  r©  N)rÎ   r£   r   rä  r  r­  )r&   rë  ra  rs  s   &&  r'   Ú_embfile_delÚDocument._embfile_delE  sl   € Ü˜tÓ$ˆÜ×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô 	×Ò˜u¨A¥gÔ.Ü×Ò˜uÖ*r)   c           	     	óÀ  € \        V 4      p^ p^ p\        P                  ! V4      p\        P                  ! V\	        R4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! V^V,          ^,           4      p\        P                  ! V\	        R4      4      p	V	P                  '       d   \        P                  ! V	4      pWRR&   \        P                  ! \        P                  ! V\	        R4      4      4      p
\        V
4      V\        &   \        P                  ! \        P                  ! V\	        R4      4      4      p
\        V
4      V\        &   \        P                  ! \        P                  ! V\	        R4      4      4      p
\        V
4      V\        &   RpRp\        P                  ! V\	        R	4      \	        R4      4      p\        P                  ! V4      p\        P                  ! V\	        R
4      4      pVP                  '       d   \        P                  ! V4      p\        P                  ! V\	        R4      4      pVP                  '       d   \        P                  ! V4      pMR\        P                  ! V\	        R4      \	        R4      4      pVP                  '       d   \        P                  ! V4      pWÂ\         &   W²\"        &   V# )rx   rà  r¨  r©  ÚCIÚ
collectionr¸  rº  r»  r·  r¼  rR  r½  r¾  r¨  )rÎ   r£   rä  r   r  r¬  r  rÌ   r  r  rÃ  rÄ  Údictkey_ufilenamer	  rÅ  r  rÇ  rÆ  )r&   rë  Úinfodictra  r  Úci_xrefÚtrailerrs  r±  Úcir   Úlen_rR  r¸  s   &&&           r'   Ú_embfile_infoÚDocument._embfile_infoQ  s   € Ü˜tÓ$ˆØˆØˆä×#Ò# CÓ(ˆä×#Ò#ØÜ˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô ×Ò  q¨¥u¨Q¥wÓ/ˆÜ×Ò ¤8¨D£>Ó2ˆØ�=�=ˆ=Ü×&Ò& rÓ*ˆGØ!(�ÑÜ×'Ò'¬×(:Ò(:¸1¼hÀs»mÓ(LÓMˆÜ%8¸Ó%>ˆÔ!Ñ"ä×'Ò'¬×(:Ò(:¸1¼hÀt»nÓ(MÓNˆÜ&9¸$Ó&?ˆÔ"Ñ#ä×'Ò'¬×(:Ò(:¸1¼hÀvÓ>NÓ(OÓPˆÜ"3°DÓ"9ˆ”ÑàˆØˆÜ×'Ò'¨¬8°D«>¼8ÀC»=ÓIˆ	Ü×Ò 	Ó*ˆÜ×Ò˜y¬(°8Ó*<Ó=ˆØ�<�<ˆ<Ü×#Ò# AÓ&ˆDä×Ò˜y¬(°4«.Ó9ˆØ�<�<ˆ<Ü×!Ò! !Ó$‰Bä×#Ò# I¬x¸Ó/AÄ8ÈFÓCSÓTˆAØ�|�|ˆ|Ü×%Ò% aÓ(�Ø!#”ÑØ#'”Ñ Øˆr)   c           	     óØ  € \        V 4      p\        P                  ! \        P                  ! V4      \	        R4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! V4      '       dq   \        P                  ! V4      p\        ^ V^4       FG  p\        \        P                  ! \        P                  ! W54      4      4      pVP                  V4       KI  	  R# R# )z Get list of embedded file names.rà  r¨  r©  N)rÎ   r£   r   rä  r  rI  r«  rS  rÃ  r  r¬  ro   )r&   rÅ  ra  rs  rG   rg  r  s   &&     r'   Ú_embfile_namesÚDocument._embfile_names€  s¸   € ä˜tÓ$ˆÜ×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô ×Ò˜e×$Ò$Ü×#Ò# EÓ*ˆAÜ˜1˜a –^�Ü)Ü×0Ò0Ü!×/Ò/°Ó9óó�ð
 —‘ Ö$ó $ñ %r)   c           	     	ó¸  € \        V 4      p^ p\        P                  ! \        P                  ! V4      \	        R4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! V^V,          ^,           4      p	\        P                  ! V	\	        R4      \	        R4      4      p
V
P                  '       g   \        R\        4       \        V4      pV'       d4   VP                  '       d"   VP                  '       g   \        \        4      hVP                  '       d¡   V'       d™   VP                  '       d‡   \        WjV^4       \        P                  ! V4      w  rÍ\        P                  ! V4      p\        P                  ! V
\	        R4      V4       \        P                   ! W®\	        R4      \	        R	4      4       \        P"                  ! V
4      pV'       d"   \        P$                  ! V	\	        R4      V4       V'       d"   \        P$                  ! V	\	        R
4      V4       V'       d"   \        P$                  ! V	\	        R4      V4       V# )rx   rà  r¨  r©  r·  r¸  rQ  rR  r½  r¾  rº  r»  )rÎ   r£   r   rä  r  r¬  rÌ   rÁ  rÂ  r.  r¿  r/  r0  rT  rU  rU  rV  r  r¯  )r&   rë  r4  rj   rW  rÊ  ra  r  rs  rª  r«  r%  r9   r@  rX  s   &&&&&&         r'   Ú_embfile_updÚDocument._embfile_upd”  s¡  € Ü˜tÓ$ˆØˆÜ×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó!Ü˜Ó)Ü˜Ó!óˆô ×#Ò# E¨1¨S­5°­7Ó3ˆä×&Ò& u¬h°t«n¼hÀs»mÓLˆØ×"×"Ð"ÜÐ-Ô/CÔDÜ  Ó)ˆß�w×)×)Ð)°#·.·.°.Üœ^Ó,Ð,Ø�>�>ˆ>Ÿg¨'×*<×*<Ð*<Ü˜S¨C°Ô3ä×,Ò,¨SÓ1‰FˆCÜ×!Ò! #Ó&ˆAÜ×Ò˜x¬°$«¸Ô;Ü×Ò ¬X°hÓ-?ÄÈ&ÓAQÔRÜ×Ò Ó)ˆßÜ×*Ò*¨5´(¸3³-ÀÔJçÜ×*Ò*¨5´(¸4³.À)ÔLçÜ×*Ò*¨5´(¸6Ó2BÀDÔIØˆr)   c           	     ó’  € V P                   '       d   \        R4      h\        '       d"   \        P                  ! V P
                  V4      # \        V 4      pRpRpRpRp\        P                  ! \        P                  ! V4      \        R4      4      pVP                  '       g   R# \        P                  ! V\        R4      4      pVP                  '       g   R# \        P                  ! V\        R	4      4      p	V	P                  '       g   R# . p
\        Wš4      p
\        V
4      p\        V4      pV'       g   R# W¼8w  d   \        R
4      h\        V4       EFë  p\!        W­,          4      pW,          pV^,          p\#        V\$        4      '       g   \        R4      hW­,          V\&        &   \        P(                  ! W.4      p\        P*                  ! \        P                  ! V\        R4      4      4      pV^8X  d   RVV&   MV^8X  d   RVV&   MV^8X  d   RVV&   RVV&   \        P*                  ! \        P                  ! V\        R4      4      4      pV^ 8  d   RVV&   MV^ 8”  d   RVV&   \        P                  ! V\        R4      4      p\        P,                  ! V4      '       d¥   \        P.                  ! V4      ^8X  dŠ   \        P0                  ! \        P2                  ! V^ 4      4      \        P0                  ! \        P2                  ! V^4      4      \        P0                  ! \        P2                  ! V^4      4      3pVV\4        &   ^ p\        P                  ! V\        R4      4      pVP                  '       d   \        P,                  ! V4      '       g+   \        P6                  ! V\        R4      \        R4      4      p\        P,                  ! V4      '       dG   \        P.                  ! V4      ^8X  d,   \        P0                  ! \        P2                  ! V^4      4      p\9        V4      VV&   VV^&   WñV&   EKî  	  R# )z4Add color info to all items of an extended TOC list.r¾   r  rÎ  rè  Úcollapserà  Nrò  ró  z$internal error finding outline xrefszneed non-simple TOC formatr¸  TÚCountFrü  ÚDestÚAÚD)rÂ   rÃ   r  r   ÚDocument_extend_toc_itemsrÄ   rÎ   r£   r  rä  r  rÌ   rô  r9   r¤  rS  r6   r@   r7   r  rJ  r  rI  r«  r  r¬  Údictkey_colorr   rœ  )r&   rD   ra  r  rÎ  rè  rÐ  r¹  rø  rù  r÷  rG   r‹  rg  r  rE   ÚitemdictÚbmrÐ  Úcountrf  rp  Úzr  s   &&                      r'   Ú_extend_toc_itemsÚDocument._extend_toc_items¸  sO  € à�>�>ˆ>ÜÐ.Ó/Ð/ß‹;Ü×2Ò2°D·I±I¸uÓEÐEÜ˜tÓ$ˆØˆØˆØˆØˆä×!Ò!¤%×"3Ò"3°CÓ"8¼(À6Ó:JÓKˆØ��ˆÙÜ×#Ò# D¬(°:Ó*>Ó?ˆØ× × Ð ÙÜ×"Ò" 6¬8°GÓ+<Ó=ˆØ××ÐÙØˆÜ  Ó.ˆÜ�‹JˆÜ�‹JˆßÙØŒ6ÜÐDÓEÐEô �q—ˆAÜ�u•x“=ˆDØ•8ˆDØ˜A•wˆHÜ˜h¬×-Ò-Ü Ð">Ó?Ð?Ø%*¥XˆH”\Ñ"Ü×&Ò& sÓ1ˆBÜ×$Ò$¤e×&8Ò&8¸¼XÀc»]Ó&KÓLˆEØ˜ŒzØ#'�˜Ò Ø˜!”Ø!%�˜’Ø˜!”Ø#'�˜Ñ Ø!%�˜‘Ü×$Ò$¤e×&8Ò&8¸¼XÀgÓ=NÓ&OÓPˆEØ�qŒyØ%)�˜Ò"Ø˜”Ø%*�˜Ñ"Ü×$Ò$ R¬°#«Ó7ˆCÜ×!Ò! #×&Ò&¬5×+>Ò+>¸sÓ+CÀqÔ+Hä×)Ò)¬%×*=Ò*=¸cÀ1Ó*EÓFÜ×)Ò)¬%×*=Ò*=¸cÀ1Ó*EÓFÜ×)Ò)¬%×*=Ò*=¸cÀ1Ó*EÓFð�ð
 +0�œÑ'ØˆAÜ×$Ò$ R¬°&Ó)9Ó:ˆCØ—>—>�>¬×);Ò);¸C×)@Ò)@Ü×)Ò)¨"¬h°s«m¼XÀc»]ÓK�Ü×!Ò! #×&Ò&¬5×+>Ò+>¸sÓ+CÀqÔ+HÜ×%Ò%¤e×&9Ò&9¸#¸qÓ&AÓB�Ü" 1›XˆH�T‰NØˆD�‰GØ�!ŒHóK r)   c               ó   € V ^8„  d   QhRR/# ©r†  rÖ   rÒ   r,   )rþ  s   "r'   rÿ  rt  þ  s   € ÷ %ñ % ñ %r)   c                óZ   € \        V4      pW P                  9   d   V P                  V R# R# )z&Remove a page from document page dict.N)rY  r²  )r&   rÖ   Úpids   && r'   Ú_forget_pageÚDocument._forget_pageþ  s&   € ä�‹hˆØ—/‘/Ô!à—‘ Ò$ñ "r)   c               ó0   € V ^8„  d   QhRRRRRRRRRRRR/# )	r†  r  r6   Úbfnameræ  ÚextÚorderingÚlimitrë  r,   )rþ  s   "r'   rÿ  rt    s8   € ÷ ñ  Sð °#ð ¸Cð È3ð ÐWZð Ðadñ r)   c                	ó˜  € \        V 4      pTpVR 8  d   R pV^ 8¼  d4   \        P                  ! V4      w  ršp\        P                  ! RWšV^ 4      pM\        P                  ! V4      w  ršV	'       d   \        P                  ! W)V
^ ^ 4      pME\        Wq4      pVP                  '       g   \        RVR R24      h\        P                  ! RWÖ^ 4      p. p\        V4       Fi  p\        P                  ! WÏ4      p\        P                  ! VV^ 4      pV^ 8¼  d   TpV^ 8”  d   VP                  VV34       KV  VP                  VR34       Kk  	  V# )é   Nzfont at xref rH  z is not supportedrÓ  )rÎ   r£   Úfz_lookup_cjk_fontÚfz_new_font_from_memoryÚfz_lookup_base14_fontÚJM_get_fontbufferrÌ   rk   Úfz_new_font_from_bufferrS  Úfz_encode_characterÚfz_advance_glyphro   )r&   r  rä  rå  ræ  rç  rë  ra  ÚmylimitrË  rÉ  r  rÜ  rÓ  Úwlistrg  ÚglyphÚadvs   &&&&&&&           r'   Ú_get_char_widthsÚDocument._get_char_widths  s)  € Ü˜tÓ$ˆØˆØ�SŒ=ØˆGØ�qŒ=Ü %× 8Ò 8¸Ó BÑˆD˜Ü×0Ò0°°tÀ5È!ÓL‰Dä×4Ò4°VÓ<‰JˆDßÜ×4Ò4°VÀ4ÈÈAÓN‘ä'¨Ó2�Ø—~—~�~Ü# m°D¸°8Ð;LÐ$MÓNÐNä×4Ò4°T¸3ÀQÓG�ØˆÜ�w–ˆAÜ×-Ò-¨dÓ6ˆEÜ×(Ò(¨¨u°aÓ8ˆCØ˜1Œ}Ø�Ø�qŒyØ—‘˜u c˜lÖ+à—‘˜u c˜lÖ+ñ  ð ˆr)   c           	     	óü  € \        V 4      p. p\        P                  ! R 4      p\        P                  ! \        P                  ! V4      \        R4      V4      pVP                  '       g   V# \        P                  ! \        P                  ! V\        R4      4      4      pVP                  '       d   \        W%4       V# \        P                  ! \        P                  ! V\        R4      \        R4      4      4      pVP                  '       d   \        W%4       V# \        P                  ! \        P                  ! V\        R4      4      4      pVP                  '       d   \        P                  ! V4      '       g   V# \        P                  ! V4      p\        V4       FV  p\        P                  ! \        P                  ! \        P                  ! Wh4      \        R4      4      4      p\        W%4       KX  	  V# )Ú
PageLabelsrà  ÚNumsr@  )rÎ   r£   rå  r   rä  r  rÌ   Úpdf_resolve_indirectr  ÚJM_get_page_labelsrI  r«  rS  r¬  )	r&   ra  r¦   Ú
pagelabelsr  ÚnumsrB  rG   rg  s	   &        r'   Ú_get_page_labelsÚDocument._get_page_labels#  so  € Ü˜tÓ$ˆØˆÜ×'Ò'¨Ó5ˆ
Ü×!Ò!¤5×#4Ò#4°SÓ#9¼8ÀFÓ;KÈZÓXˆØ�~�~ˆ~ØˆIä×)Ò)¬5×+=Ò+=¸sÄHÈVÓDTÓ+UÓVˆØ�?�?ˆ?Ü˜rÔ(ØˆIä×)Ò)¬5×+>Ò+>¸sÄHÈVÓDTÔV^Ð_eÓVfÓ+gÓhˆØ�?�?ˆ?Ü˜rÔ(ØˆIä×)Ò)¬5×+=Ò+=¸sÄHÈVÓDTÓ+UÓVˆØ��ˆ¤e×&8Ò&8¸×&>Ò&>ØˆIÜ×Ò Ó%ˆÜ�q–ˆAÜ×-Ò-Ü×&Ò&Ü×+Ò+¨DÓ4Ü  Ó(óóˆDô ˜rÖ(ñ ð ˆ	r)   c                ó”   €  \         P                  ! V P                  V4      #   \         d    \        ^8”  d   \        4         R# i ; i)zGet metadata.r`   )r£   Úfz_lookup_metadata2rÄ   rk   r  r{   rŽ  s   &&r'   Ú_getMetadataÚDocument._getMetadataC  s=   € ð	Ü×,Ò,¨d¯i©i¸Ó=Ð=øÜô 	Ü# aÔ'¬NÔ,<Úð	ús   ‚ # £ AÁAc                óž  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! \        P                  ! V4      \        R4      4      p\        P
                  ! V\        R4      4      pVP                  '       g™   \        P                  ! V^4      p\        P                  ! V\        R4      \        R4      4       \        P                  ! W4      p\        P                  ! V\        R4      V4       \        P
                  ! V\        R4      4      p\        P                  ! V4      # )z/Get xref of Outline Root, create it if missing.rÞ  rà  rò  ÚType)rÂ   r«  rÃ   rÎ   r£   r  rä  r  rÌ   rZ  rU  rY  r  )r&   ra  r¹  rø  Úind_objs   &    r'   Ú_getOLRootNumberÚDocument._getOLRootNumberK  sî   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆä×!Ò!¤5×#4Ò#4°cÓ#:¼HÀVÓ<LÓMˆä×#Ò# T¬8°JÓ+?Ó@ˆØ× × Ð Ü×'Ò'¨¨aÓ0ˆFÜ×Ò ¬°Ó(8¼(À:Ó:NÔOÜ×*Ò*¨CÓ8ˆGÜ×Ò ¤h¨zÓ&:¸GÔDÜ×'Ò'¨¬x¸
Ó/CÓDˆFÜ×Ò Ó(Ð(r)   c                óÎ  € \        V ^ R7      pVP                  '       g   R# . p\        P                  ! \        P                  ! V4      \        R4      4      pVP                  '       d|   \        P                  ! V4      p\        V4       FV  p\        P                  ! W54      p\        P                  ! V4      p\        P                  ! V4      pVP                  V4       KX  	  V# )zGet PDF file id.rß  NÚID)rÎ   rÌ   r£   r  rä  r  r«  rS  r¬  r  ÚbinasciiÚhexlifyro   )	r&   ra  ÚidlistÚidentityrG   rg  r±  r   Úhex_s	   &        r'   Ú_getPDFfileidÚDocument._getPDFfileid\  s­   € ä˜t¨aÔ0ˆØ�~�~ˆ~ÙØˆÜ×%Ò%¤e×&7Ò&7¸Ó&<¼hÀt»nÓMˆØ××ÐÜ×#Ò# HÓ-ˆAÜ˜1–X�Ü×'Ò'¨Ó4�Ü×/Ò/°Ó2�Ü×'Ò'¨Ó-�Ø—‘˜dÖ#ñ	 ð
 ˆr)   c                ó8  € V P                   '       g   V P                  '       d   \        R4      hV P                  p\	        V\
        P                  4      '       d   \
        P                  ! V4      M\
        P                  ! V4      pTpV^ 8  d   WT,          pK  WT8¼  d   \        \        4      h\        V 4      p\
        P                  ! We4      p\
        P                  ! V\
        P                  4      p. p	. p
VP                  '       d   \        WhW’^ V
4       V	# )z,List fonts, images, XObjects used on a page.rÞ  )rÂ   r«  rÃ   rÄ   r@   r£   rÆ   Úpdf_count_pagesÚfz_count_pagesÚMSG_BAD_PAGENOrÎ   Úpdf_lookup_page_objÚpdf_dict_get_inheritableÚPDF_ENUM_NAME_ResourcesrÌ   ÚJM_scan_resources)r&   r{  Úwhatr1  Ú	pageCountrG   ra  ÚpagerefÚrsrcÚlisteÚtracers   &&&        r'   Ú_getPageInfoÚDocument._getPageInfol  s×   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�i‰iˆÜ2<¸SÄ%×BSÑBS×2TÒ2T”E×)Ò)¨#Ô.ÔZ_×ZnÒZnÐorÓZsˆ	ØˆØ�!ŒeØ�NŠAØŒ>ÜœnÓ-Ð-Ü˜tÓ$ˆÜ×+Ò+¨CÓ3ˆÜ×-Ò-¨g´u×7TÑ7TÓUˆØˆØˆØ�?�?ˆ?Ü˜c¨°a¸Ô@Øˆr)   c                ó€   € \        V 4      pV'       g   V'       g   \        \        4      h\        VRW^ ^ ^ ^ ^ R4
      pV# )z+
Utility: insert font from file or binary.
Nr¨  )rÎ   rÃ   ÚMSG_FILE_OR_BUFFERÚJM_insert_font)r&   ÚfontfileÚ
fontbufferra  r¸   s   &&&  r'   Ú_insert_fontÚDocument._insert_font€  s>   € ô ˜tÓ$ˆß§
ÜÔ0Ó1Ð1Ü˜s D¨(ÀÀ1ÀaÈÈAÈrÓRˆØˆr)   c                óð   € V P                   p\        V\        P                  4      '       g   Q h \        P                  ! V4      p\        T4      #   \
         d    \        ^8”  d   \        4         R# i ; i)zLoad first outline.N)	rÄ   r@   r£   rÅ   Úfz_load_outlinerk   r  r{   ÚOutline)r&   r1  r>  s   &  r'   Ú_loadOutlineÚDocument._loadOutlineŠ  sf   € à�i‰iˆÜ˜3¤× 0Ñ 0×1Ò1Ð1Ð1ð	Ü×&Ò&¨Ó,ˆBô ˜‹|Ðøô ô 	Ü# aÔ'¬NÔ,<Úð	ús   °A Á A5Á4A5c                óJ   € V P                   '       d   \        R4      hQ R4       h)z)Make an array page number -> page object.r¾   z_make_page_map() is no-op)rÂ   rÃ   r-   s   &r'   Ú_make_page_mapÚDocument._make_page_map•  s"   € à�>�>ˆ>ÜÐ.Ó/Ð/Ø.Ð-Ó.ˆqr)   c                ó  € \        V 4      p^ p\        WQ4      w  rxp	\        P                  ! V\	        R4      4      p
\        WR4      w  r¼p\        P                  ! V\	        R4      4      pV'       d   TpM	V^,           p\        P
                  ! W®4      pV'       g)   V^ 8w  d"   \        P                  ! V\	        R4      V4       \        P                  ! WçV4       V^ 8w  Ed   TpVP                  '       dk   \        P                  ! V\	        R4      4      p\        P                  ! V\	        R4      V^,           4       \        P                  ! V\	        R4      4      pK|  V'       g•   \        P                  ! W©4       TpVP                  '       dk   \        P                  ! V\	        R4      4      p\        P                  ! V\	        R4      V^,
          4       \        P                  ! V\	        R4      4      pK|  MÁV'       d€   TpVP                  '       dk   \        P                  ! V\	        R4      4      p\        P                  ! V\	        R4      V^,           4       \        P                  ! V\	        R4      4      pK|  M:WŸ8  d   \        P                  ! W©4       M\        P                  ! W©^,           4       VP                  P                  '       d!   \        P                  ! VP                  4       V P                  4        R# )z"Move or copy a PDF page reference.r@  r§  rÑ  N)rÎ   Úpdf_lookup_page_locr£   r  r  r‰  rU  Úpdf_array_insertrÌ   Úpdf_dict_get_intrP  r­  r   r  Ú_reset_page_refs)r&   r{  ÚnbÚbeforeÚcopyra  ÚsameÚpage1Úparent1Úi1rM  Úpage2Úparent2Úi2rO  Úposrì   rÙ  s   &&&&&             r'   Ú_move_copy_pageÚDocument._move_copy_page›  s8  € ä˜tÓ$ˆØˆô 1°#Ó;Ñˆ˜ä×"Ò" G¬X°fÓ-=Ó>ˆä0°#Ó:Ñˆ˜Ü×"Ò" G¬X°fÓ-=Ó>ˆßØ‰Cà�q•&ˆCô ×Ò Ó.ˆ÷ ˜ œ	Ü×Ò ¤x°Ó'9¸7ÔCÜ×Ò ¨cÔ2à�1�9ØˆFØ×#×#Ð#Ü×.Ò.°¼ÀÓ8IÓJ�Ü×&Ò&¨´¸Ó0AÀ5È1Å9ÔMÜ×+Ò+¨V´X¸hÓ5GÓH’ßÜ×&Ò&¨Ô2Ø �Ø×'×'Ð'Ü!×2Ò2°F¼HÀWÓ<MÓN�EÜ×*Ò*¨F´H¸WÓ4EÀuÈqÅyÔQÜ"×/Ò/°¼À(Ó9KÓL’FøçØ �Ø×'×'Ð'Ü!×2Ò2°F¼HÀWÓ<MÓN�EÜ×*Ò*¨F´H¸WÓ4EÀuÈqÅyÔQÜ"×/Ò/°¼À(Ó9KÓL’Fð (ð
 ”8Ü×*Ò*¨EÕ6ä×*Ò*¨E¸µ6Ô:Ø�>‰>×&×&Ð&Ü×'Ò'¨¯©Ô8à×ÑÖr)   c                óZ  € V P                   '       g   V P                  '       d   \        R4      h\        '       d$   \        P
                  ! V P                  WV4       M¶\        V 4      p\        P                  ! \        P                  P                  4      pW%n        W5n        \        P                  ! 4       pVR8  d   \        \        4      h\        P                  ! V^4      p\        P                   ! WE^ Wv4      p\        P"                  ! WAV4       V P%                  4        W,          # )zMake a new PDF page.rÞ  r¨  )rÂ   r«  rÃ   r  r   Ú_newPagerÄ   rÎ   r£   rq  Ú
Fixed_UNITr´  r¶  ÚFzBufferr  Úpdf_add_new_dictÚpdf_add_pageÚpdf_insert_pager5  )	r&   r{  rˆ  r3  ra  ÚmediaboxÚcontentsri  Úpage_objs	   &&&&     r'   rD  ÚDocument._newPageÓ  sÓ   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ß‹;Ü�NŠN˜DŸI™I s°6Õ:ä" 4Ó(ˆCÜ—|’|¤E§L¡L×$;Ñ$;Ó<ˆHØŒKØ ŒKÜ—~’~Ó'ˆHØ�RŒxÜ ¤.Ó1Ð1ô ×.Ò.¨s°AÓ6ˆIÜ×)Ò)¨3¸!¸YÓQˆHÜ×!Ò! 3¨XÔ6ð 	×ÑÔØ�yÐr)   c                	ó2   € \        V 4      p\        W!4       R # r+   )rÎ   Ú_remove_dest_range)r&   Únumbersra  s   && r'   Ú_remove_links_toÚDocument._remove_links_toë  s   € Ü˜tÓ$ˆÜ˜3Ö(r)   c                	óŒ  € \        V 4      p\        P                  ! W!^ 4      p\        P                  ! V\	        R4      4       \        P                  ! V\	        R4      4       \        P
                  ! V^4      p\        ^4       F  p\        P                  ! VR4       K  	  \        P                  ! V\	        R4      V4       R# )rx   rÒ  rÓ  çš™™™™™é?rü  N)	rÎ   r£   r¹  rH  r  rR  rS  rT  rU  )r&   r  ra  rE   rp  rg  s   &&    r'   rî  ÚDocument._remove_toc_itemï  s�   € ä˜tÓ$ˆÜ×%Ò% c°Ó3ˆÜ×Ò˜D¤(¨6Ó"2Ô3Ü×Ò˜D¤(¨3£-Ô0Ü×#Ò# S¨!Ó,ˆÜ�q–ˆAÜ×%Ò% u¨cÖ2ñ ä×Ò˜D¤(¨3£-°Ö7r)   c                ó  € \        V RR4      '       d   R# V P                  P                  4        Uu. uF  qNK  	  ppV F  pV'       g   K  VP                  4        RpK!  	  V P                  P	                  4        R# u upi )z,Invalidate all pages in document dictionary.rÂ   TN)rî   r²  r  rö   Úclear)r&   r²  ÚpagesrÖ   s   &   r'   r5  ÚDocument._reset_page_refsú  sk   € ä�4˜ d×+Ò+ÙØ ŸO™O×2Ñ2Ô4Ó5Ñ4�q’Ñ4ˆÐ5ÛˆDß‰tØ—‘”Ø’ñ ð 	�‰×ÑÖùò 6s   ²
A?c                	óÞ  € \        V 4      p\        P                  ! R 4      p\        P                  ! \        P                  ! V4      \        R4      4      p\        P                  ! WC4       \        P                  ! V\        P                  ! V^ 4      V\        R4      4       V P                  4       pV P                  VRR7      pVP                  RRV R24      pV P                  WV4       R# )	rø  rà  rù  T©Ú
compressedz/Nums[]z/Nums[r—  N)rÎ   r£   rå  r  rä  r  rH  rV  rR  Úpdf_catalogÚxref_objectr  Úupdate_object)r&   Úlabelsra  rü  r¹  r  r   s   &&     r'   Ú_set_page_labelsÚDocument._set_page_labels  s½   € Ü˜tÓ$ˆÜ×'Ò'¨Ó5ˆ
Ü×!Ò!¤%×"3Ò"3°CÓ"8¼(À6Ó:JÓKˆÜ×Ò˜4Ô,Ü×Ò˜D¤%×"5Ò"5°c¸1Ó"=¸zÌ8ÐTZÓK[Ô\à×ÑÓ!ˆØ×Ñ °ÐÓ6ˆØ�|‰|˜I¨°¨x°qÐ'9Ó:ˆØ×Ñ˜4Ö&r)   c                óð  € \        V 4      p\        P                  ! Wq^ 4      pV'       d"   \        P                  ! V\	        R4      V4       V'       dM   \        P
                  ! V\	        R4      4       \        Wr4      p	\        P                  ! V\	        R4      V	4       \        P                  ! V\	        R4      V4       V'       dj   \        P                  ! V^4      p
\        ^4       F!  pWk,          p\        P                  ! W¬4       K#  	  \        P                  ! V\	        R4      V
4       M$Ve!   \        P
                  ! V\	        R4      4       Ve�   \        P                  ! V\	        R4      4      P                  '       dk   \        P                  ! V\	        R4      4      pV^ 8  d   VRJ g   V^ 8”  d5   VR	J d-   VR
,          p\        P                  ! V\	        R4      V4       R# R# R# R# R# )z2
"update" bookmark by letting it point to nowhere
ÚTitlerÒ  rÓ  r¸  rü  NrÑ  FTr¨  )rÎ   r£   r¹  r¯  r  rH  ræ  rU  rP  rR  rS  rT  r  rÌ   r4  )r&   r  Úactionr¨  rÐ  rÐ  rp  ra  rE   r  rõ  rg  r  s   &&&&&&&      r'   Ú_update_toc_itemÚDocument._update_toc_item  s|  € ô ˜tÓ$ˆÜ×%Ò% s°!Ó4ˆßÜ×*Ò*¨D´(¸7Ó2CÀUÔKßÜ×Ò ¤h¨vÓ&6Ô7Ü% sÓ3ˆCÜ×Ò ¤h¨s£m°SÔ9Ü×Ò ¤h¨s£m°UÔ;ßÜ×#Ò# S¨!Ó,ˆAÜ˜1–X�Ø•H�Ü×)Ò)¨1Ö0ñ ô ×Ò ¤h¨s£m°QÕ7ØÒÜ×Ò ¤h¨s£mÔ4ØÒÜ×!Ò! 4¬°'Ó):Ó;×F×FÐFÜ×*Ò*¨D´(¸7Ó2CÓD�Ø˜”E˜h¨%Ó/°Q¸´U¸xÈ4Ó?OØ˜R��AÜ×*Ò*¨D´(¸7Ó2CÀQÖGñ @P±Uñ Gñ  r)   c           	     ó4  € \        V ^ R7      pVP                  '       g   R# \        P                  ! \        P                  ! V4      \        R4      \        R4      \        R4      \        R4      4      p\        4       pVP                  '       d‰   \        P                  ! V4      '       dm   \        P                  ! V4      p\        V4       FG  p\        P                  ! W%4      pVP                  \        \        P                  ! V4      4      4       KI  	  V# )z&Get list of field font resource names.rß  Nrà  rá  râ  rã  )rÎ   rÌ   r£   r   rä  r  r´   r…  r†  rS  rˆ  ro   r	  r„  )r&   ra  rç  r  rG   rg  r  s   &      r'   Ú	FormFontsÚDocument.FormFonts-  sÐ   € ô ˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×#Ò#Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó$Ü˜“Ü˜Ó óˆô “ˆØ××Ð¤× 1Ò 1°%× 8Ò 8Ü×"Ò" 5Ó)ˆAÜ˜1–X�Ü×*Ò*¨5Ó4�Ø—‘Ô.¬u×/@Ò/@ÀÓ/CÓDÖEñ ð ˆr)   c                ót   € \        V 4      p\        WAW#4       \        P                  ! VP                  4       R# )zAdd a new OC layer.N)rÎ   ÚJM_add_layer_configr£   Úll_pdf_read_ocgrÌ   )r&   r   ÚcreatorÚonra  s   &&&& r'   Ú	add_layerÚDocument.add_layerB  s(   € ä˜tÓ$ˆÜ˜S¨Ô4Ü×Ò˜sŸ~™~Ö.r)   c                óp  € ^ p\        V 4      p\        P                  ! V^4      p\        P                  ! V\	        R4      \	        R4      4       \        P
                  ! V\	        R4      V4       \        P                  ! V\	        R4      ^4      p	V'       g"   \        P                  ! V	\	        R4      4       M]\        V\        4      '       g   Q R\        T4      : R\        : 24       h\        P                  ! V	\        P                  ! V4      4       \        P                  ! V\	        R4      ^4      p
\        P                  ! R	4      p\        P                  ! W«^4      p\        P
                  ! V\	        R
4      R4       V'       d#   \        P                  ! V\	        R4      V4       M!\        P                  ! V\	        R4      R4       \        P                  ! Wx4      p\        V4      p\        P                   ! V\	        R4      4      p\        P                  ! Wý4       VR8”  d„   \        P                   ! V\	        R4      4      p\        P"                  ! V4      '       g   \%        \&        4      h\        P(                  ! Wò4      pVP*                  '       g   \%        \&        4      hM \        P                   ! V\	        R4      4      p\        P                   ! V\	        R4      4      pVP*                  '       g"   \        P                  ! V\	        R4      ^4      p\        P                  ! Wý4       V'       dU   \        P                   ! V\	        R4      4      pVP*                  '       g"   \        P                  ! V\	        R4      ^4      pMS\        P                   ! V\	        R4      4      pVP*                  '       g"   \        P                  ! V\	        R4      ^4      p\        P                  ! Wý4       \        P,                  ! VP*                  4       \        P.                  ! V4      pV# )zAdd new optional content group.r  ÚOCGr*  ÚIntentÚViewz)fixme: intent is not a str. type(intent)=ú type=ÚUsageÚCreatorInfoÚCreatorÚPyMuPDFr¶  ÚArtworkÚOCGsÚConfigsrÔ  ÚOrderÚONÚOFFr¨  )rÎ   r£   rG  rU  r  r¯  rX  rK  r@   ræ  rÈ   rå  rY  r\  rY  ÚJM_ensure_ocpropertiesr  rI  rÃ   ÚMSG_BAD_OC_CONFIGr¬  rÌ   rm  r  )r&   r   Úconfigro  ÚintentÚusager  ra  ÚocgÚintentsÚuse_forÚci_nameÚcre_infoÚindocgÚocpr  Úcfgs   &&&&&&           r'   Úadd_ocgÚDocument.add_ocgH  sÿ  € àˆÜ˜tÓ$ˆô ×$Ò$ S¨!Ó,ˆÜ×Ò˜3¤¨Ó 0´(¸5³/ÔBÜ×&Ò& s¬H°VÓ,<¸dÔCÜ×*Ò*¨3´¸Ó0BÀAÓFˆßÜ× Ò  ¬(°6Ó*:Õ;Ü˜F¤C×(Ò(ØLÐB´T¸&³\±OÀ7ÄTÁGÐLÓL�1ô × Ò  ¬%×*<Ò*<¸VÓ*DÔEÜ×)Ò)¨#¬x¸Ó/@À!ÓDˆÜ×$Ò$ ]Ó3ˆÜ×*Ò*¨7¸QÓ?ˆÜ×&Ò& x´¸)Ó1DÀiÔPßÜ×#Ò# H¬h°yÓ.AÀ5ÕIä×#Ò# H¬h°yÓ.AÀ9ÔMÜ×%Ò% cÓ/ˆô % SÓ)ˆÜ× Ò  ¤h¨vÓ&6Ó7ˆÜ×Ò˜SÔ)à�BŒ;Ü×$Ò$ S¬(°9Ó*=Ó>ˆCÜ×%Ò% c×*Ò*Ü Ô"3Ó4Ð4Ü×%Ò% cÓ2ˆCØ—>—>�>Ü Ô"3Ó4Ð4ð "ô ×$Ò$ S¬(°3«-Ó8ˆCä× Ò  ¤h¨wÓ&7Ó8ˆØ�~�~ˆ~Ü×*Ò*¨3´¸Ó0AÀ1ÓEˆCÜ×Ò˜SÔ)ßÜ×$Ò$ S¬(°4«.Ó9ˆCØ—>—>�>Ü×.Ò.¨s´H¸T³NÀAÓF�øä×#Ò# C¬°%«Ó9ˆCØ—>—>�>Ü×-Ò-¨c´8¸E³?ÀAÓF�Ü×Ò˜SÔ)ô 	×Ò˜cŸn™nÔ-ä×Ò Ó'ˆØˆr)   c                óÜ   € V P                   '       d   \        R4      h\        P                  ! V P                  V4      pV'       d&   RV n        RV n        V P                  4        RV n        V# )zDecrypt document.r¾   FT)rÂ   rÃ   r£   Úfz_authenticate_passwordrÄ   r«  rÈ  rõ   )r&   Úpasswordr  s   && r'   ÚauthenticateÚDocument.authenticateŽ  sU   € à�>�>ˆ>ÜÐ.Ó/Ð/Ü×,Ò,¨T¯Y©Y¸ÓAˆßØ %ˆDÔØ %ˆDÔØ�M‰MŒOØˆDŒLØˆ
r)   c                óp   € \        V ^ R7      pVP                  '       g   R# \        P                  ! V4      # )z-Check whether incremental saves are possible.rß  F)rÎ   rÌ   r£   Úpdf_can_be_saved_incrementally©r&   ra  s   & r'   Úcan_save_incrementallyÚDocument.can_save_incrementallyš  s+   € ä˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×3Ò3°CÓ8Ð8r)   r¯  TÚwidgetsc               ó$   € V ^8„  d   QhRRRRRR/# )r†  r¯  rè   rš  rs  r  r,   )rþ  s   "r'   rÿ  rt  ¡  s&   € ÷ @ñ @˜dð @°Dð @ÀDñ @r)   c               óp   € \        V 4      p\        P                  ! V\        V4      \        V4      4       R# )aª  Convert annotations or fields to permanent content.

Notes:
    Converts annotations or widgets to permanent page content, like
    text and vector graphics, as appropriate.
    After execution, pages will still look the same, but no longer
    have annotations, respectively no fields.
    If widgets are selected the PDF will no longer be a Form PDF.

Args:
    annots: convert annotations
    widgets: convert form fields

N)rÎ   r£   Úpdf_bake_documentr6   )r&   r¯  rš  ra  s   &$$ r'   ÚbakeÚDocument.bake¡  s(   € ô ˜tÓ$ˆÜ×Ò ¤S¨£[´#°g³,Ö?r)   c                ó|   € V P                   '       d   \        R4      h\        P                  ! V P                  4      # )zNumber of chapters.r¾   )rÂ   rÃ   r£   Úfz_count_chaptersrÄ   r-   s   &r'   rw  ÚDocument.chapter_count³  s.   € ð �>�>ˆ>ÜÐ.Ó/Ð/Ü×&Ò&¨¯	©	Ó2Ð2r)   c                óò   € V P                   '       d   \        R4      h\        P                  ! V P                  4      pV^ 8  g   W8¼  d   \        R4      h\        P
                  ! V P                  V4      pV# )zPage count of chapter.r¾   zbad chapter number)rÂ   rÃ   r£   r¡  rÄ   Úfz_count_chapter_pages)r&   rz  ÚchaptersrX  s   &&  r'   rx  ÚDocument.chapter_page_countº  s^   € à�>�>ˆ>ÜÐ.Ó/Ð/Ü×*Ò*¨D¯I©IÓ6ˆØ�QŒ;˜'Ô-ÜÐ2Ó3Ð3Ü×,Ò,¨d¯i©i¸ÓAˆØˆr)   c                óâ   € \        V RR4      '       d   \        R4      h\        V R4      '       d   V P                  '       d   RV n        V P	                  4        RV n        / V n        RV n        R# )zClose document.rÂ   Tr¾   Ú_outlineN)rî   rÃ   r=   r¨  r5  rÂ   r®  rÄ   r-   s   &r'   r�  ÚDocument.closeÄ  s^   € ä�4˜ d×+Ò+ÜÐ.Ó/Ð/ä�4˜×$Ò$¨¯¯¨Ø ˆDŒMØ×ÑÔð !ˆŒàˆŒð ˆŽ	r)   c                óà  € V P                   '       g   V P                  '       d   \        R4      hV P                  pTpTp\        P
                  ! V4      pV^ 8  d   ^ pWW^,
          8”  d
   V^,
          pV^ 8  d
   V^,
          pWg^,
          8”  d
   V^,
          p\        \        4      p\        WEWc4      p	\        \        4      p
\        WŠ4       F  p\        \        V,           4       K  	  V	# )z[Convert document to a PDF, selecting page range and optional rotation. Output bytes object.rÞ  )rÂ   r«  rÃ   rÄ   r£   r  r9   ÚJM_mupdf_warnings_storeÚJM_convert_to_pdfrS  rv   )r&   r  r  r`  Úfz_docrÃ  rT  ÚsrcCountÚlen0r1  Úlen1rg  s   &&&&        r'   rÉ  ÚDocument.convert_to_pdfÖ  sÎ   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø—‘ˆØˆØˆÜ×'Ò'¨Ó/ˆØ�Œ6ØˆBØ˜1•ÔØ˜A•ˆBØ�Œ6Ø˜A•ˆBØ˜1•ÔØ˜A•ˆBÜÔ*Ó+ˆÜ ¨BÓ7ˆÜÔ*Ó+ˆÜ�tÖ"ˆAÜÔ.¨qÕ1Ð2Ö4ñ #àˆ
r)   c               ó    € V ^8„  d   QhRRRR/# ©r†  r{  r6   r  r,   )rþ  s   "r'   rÿ  rt  í  s   € ÷ ;ñ ;˜Sð ; cñ ;r)   c                óú   € V P                   '       d   \        R4      h\        V 4      pV\        V4      9  g   V\        RV4      9  d   \        R4      h^p^pVR8X  d   V^,
          p^ pV P	                  WWE4      # )zÁCopy a page within a PDF document.

This will only create another reference of the same page object.
Args:
    pno: source page number
    to: put before this page, '-1' means after last page.
r¾   r‚  r¨  ©rÂ   rÃ   r9   rS  rA  ©r&   r{  r  rv  r7  r8  s   &&&   r'   Ú	copy_pageÚDocument.copy_pageí  s|   € ð �>�>ˆ>ÜÐ.Ó/Ð/ä˜“Yˆ
àœ5 Ó,Ô,ØœU 2 zÓ2Ô2äÐ1Ó2Ð2ØˆØˆØ�Œ8Ø˜a•ˆBØˆFà×#Ñ# C¨VÓ:Ð:r)   c                óJ  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! \        P                  ! V4      \        R4      4      pVP                  '       d#   \        P                  ! V\        R4      4       R# R# )zDelete XML metadata.rÞ  rà  ÚMetadataN)
rÂ   r«  rÃ   rÎ   r£   r  rä  r  rÌ   rH  )r&   ra  r¹  s   &  r'   Údel_xml_metadataÚDocument.del_xml_metadata  sq   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×!Ò!¤5×#4Ò#4°cÓ#:¼HÀVÓ<LÓMˆØ�?�?ˆ?Ü×Ò ¤h¨zÓ&:Ö;ñ r)   c               ó   € V ^8„  d   QhRR/# )r†  r{  r6   r,   )rþ  s   "r'   rÿ  rt    s   € ÷ &ñ &˜sñ &r)   c                ó$   € V P                  V4      # )z$Delete one page from a PDF.
        )r…  )r&   r{  s   &&r'   r„  ÚDocument.delete_page  s   € ð × Ñ  Ó%Ð%r)   c                óæ  € V P                   '       g   \        R4      hV P                  '       d   \        R4      hV P                  pR;rEV'       d‘   V'       d   \        R4      hVP	                  RR4      pVP	                  RR4      pV^ 8  d   WC,          pK  V^ 8  d   WS,          pK  YEu;8:  d   V8  g   M \        R4      h\        \        WE^,           4      4      pMó\        V4      ^8”  g   V. 8X  d   \        R4      h\        V4      ^8X  du   Vw  rE\        V4      \        J d   \        V4      \        J g   \        R4      hWE8”  d   YTrTYEu;8:  d   V8  g   M \        R4      h\        \        WE^,           4      4      pMM\        V^ ,          \        4      '       d   V^ ,          pV^ 8  d   Ws,          pK  V3pM\        V^ ,          4      p\        \        \        \        V4      4      4      pV. 8X  d   \        R	4       R
# VP                  4        V^ ,          ^ 8  g   VR,          V8¼  d   \        R4      h\!        V4      pV P#                  4       p	\%        V P'                  4       4       F3  w  r«Wš,          ^,          ^,
          V9   g   K"  V P)                  V4       K5  	  V P+                  V4       \-        V4       F  p
V P/                  V
4       K  	  V P1                  4        R
# )zþDelete pages from a PDF.

Args:
    Either keywords 'from_page'/'to_page', or two integers to
    specify the first/last page to delete.
    Or a list/tuple/range object, which can contain arbitrary
    page numbers.
    Or a single integer page number.
r�  r¾   z*cannot mix keyword and positional argumentr  r  r‚  z need 1 or 2 positional argumentszboth arguments must be intznothing to deleteNr¨  )rƒ  rÃ   rÂ   rv  r:   rµ   rS  r9   rÈ   r6   r@   r´   r  Úsetrv   ÚsortÚ	frozensetÚget_tocrZ  rí  rî  rQ  Úreversedr  r5  )r&   r  Úkwrv  r  rÃ  rP  r{  Úfrozen_numbersÚtocrg  r  s   &*,         r'   r…  ÚDocument.delete_pages  sQ  € ð �{�{ˆ{Ü˜[Ó)Ð)Ø�>�>ˆ>ÜÐ.Ó/Ð/à—_‘_ˆ
Øˆ
ˆßßÜ Ð!MÓNÐNØ—‘�{ BÓ'ˆAØ—‘�y "Ó%ˆAØ�a”%Ø•’Ø�a”%Ø•’ØÖ&˜JÖ&Ü Ð!5Ó6Ð6ÜœE !¨¥U›OÓ,‰Gä�4‹y˜1Œ} ¨¤
Ü Ð!CÓDÐDÜ�4‹y˜AŒ~Ø‘�Ü˜Q›¤3›¬4°«7´c«>Ü$Ð%AÓBÐBØ”5Ø�qØÖ* 
Ö*Ü$Ð%9Ó:Ð:Ü¤ a¨Q­£Ó0‘Ü˜D �G¤S×)Ò)Ø˜1•g�Ø˜A”gØÕ%’CØ˜&‘ä  Q¥›.�ä”sœ3¤ G£Ó-Ó.ˆØ�bŒ=ÜÐ'Ô(ÙØ�‰ŒØ�1�:˜Œ>˜W R�[¨JÔ6ÜÐ1Ó2Ð2Ü" 7Ó+ˆØ�l‰l‹nˆÜ  ×!7Ñ!7Ó!9Ö:‰GˆAØ�v�a�y˜1�} Ö.Ø×%Ñ% dÖ+ñ ;ð 	×Ñ˜nÔ-ä˜'Ö"ˆAØ×Ñ˜aÖ ñ #ð 	×ÑÖr)   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r†  r   ræ  r4  Ú
ByteStringrj   rù  rW  rÊ  rs  r  r,   )rþ  s   "r'   rÿ  rt  Y  sD   € ÷ $ñ $Øð$àð$ð ð$ð ð	$ð
 ð$ð ñ$r)   c                óJ  € V P                  4       pW9   d   \        RV R24      hVf   TpVf   TpVf   TpV P                  VVVVVR7      p\        4       pV P	                  VRR4       V P	                  VR\        V4      4       V P	                  VR\        V4      4       V# )a$  Add an item to the EmbeddedFiles array.

Args:
    name: name of the new item, must not already exist.
    buffer_: (binary data) the file content.
    filename: (str) the file name, default: the name
    ufilename: (unicode) the file name, default: filename
    desc: (str) the description.
zName 'z' already exists.©r4  rj   rW  rÊ  r  z/EmbeddedFileúParams/CreationDateúParams/ModDate)r²  rÃ   r¹  Úget_pdf_nowr›  r  )	r&   r   r4  rj   rW  rÊ  r³  r  Údates	   &&&&&&   r'   Úembfile_addÚDocument.embfile_addY  sÁ   € ð  ×&Ñ&Ó(ˆ	ØÔÜ˜v d VÐ+<Ð=Ó>Ð>ØÒØˆHØÒØ ˆIØŠ<ØˆDØ× Ñ ØØØ!Ø#Øð !ó ˆô ‹}ˆØ×Ñ˜$ ¨Ô8Ø×Ñ˜$Ð 5´{À4Ó7HÔIØ×Ñ˜$Ð 0´+¸dÓ2CÔDØˆr)   c               ó   € V ^8„  d   QhRR/# rÔ  r,   )rþ  s   "r'   rÿ  rt    s   € ÷ )ñ )˜sñ )r)   c                ó4   € \        V P                  4       4      # )zGet number of EmbeddedFiles.)r9   r²  r-   s   &r'   Úembfile_countÚDocument.embfile_count  s   € ä�4×%Ñ%Ó'Ó(Ð(r)   c               ó   € V ^8„  d   QhRR/# )r†  rE   r°  r,   )rþ  s   "r'   rÿ  rt  ƒ  s   € ÷ &ñ &Ð 6ñ &r)   c                óF   € V P                  V4      pV P                  V4      # )a  Delete an entry from EmbeddedFiles.

Notes:
    The argument must be name or index of an EmbeddedFiles item.
    Physical deletion of data will happen on save to a new
    file with appropriate garbage option.
Args:
    item: name or number of item.
Returns:
    None
)r´  r¼  ©r&   rE   rë  s   && r'   Úembfile_delÚDocument.embfile_delƒ  s%   € ð ×%Ñ% dÓ+ˆØ× Ñ  Ó%Ð%r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rE   r°  rs  r  r,   )rþ  s   "r'   rÿ  rt  ’  s   € ÷ 	*ñ 	*Ð 6ð 	*¸5ñ 	*r)   c                óF   € V P                  V4      pV P                  V4      # )z‡Get the content of an item in the EmbeddedFiles array.

Args:
    item: number or name of item.
Returns:
    (bytes) The file content.
)r´  r­  rÚ  s   && r'   Úembfile_getÚDocument.embfile_get’  s%   € ð ×%Ñ% dÓ+ˆØ×$Ñ$ SÓ)Ð)r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rE   r°  rs  r7   r,   )rþ  s   "r'   rÿ  rt  �  s   € ÷ ñ Ð!7ð ¸Dñ r)   c                ó˜  € V P                  V4      pRV P                  4       V,          /pV P                  W#4      pV P                  VR4      w  rVVR8w  d   WcR&   V P                  VR4      w  rVVR8w  d   WcR&   V P                  VR4      w  rWVR8w  d6   \        P
                  ! VP                  4       4      P                  4       VR&   V# )	z…Get information of an item in the EmbeddedFiles array.

Args:
    item: number or name of item.
Returns:
    Information dictionary.
r   rÎ  rñ  r©  rÏ  rª  zParams/CheckSumÚchecksum)r´  r²  rÇ  Úxref_get_keyr  r  r  Údecode)r&   rE   rë  rÂ  r  rÃ  rÑ  Úmd5s   &&      r'   Úembfile_infoÚDocument.embfile_info�  sÉ   € ð ×%Ñ% dÓ+ˆØ˜D×.Ñ.Ó0°Õ5Ð6ˆØ×!Ñ! #Ó0ˆØ×#Ñ# DÐ*?Ó@‰ˆØ�Œ;Ø'+�^Ñ$Ø×#Ñ# DÐ*:Ó;‰ˆØ�Œ;Ø"&�YÑØ×"Ñ" 4Ð):Ó;‰ˆØ�Œ;Ü#+×#3Ò#3°C·J±J³LÓ#A×#HÑ#HÓ#JˆH�ZÑ Øˆr)   c               ó   € V ^8„  d   QhRR/# ©r†  rs  r´   r,   )rþ  s   "r'   rÿ  rt  ³  s   € ÷ ñ ˜tñ r)   c                ó,   € . pV P                  V4       V# )z#Get list of names of EmbeddedFiles.)rÊ  )r&   r³  s   & r'   r²  ÚDocument.embfile_names³  s   € àˆ	Ø×Ñ˜IÔ&ØÐr)   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r†  rE   r°  r4  ÚOptBytesrj   rù  rW  rÊ  rs  r  r,   )rþ  s   "r'   rÿ  rt  ¹  sD   € ÷ ñ Ø(ðàðð ðð ð	ð
 ðð ñr)   c                ó    € V P                  V4      pV P                  VVVVVR7      p\        4       pV P                  VR\	        V4      4       V# )a]  Change an item of the EmbeddedFiles array.

Notes:
    Only provided parameters are changed. If all are omitted,
    the method is a no-op.
Args:
    item: number or name of item.
    buffer_: (binary data) the new file content.
    filename: (str) the new file name.
    ufilename: (unicode) the new filen ame.
    desc: (str) the new description.
rÍ  rÏ  )r´  rÍ  rÐ  r›  r  )	r&   rE   r4  rj   rW  rÊ  rë  r  rÑ  s	   &&&&&&   r'   Úembfile_updÚDocument.embfile_upd¹  s^   € ð& ×%Ñ% dÓ+ˆØ× Ñ ØØØ!Ø#Øð !ó ˆô ‹}ˆØ×Ñ˜$Ð 0´+¸dÓ2CÔDØˆr)   c           
     óh  € \        V 4      p\        P                  ! WA4      p\        P                  ! V\	        R4      4      p\        P                  ! V\	        R4      4      p\        P
                  ! V\	        R4      4      '       Ed„   \        P                  ! V4      P                  R4      '       EgX   \        P                  ! V\	        R4      4      pVP                  '       d   \        P                  ! V4      '       d"   \        P                  ! V\	        R4      4      p	MTp	\        WA4      p
V
R8w  d    V'       g   \        WA4      p\        V4      pMRpV'       gL   \        \        P                  ! V	4      4      \        V
4      \        \        P                  ! V4      4      V3pV# \        \        \        P                  ! V	4      4      \         \        V
4      \"        \        \        P                  ! V4      4      \$        V/p V# V'       g   R
pV# \        R	\         R	\"        R	\$        R/pV# )z4
Get a font by xref. Returns a tuple or dictionary.
r  r¶  rã  ÚCIDFontTypeÚBaseFontr*  ún/ar)   r`   )r`   r`   r`   r)   )rÎ   r£   rJ  r  r  Úpdf_name_eqr„  r5   rÌ   Úpdf_is_nullÚJM_get_fontextensionrí  r#  rÃ  r	  r2  Údictkey_extÚdictkey_typer1  )r&   r  Ú	info_onlyÚnamedra  r  rb  ÚsubtypeÚbasefontÚbnamerå  r4  Úbytes_r¦   s   &&&&          r'   Úextract_fontÚDocument.extract_fontØ  s¾  € ô
 ˜tÓ$ˆÜ×#Ò# CÓ.ˆÜ×"Ò" 3¬°Ó(8Ó9ˆÜ×$Ò$ S¬(°9Ó*=Ó>ˆÜ×Ò˜e¤X¨fÓ%5×6Ó6Ü×)Ò)¨7Ó3×>Ñ>¸}×MÓMä×)Ò)¨#¬x¸
Ó/CÓDˆHØ×&×&Ð&¬%×*;Ò*;¸H×*EÒ*EÜ×*Ò*¨3´¸Ó0@ÓA‘à �Ü& sÓ1ˆCØ�eŒ|§IÜ+¨CÓ6�Ü)¨'Ó2‘à�ßä+¬E×,=Ò,=¸eÓ,DÓEÜ)¨#Ó.Ü)¬%×*;Ò*;¸GÓ*DÓEØð	�ð. ˆ	ô %Ô&9¼%×:KÒ:KÈEÓ:RÓ&SÜ#Ô%6°sÓ%;Ü$Ô&7¼×8IÒ8IÈ'Ó8RÓ&SÜ'¨ð	‘ð  ˆ	÷ Ø$�ð ˆ	ô % bÜ# RÜ$ bÜ'¨ð	�ð ˆ	r)   c                ó*  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\	        V^\
        P                  ! V4      ^,
          4      '       g   \        \        4      h\
        P                  ! W!^ 4      p\
        P                  ! V\        R4      4      p\
        P                  ! V\        R4      4      '       g   \        R4      h\
        P                  ! V\        R4      \        R4      4      pVP                  '       d   \
        P                  ! V4      pM^ p\
        P                  ! W#4      p\!        4       p\#        Wx4       Wh\$        &   \
        P&                  ! VP)                  4       4      V\*        &   V# )z(Get image by xref. Returns a dictionary.rÞ  r¶  ÚImageznot an imageÚSMaskÚMask)rÂ   r«  rÃ   rÎ   rÕ  r£   r·  r¸  r¹  r  r  rö  Úpdf_dict_getarÌ   r  Úpdf_load_imager7   Ú_make_image_dictÚdictkey_smaskr<  rð  Údictkey_cs_name)	r&   r  ra  r  rý  r±  Úsmaskr2  r¦   s	   &&       r'   Úextract_imageÚDocument.extract_image	  s(  € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ä˜tÓ$ˆä˜˜a¤×!3Ò!3°CÓ!8¸Õ!:×;Ò;ÜœlÓ+Ð+ä×$Ò$ S°Ó2ˆÜ×$Ò$ S¬(°9Ó*=Ó>ˆä× Ò  ¬(°7Ó*;×<Ò<Ü˜nÓ-Ð-ä×Ò ¤X¨gÓ%6¼ÀÓ8HÓIˆØ�<�<ˆ<Ü×$Ò$ QÓ'‰EàˆEô ×"Ò" 3Ó,ˆÜ‹VˆÜ˜Ô!Ø!Œ=ÑÜ#×6Ò6°s·~±~Ó7GÓHˆŒ?ÑØˆ	r)   Fc                óL   € V P                  VVVVVVVVV	V
VVVVVVVVVVR7      # )z(
Save PDF using some different defaults
)ÚgarbageÚcleanÚdeflateÚdeflate_imagesÚdeflate_fontsÚincrementalr™  ÚexpandÚlinearÚprettyÚ
encryptionÚpermissionsÚowner_pwÚuser_pwÚ	no_new_idÚpreserve_metadataÚuse_objstmsÚcompression_effortÚraise_on_repair)Úsave)r&   rj   r  r  r  r  r  r  r™  r  r  r  r  r  r  r  r  r  r  r   r!  s   &&&&&&&&&&&&&&&&&&&&&r'   Úez_saveÚDocument.ez_save'  sV   € ð4 �y‰yØØØØØ-Ø+Ø'ØØØØØ%Ø'Ø!ØØ#Ø"3Ø'Ø#5Ø /ð) ó ð 	r)   c                óÒ   € V P                   '       g   V P                  '       d   \        R4      h\        P                  ! V P
                  V4      pVP                  VP                  3# )z-Find new location after layouting a document.rÞ  )rÂ   r«  rÃ   r£   Úfz_lookup_bookmark2rÄ   rz  rÖ   )r&   rØ  Úlocations   && r'   Úfind_bookmarkÚDocument.find_bookmarkX  sM   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü×,Ò,¨d¯i©i¸Ó<ˆØ×Ñ §¡Ð.Ð.r)   c                ó–  € \        V 4      p\        P                  ! V4      p \        V^ V^,
          4      '       d   \        VR	V^,
          4      '       g   \	        \
        4      h\        P                  ! \        P                  ! W14      4      p\        P                  ! V4      p\        P                  ! V\        R4      4      pVP                  '       Ed­   \        P                  ! V4      p\        P                  ! W84      p	\        V4       EFO  p
\        P                  ! Wz4      p\        P                  ! V\        R4      4      p\        P                   ! V\        R4      4      '       d   Kb  \        P"                  ! VR4      P                  '       d   K‹  \        P                  ! \        P                  ! V4      4      p\        P$                  ! V4      p\        P&                  ! W>V4       \        P(                  ! W>^ 4      p\        P*                  ! V\        R4      4       \        P*                  ! V\        R4      4       \        P,                  ! W�4       EKR  	  \        P.                  ! V\        R4      V	4       \1        V4      pV'       d‚   VP                  '       dp   \        P2                  ! V\        P4                  ! R4      \        P6                  ! 4       ^ 4      p\9        VVV^4       \        P.                  ! V\        R4      V4       \        P$                  ! V4      p\        P&                  ! W>V4       \        P(                  ! W>^ 4      p\        P:                  ! W2V4       \        P<                  ! VP                  4       V P?                  4        R#   \        P<                  ! TP                  4       i ; i)
zMake a full page duplicate.r¦  r¶  r¥  r;  r€  ó    rS  Nr¨  ) rÎ   r£   r  rÕ  rÃ   r  rú  r  r…  r  r  rÌ   r«  rR  rS  r¬  rö  r  Úpdf_create_objectÚpdf_update_objectr¹  rH  rK  rU  ÚJM_read_contentsÚpdf_add_streamrå  ÚPdfObjr0  rI  r  r5  )r&   r{  r  ra  rv  r:  r=  Ú
old_annotsrG   Ú
new_annotsrg  r±  rý  Úcopy_or  r%  rK  s   &&&              r'   Úfullcopy_pageÚDocument.fullcopy_page_  s¯  € ä˜tÓ$ˆÜ×*Ò*¨CÓ0ˆ
ð0	9Ü˜S ! Z°!¥^×4Ò4Ü# B¨¨J¸­N×;Ò;ä ¤.Ó1Ð1ä×.Ò.´×0IÒ0IÈ3Ó0TÓUˆEä×+Ò+¨UÓ3ˆEÜ×+Ò+¨U´H¸XÓ4FÓGˆJð ×$×$Ñ$Ü×'Ò'¨Ó4�Ü"×0Ò0°#Ó9�
Ü˜qŸ�AÜ×+Ò+¨ZÓ;�AÜ#×0Ò0°!´X¸iÓ5HÓI�GÜ×(Ò(¨'´8¸GÓ3D×EÒEÙ Ü×*Ò*¨A¨uÓ5×@×@Ð@Ù Ü"×4Ò4´e×6PÒ6PÐRSÓ6TÓU�FÜ ×2Ò2°CÓ8�DÜ×+Ò+¨S¸Ô?Ü"×3Ò3°SÀÓB�FÜ×&Ò&¨´¸Ó0AÔBÜ×&Ò&¨´¸³Ô>Ü×(Ò(¨*×=ñ "ô ×"Ò" E¬8°HÓ+=¸zÔJô # EÓ*ˆC÷ �s—~—~�~ä ×/Ò/°´e×6ZÒ6ZÐ\`Ó6aÔch×coÒcoÓcqÐstÓu�Ü  # x°°aÔ8Ü×"Ò" E¬8°JÓ+?ÀÔJô ×*Ò*¨CÓ0ˆDÜ×#Ò# S°Ô6ä×*Ò*¨C°qÓ9ˆEÜ×!Ò! 3¨EÔ2ä×'Ò'¨¯©Ô8à×ÑÖøô ×'Ò'¨¯©Õ8ús   £E5N& ÆDN& Ê*C
N& Î&"Oc               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r†  r1  r
  r  r6   rç  rë  ÚfontdictÚOptDictrs  r´   r,   )rþ  s   "r'   rÿ  rt  —  sL   € ÷ cñ cØðcàðcð ðcð ð	cð
 ðcð ñcr)   c           
     ó  € \        W4      pVfê   Vf(   \        P                  ! W4      w  rgr‰p
RVRVRVRV	RV
/pM-VR,          pVR,          pVR,          pVR,          pVR,          pVR	8X  d   \        R
4      hVR9   d   RpMRpVR9   d   ^ pM VR9   d   ^pMVR9   d   ^pMVR9   d   ^pMRpWÄR&   VR8X  d   \        pMVR8X  d   \
        pMRpWÔR&   W´R&   W.pV P                  P                  V4       M$V^,          pVR,          pVR,          pVR,          pVf   ^ pM\        V4      p\        RV4      pWþ8:  d   V# V^ 8  d+   V P                  WR,          VR,          VR,          Wó4      pMRpWÔR&   WE^&   \        W4       V# )aa  Get list of glyph information of a font.

Notes:
    Must be provided by its XREF number. If we already dealt with the
    font, it will be recorded in doc.FontInfos. Otherwise we insert an
    entry there.
    Finally we return the glyphs for the font. This is a list of
    (glyph, width) where glyph is an integer controlling the char
    appearance, and width is a float controlling the char's spacing:
    width * fontsize is the actual space.
    For 'simple' fonts, glyph == ord(char) will usually be true.
    Exceptions are 'Symbol' and 'ZapfDingbats'. We are providing data for these directly here.
Nr   rÈ   rå  ÚascenderÚ	descenderræ  Úsimpler`   zxref is not a fontTFÚZapfDingbatsÚSymbolÚglyphsré  )ÚType1ÚMMType1ÚTrueType)ÚFangtiÚMing)ÚHeitiÚSong)ÚGothicÚMincho)ÚDotumÚBatangr¨  )ÚCheckFontInfor  Ú_get_font_propertiesrÃ   Úzapf_glyphsÚsymbol_glyphsr­  ro   r9   r'  rõ  ÚUpdateFontInfo)r1  r  rç  rë  r7  Úfontinfor   rå  ÚstypeÚascÚdscræ  r<  r?  Úoldlimitrñ  s   &&&&&           r'   Úget_char_widthsÚDocument.get_char_widths—  sÝ  € ô( ! Ó+ˆØÒØÒÜ-2×-GÒ-GÈÓ-RÑ*�˜5 sà˜DØ˜EØ˜3Ø Ø ð‘ð   Õ'�Ø˜u•o�Ø  Õ(�Ø# JÕ/�Ø! (Õ+�à�bŒyÜ Ð!5Ó6Ð6ð Ð8Ô8Ø‘à�ð Ð)Ô)Ø‘ØÐ*Ô*Ø‘ØÐ-Ô-Ø‘ØÐ,Ô,Ø‘à�à!'�XÑà�~Ô%Ü$‘Ø˜Ô!Ü&‘à�à!'�XÑØ#+�ZÑ ØÐ'ˆHØ�M‰M× Ñ  Õ*à •{ˆHØ˜hÕ'ˆFØ˜hÕ'ˆFØ 
Õ+ˆHàŠ>Ø‰Hä˜6“{ˆHä�c˜5“/ˆàÔØˆMà�aŒ<Ø×)Ñ)Ø˜vÕ&¨°­¸À*Õ9MÈwó‰Fð ˆFà#�ÑØ�‰Ü�sÔ%àˆr)   c                óÒ  € \        V 4      p\        P                  ! \        P                  ! V4      \	        R4      \	        R4      4      pVP
                  '       g   R# VR8X  d"   \        P                  ! V\	        R4      4      pM5\        P                  ! \        P                  ! V\	        R4      4      V4      pVP
                  '       g   \        \        4      h\        V4      pV# )z,Content of ON, OFF, RBGroups of an OC layer.rà  ÚOCPropertiesNrÔ  r}  r¨  )rÎ   r£   r   rä  r  rÌ   r  r¬  rÃ   r‚  ÚJM_get_ocg_arrays)r&   rƒ  ra  rŒ  r  r¦   s   &&    r'   Ú	get_layerÚDocument.get_layerü  s³   € ä˜tÓ$ˆÜ×!Ò!Ü×!Ò! 3Ó'Ü˜Ó Ü˜Ó(óˆð
 �~�~ˆ~ÙØ�RŒ<Ü×$Ò$ c¬8°C«=Ó9‰Cä×%Ò%Ü×&Ò&¨¬X°iÓ-@ÓAØóˆCð �~�~ˆ~ÜÔ/Ó0Ð0Ü Ó$ˆØˆ	r)   c                óü  € \        V 4      p\        P                  ! V4      pV^8X  dg   \        P                  ! \        P                  ! V4      \        R4      \        R4      \        R4      4      p\        P                  ! V4      '       g   ^ p. p\        P                  ! 4       p\        V4       FG  p\        P                  ! WV4       RVRVP                  RVP                  /pVP                  V4       KI  	  V# )zShow optional OC layers.rà  rX  r}  Únumberr   rn  )rÎ   r£   Úpdf_count_layer_configsr   rä  r  rI  ÚPdfLayerConfigrS  Úpdf_layer_config_infor   rn  ro   )r&   ra  rG   r  r¦   r8  rg  rE   s   &       r'   Ú
get_layersÚDocument.get_layers  sÕ   € ä˜tÓ$ˆÜ×)Ò)¨3Ó/ˆØ�Œ6Ü×%Ò%Ü×%Ò% sÓ+Ü˜VÓ$Ü˜^Ó,Ü˜YÓ'ó	ˆCô ×%Ò% s×+Ò+Ø�ØˆÜ×#Ò#Ó%ˆÜ�q–ˆAÜ×'Ò'¨°Ô6à˜aØ˜DŸI™IØ˜tŸ|™|ðˆDð
 �I‰I�tÖñ ð ˆ	r)   c                óÀ   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p^ p\	        V4       \
        P                  ! V4      pV# )zMake new xref.rÞ  )rÂ   r«  rÃ   rÎ   ÚENSURE_OPERATIONr£   r,  )r&   ra  r  s   &  r'   Úget_new_xrefÚDocument.get_new_xref+  sN   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆØˆÜ˜ÔÜ×&Ò& sÓ+ˆØˆr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  r
  r  r6   rs  r,   )rþ  s   "r'   rÿ  rt  5  s!   € ÷ ñ �Jð  cð ¨cñ r)   c                ó4  € V P                   '       g   V P                  '       d   \        R4      hV P                  VR4      w  r#VR8w  g   VR	9  d   \        RV 24      hV P                  VR4      w  r$VR8w  d   ^ # \	        VP                  RR4      4      pV# )
z‚Return optional content object xref for an image or form xobject.

Args:
    xref: (int) xref number of an image or form xobject.
údocument close or encryptedr¶  r   úbad object type at xref r×  r  ú0 Rr`   ©ú/Imageú/Form)rÂ   r«  rÃ   rä  r6   r  )r1  r  rÃ  r   rÙ  r¦   s   &&    r'   rÚ  ÚDocument.get_oc5  s’   € ð �=�=ˆ=˜C×,×,Ð,ÜÐ:Ó;Ð;Ø×"Ñ" 4¨Ó3‰ˆØ�Œ;˜$Ð&9Ô9ÜÐ7¸°vÐ>Ó?Ð?Ø× Ñ   tÓ,‰ˆØ�Œ;ÙÜ�—‘˜E 2Ó&Ó'ˆØˆ	r)   c           	     ó8  € \         P                  ! R4      p\        V 4      p\         P                  ! \         P                  ! \         P
                  ! V4      \        R4      4      \        R4      \        R4      4      p\        4       p\         P                  ! V4      '       g   V# \         P                  ! V4      p\        V4       EFN  p\         P                  ! W64      p\         P                  ! V4      p\         P                  ! \         P                  ! V\        R4      4      4      p	\         P                  ! V\        R4      V\        R4      4      p
RpV
P                  '       d   \         P                  ! V
4      p\!        4       p\         P                  ! V\        R	4      4      pVP                  '       dà   \         P"                  ! V4      '       d'   VP%                  \         P                  ! V4      4       M�\         P                  ! V4      '       d‚   \         P                  ! V4      p\        V4       F\  p\         P                  ! Wß4      p\         P"                  ! V4      '       g   K7  VP%                  \         P                  ! V4      4       K^  	  \&        R8¼  d/   \         P(                  ! 4       p\         P*                  ! VVW·4      pM+\         P*                  ! V\         P,                  ! 4       W·4      pR
V	RVRV'       * RV/pTpVVV&   EKQ  	  V# )z&Show existing optional content groups.rx  rà  rX  r|  r*  rw  r¶  Nrt  r   r„  ro  r…  )r™  é   é   )r£   rå  rÎ   r   r  rä  r  r7   rI  r«  rS  r¬  r  r  rÌ   r„  r´   rô  ro   Úmupdf_version_tupleÚPdfResourceStackÚpdf_is_ocg_hiddenr0  )r&   rÅ  ra  Úocgsr¦   rG   rg  r†  r  r   r  r…  r‡  r„  r‹  rŒ  r±  Úresource_stackÚhiddenrE   r  s   &                    r'   Úget_ocgsÚDocument.get_ocgsF  sM  € ä×Ò Ó/ˆÜ˜tÓ$ˆÜ×"Ò"Ü×"Ò"¤E×$5Ò$5°sÓ$;¼XÀfÓ=MÓNÜ˜Ó(Ü˜Ó óˆô
 ‹VˆÜ×!Ò! 4×(Ò(ØˆIÜ×Ò Ó&ˆÜ�q—ˆAÜ×%Ò% tÓ/ˆCÜ×#Ò# SÓ)ˆDÜ×+Ò+¬U×-?Ò-?ÀÄhÈvÓFVÓ-WÓXˆDÜ×%Ò% s¬H°WÓ,=¸rÄ8ÈIÓCVÓWˆCØˆEØ�~�~ˆ~Ü×)Ò)¨3Ó/�Ü“fˆGÜ×'Ò'¨¬h°xÓ.@ÓAˆFØ× × Ð Ü×$Ò$ f×-Ò-Ø—N‘N¤E×$5Ò$5°vÓ$>Õ?Ü×'Ò'¨×0Ò0Ü×+Ò+¨VÓ4�AÜ" 1žX˜Ü!×/Ò/°Ó;˜Ü ×,Ò,¨a×0Ô0Ø#ŸN™N¬E×,=Ò,=¸qÓ,AÖBñ &ô # kÔ1Ü!&×!7Ò!7Ó!9�Ü×0Ò0°#°~ÀuÓR‘ä×0Ò0°#´u·|²|³~ÀuÓR�à˜DØ˜gØ˜fœ*Ø˜Uð	ˆDð ˆDØˆB�ŒIñ? ð@ ˆ	r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  r
  r  r6   rs  r7   r,   )rþ  s   "r'   rÿ  rt  u  s+   € ÷ AHñ AH�jð AH¨ð AH°ñ AHr)   c                óà  € V\        V P                  4       4      9  d   \        R4      hV P                  VRR7      pRV9  d   \        R4      h\	        V4      pVP                  R4      pVP                  RV4      pV^ 8  g   V^ 8  d   RpMBW$^,           V P                  R	R
4      P                  4       p\        \        \        V4      4      pVP                  R4      pV^ 8  d   RpMOVP                  RV4      pV^ 8  d   VP                  RV4      pV^ 8  d   \        R4      hW$^,           V^,            pVP                  R4      pV^ 8  d   RpMè^ ;ršTpV	^8  g   Wš8w  dK   V^,          pWS8  g   \        R4      hW%,          R8X  d
   V	^,          p	W%,          R8X  g   KL  V
^,          p
KW  W$^,           V^,            pVP                  RR4      P                  RR4      P                  RR4      pVP                  RR4      P                  RR4      P                  RR4      p^ RIp VP                  V4      pRVRVRVR V/#   \         d    \        4        \        RT: 24       h i ; i)!a`  Return the definition of an OCMD (optional content membership dictionary).

Recognizes PDF dict keys /OCGs (PDF array of OCGs), /P (policy string) and
/VE (visibility expression, PDF array). Via string manipulation, this
info is converted to a Python dictionary with keys "xref", "ocgs", "policy"
and "ve" - ready to recycle as input for 'set_ocmd()'.
úbad xrefTr[  ú
/Type/OCMDzbad object typeú/OCGs[r—  Nrk  r³   ú/P/rÊ  ro  zbad object at xrefz/VE[r–  z/Andz"and",z/Notz"not",z/Orz"or",z 0 R]ú 0 Rr   z][z],[zbad /VE key: r  rv  ÚpolicyÚve)rS  Úxref_lengthrÃ   r^  r9   r§   r  r8   r´   r  r6   ÚjsonÚloadsrk   r{   rv   )r1  r  r   ÚtextlenÚp0rJ  rv  r‚  rƒ  ÚlpÚrpr…  s   &&          r'   Úget_ocmdÚDocument.get_ocmdu  sK  € ð ”u˜SŸ_™_Ó.Ó/Ô/Ü˜ZÓ(Ð(Ø�‰˜t°ˆÓ5ˆØ˜tÔ#ÜÐ.Ó/Ð/Ü�d“)ˆà�Y‰Y�xÓ ˆØ�Y‰Y�s˜BÓˆØ�Œ6�R˜!”VØ‰Dà˜Q� Ð$×,Ñ,¨U°CÓ8×>Ñ>Ó@ˆDÜœœC ›Ó'ˆDà�Y‰Y�uÓˆØ�Œ6Ø‰Fà—‘˜4 Ó$ˆBØ�AŒvØ—Y‘Y˜t RÓ(�Ø�AŒvÜ Ð!5Ó6Ð6à 1�f r¨A¥vÐ.�à�Y‰Y�vÓˆØ�Œ6Ø‰BàˆKˆBØˆBØ�q”&˜BœHØ�a•�Ø”|Ü$Ð%9Ó:Ð:Ø•8˜s”?Ø˜!•G�BØ•8˜s–?Ø˜!•G’Bà˜1•f˜r A�vÐ&ˆBà—
‘
˜6 8Ó,ß‘˜ Ó*ß‘˜ Ó(ð ð
 —‘˜G SÓ)×1Ñ1°&¸#Ó>×FÑFÀtÈUÓSˆBÛðØ—Z‘Z “^�ð
 ˜˜f d¨H°f¸dÀBÐGÐGøô	 ô ÜÔ Ü˜-¨¡vÐ.Ô/Øðús   È,I É&I-c                óÂ  € . p\        V ^ R7      pVP                  '       g   V# \        P                  ! \        P                  ! V4      \        R4      4      pVP                  '       g   V# \        P                  ! V\        R4      4      pVP                  '       g   V# \        P                  ! V\        R4      4      pVP                  '       g   V# \        WQ4      pV# )z!Get list of outline xref numbers.rß  rà  rò  ró  )rÎ   rÌ   r£   r  rä  r  rô  )r&   r÷  ra  r¹  rø  rù  s   &     r'   rí  ÚDocument.get_outline_xrefs¸  s°   € àˆÜ˜t¨aÔ0ˆØ�~�~ˆ~ØˆLÜ×!Ò!¤%×"3Ò"3°CÓ"8¼(À6Ó:JÓKˆØ��ˆØˆLÜ×#Ò# D¬(°:Ó*>Ó?ˆØ× × Ð ØˆLÜ×"Ò" 6¬8°GÓ+<Ó=ˆØ××ÐØˆLÜ  Ó.ˆØˆr)   c               ó$   € V ^8„  d   QhRRRRRR/# ©r†  r{  r6   Úfullrè   rs  r´   r,   )rþ  s   "r'   rÿ  rt  Ê  s!   € ÷ ñ  #ð ¨Tð ¸Tñ r)   c                óz  € V P                   '       g   V P                  '       d   \        R4      hV P                  '       g   R# \	        V4      \
        Jd    VP                  pV P                  V^4      pV'       g   V Uu. uF  qDRR NK	  	  up# V#   \         d    \        4        \        R4      hi ; iu upi )z1Retrieve a list of fonts used on a page.
        rÞ  zneed a Page or page numberNr,   r¨  )
rÂ   r«  rÃ   rƒ  rÈ   r6   r]  rk   r{   r   ©r&   r{  r‘  r  rH   s   &&&  r'   Úget_page_fontsÚDocument.get_page_fontsÊ  s¨   € ð �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�{�{ˆ{ØˆIÜ�‹9œCÓð?Ø—j‘j�ð ×Ñ  QÓ'ˆßÙ$'Ó(¡C˜q�c�r“F¡CÑ(Ð(Øˆ
øô ô ?ÜÔ Ü Ð!=Ó>Ð>ð?üò
 )s   ÁB ÂB8Â!B5c               ó$   € V ^8„  d   QhRRRRRR/# r�  r,   )rþ  s   "r'   rÿ  rt  Ü  s!   € ÷ 
ñ 
 3ð 
¨dð 
¸dñ 
r)   c                óò   € V P                   '       g   V P                  '       d   \        R4      hV P                  '       g   R# V P	                  V^4      pV'       g   V Uu. uF  qDRR NK	  	  up# V# u upi )z2Retrieve a list of images used on a page.
        rÞ  Nr,   r¨  ©rÂ   r«  rÃ   rƒ  r   r“  s   &&&  r'   Úget_page_imagesÚDocument.get_page_imagesÜ  sj   € ð �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�{�{ˆ{ØˆIØ×Ñ  QÓ'ˆßÙ$'Ó(¡C˜q�c�r“F¡CÑ(Ð(Øˆ
ùò )s   Á"A4c                ót   € V P                  4        Uu. uF  p\        P                  ! V4      NK  	  up# u upi )z¹Return page label definitions in PDF document.

Returns:
    A list of dictionaries with the following format:
    {'startpage': int, 'prefix': str, 'style': str, 'firstpagenum': int}.
)rþ  r  Ú	rule_dict)r&   rE   s   & r'   Úget_page_labelsÚDocument.get_page_labelsè  s0   € ð 37×2GÑ2GÔ2IÓJÑ2I¨$”—’ Ö%Ñ2IÑJÐJùÒJs   “5c                óü   € . pV'       g   V# V P                  4       pV. 8X  d   V# \        V P                  4       F=  p\        P                  ! WT4      pWa8X  g   K!  VP                  V4       V'       g   K<   V# 	  V# )zêReturn a list of page numbers with the given label.

Args:
    doc: PDF document object (resp. 'self').
    label: (str) label.
    only_one: (bool) stop searching after first hit.
Returns:
    List of page numbers having this label.
)rþ  rS  rv  r  Úget_label_pnoro   )r1  ÚlabelÚonly_onerP  r`  rg  Úplabels   &&&    r'   Úget_page_numbersÚDocument.get_page_numbersò  ss   € ð ˆßØˆNØ×%Ñ%Ó'ˆØ�RŒ<ØˆNÜ�s—~‘~Ö&ˆAÜ×(Ò(¨Ó3ˆFØŽØ—‘˜qÔ!ß‘8ØØˆñ 'ð ˆr)   rî  rï  rð  r  rñ  c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# )r†  r1  r
  r{  r6   rî  r¹   rð  r+  r  r¼   rñ  rè   r¯  rs  ú'Pixmap'r,   )rþ  s   "r'   rÿ  rt    sX   € ÷ !ñ !Øð!àð!ð  ð	!ð #ð!ð ð!ð ð!ð ð!ð ñ!r)   c          	     ób   € Vf   \         pVf   \        pW,          P                  VW4VVVR7      # )a·  Create pixmap of document page by page number.

Notes:
    Convenience function calling page.get_pixmap.
Args:
    pno: (int) page number
    matrix: pymupdf.Matrix for transformation (default: pymupdf.Identity).
    colorspace: (str,pymupdf.Colorspace) rgb, rgb, gray - case ignored, default csRGB.
    clip: (irect-like) restrict rendering to this area.
    alpha: (bool) include alpha channel
    annots: (bool) also render annotations
)rî  rï  rð  r  rñ  r¯  )ÚIdentityrä  rö  )r1  r{  rî  rï  rð  r  rñ  r¯  s   &&$$$$$$r'   Úget_page_pixmapÚDocument.get_page_pixmap  sB   € ð. Š>ÜˆFØÒÜˆJØ�x×"Ñ"ØØØØØð #ó ð 	r)   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# )r†  r1  r
  r{  r6   Úoptionræ  r  r¼   rÐ  ÚOptIntÚtextpageú
'TextPage'rÂ  rè   rs  ú
typing.Anyr,   )rþ  s   "r'   rÿ  rt  /  sb   € ÷ Lñ LØðLàðLð ðLð ð	Lð
 ðLð !ðLð ðLð ñLr)   c                ó4   € W,          P                  W#WFR7      # )zþExtract a document page's text by page number.

Notes:
    Convenience function calling page.get_text().
Args:
    pno: page number
    option: (str) text, words, blocks, html, dict, json, rawdict, xhtml or xml.
Returns:
    output from page.TextPage().
)r  rÐ  rÂ  )r  )r1  r{  r­  r  rÐ  r¯  rÂ  s   &&&&&&&r'   Úget_page_textÚDocument.get_page_text/  s   € ð& �x× Ñ  ¸%Ð ÓKÐKr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r{  r6   rs  r´   r,   )rþ  s   "r'   rÿ  rt  D  s   € ÷ ñ  Sð ¨Tñ r)   c                ó°   € V P                   '       g   V P                  '       d   \        R4      hV P                  '       g   R# V P	                  V^4      pV# )z4Retrieve a list of XObjects used on a page.
        rÞ  r,   r˜  )r&   r{  r  s   && r'   Úget_page_xobjectsÚDocument.get_page_xobjectsD  sI   € ð �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�{�{ˆ{ØˆIØ×Ñ  QÓ'ˆØˆ
r)   c                ó,  € \        V ^ R7      pVP                  '       g   R# \        P                  ! \        P                  ! V4      \        R4      \        R4      \        R4      4      pRpVP                  '       d   \        P                  ! V4      pV# )zGet the /SigFlags value.rß  rà  rá  ÚSigFlagsr¨  )rÎ   rÌ   r£   r   rä  r  r  )r&   ra  ÚsigflagsÚsigflags   &   r'   Úget_sigflagsÚDocument.get_sigflagsN  sz   € ä˜t¨aÔ0ˆØ�~�~ˆ~ØˆIÜ×&Ò&Ü×!Ò! #Ó&Ü˜Ó Ü˜Ó$Ü˜Ó$ó	ˆð ˆØ××ÐÜ×&Ò& xÓ0ˆGØˆr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  r
  r<  rè   rs  r´   r,   )rþ  s   "r'   rÿ  rt  ^  s&   € ÷ 4ñ 4Øð4àð4ð ñ4r)   c                ó  a aa€ V VV3R loS P                   '       d   \        R4      hS P                  4        S P                  pV'       g   . # ^p. pS! W$V4      pS P                  '       d   S'       g   S P                  V4       V# )zëCreate a table of contents.

Args:
    simple: a bool to control output. Returns a list, where each entry consists of outline level, title, page number and link destination (if simple = False). For details see PyMuPDF's documentation.
c                óŒ  <€ V '       Ed:   V P                   P                  '       Ed   V P                  '       d   V P                  pMRpV P                  '       gg   V P                  '       dR   V P
                  R8X  d-   SP                  V P                  4      pV^ ,          ^,           pMV P
                  ^,           pMRpMRpS	'       g,   \        P                  ! V S4      pVP                  W#WV.4       MVP                  W#V.4       V P                  '       d   S! V P                  W^,           4      pV P                  p EKB  V# )zPRecursively follow the outline item chain and record item information in a list.r³   r¨  )rÄ   rÌ   r¨  Úis_externalr  rÖ   Úresolve_linkr  ÚgetLinkDictro   Údownr]  )
ÚolItemr  Úlvlr¨  ÚresolverÖ   Úlinkr1  r—  r<  s
   &&&    €€€r'   r—  Ú!Document.get_toc.<locals>.recurseg  sé   ø€ ç�&˜VŸ[™[×3×3Ñ3Ø—<—<�<Ø"ŸL™L‘Eà�Eà×)×)Ð)Ø—z—z�zØ!Ÿ;™;¨"Ô,Ø&)×&6Ñ&6°v·z±zÓ&B˜GØ#*¨1¥:°¥>™Dà#)§;¡;°¥?™Dà!™à�DçÜ ×,Ò,¨V°SÓ9�DØ—L‘L #¨dÐ!9Õ:à—L‘L #¨dÐ!3Ô4à—;—;�;Ù# F§K¡K°¸a½Ó@�EØŸ™“ØˆLr)   r¾   )rÂ   rÃ   rÈ  Úoutlinerƒ  rÛ  )r1  r<  rÆ  rÇ  r  rÈ  r—  s   ff    @r'   rÄ  ÚDocument.get_toc^  sn   ú€ ÷	ð@ �=�=ˆ=ÜÐ.Ó/Ð/Ø�‰ŒØ—‘ˆßØˆIØˆØˆÙ�f SÓ)ˆØ�:�:ˆ:ŸfØ×!Ñ! #Ô&Øˆ
r)   c                ó:  € Rp\        V ^ R7      pVP                  '       d?   \        P                  ! \        P                  ! V4      \        R4      \        R4      4      pVe6   VP                  '       d$   \        P                  ! V4      p\        V4      pV# RpV# )zGet document XML metadata.Nrß  rà  rº  r`   )rÎ   rÌ   r£   r   rä  r  r"  ÚJM_UnicodeFromBuffer)r&   Úxmlra  r—  r¦   s   &    r'   Úget_xml_metadataÚDocument.get_xml_metadata”  s†   € àˆÜ˜t¨aÔ0ˆØ�>�>ˆ>Ü×%Ò%Ü×%Ò% cÓ*Ü˜VÓ$Ü˜ZÓ(óˆCð
 Š?˜sŸ~Ÿ~˜~Ü×(Ò(¨Ó-ˆDÜ% dÓ+ˆBð ˆ	ð ˆBØˆ	r)   c               ó    € V ^8„  d   QhRRRR/# ©r†  r1  r
  rs  rè   r,   )rþ  s   "r'   rÿ  rt  ¥  s   € ÷ ñ ˜
ð  tñ r)   c                ó^  € V P                   '       d   \        R4      hV P                  '       g   \        R4      h\        V P                  4       FY  pV P                  V4       FA  pV^,          \        P                  8X  d   K!  V^,          \        P                  8X  d   K?    R# 	  K[  	  R# )z0Check whether there are annotations on any page.r¾   r�  TF)	rÂ   rÃ   rƒ  rS  rv  Úpage_annot_xrefsr£   ÚPDF_ANNOT_LINKrT  ©r1  rg  rE   s   &  r'   Ú
has_annotsÚDocument.has_annots¥  s~   € à�=�=ˆ=ÜÐ.Ó/Ð/Ø�z�zˆzÜ˜[Ó)Ð)Ü�s—~‘~Ö&ˆAØ×,Ñ,¨QÖ/�à˜Q�¤5×#7Ñ#7Ö7¸4À½7Äe×F\ÑF\Ö;\Ûó 0ñ 'ñ
 r)   c               ó    € V ^8„  d   QhRRRR/# rÓ  r,   )rþ  s   "r'   rÿ  rt  ²  s   € ÷ 
ñ 
�zð 
 dñ 
r)   c                ó"  € V P                   '       d   \        R4      hV P                  '       g   \        R4      h\        V P                  4       F;  pV P                  V4       F#  pV^,          \        P                  8X  g   K!    R# 	  K=  	  R# )z*Check whether there are links on any page.r¾   r�  TF)rÂ   rÃ   rƒ  rS  rv  rÕ  r£   rÖ  r×  s   &  r'   Ú	has_linksÚDocument.has_links²  sm   € à�=�=ˆ=ÜÐ.Ó/Ð/Ø�z�zˆzÜ˜[Ó)Ð)Ü�s—~‘~Ö&ˆAØ×,Ñ,¨QÖ/�Ø˜•7œe×2Ñ2Ö2Ûó 0ñ 'ñ r)   c                	óŽ  € V P                   '       d   \        R 4      hV P                  4       V n        \	        RRRRRRRRRR	R
RRRRRRRRR/
P                  4        UUu. uF  w  rWP                  V4      3NK  	  upp4      V n        V P                  R4      R8X  d   RMV P                  R4      V P                  R&   R# u uppi )z,cannot initialize - document still encryptedrþ  r¨  z
info:TitleÚauthorzinfo:Authorr«  zinfo:SubjectÚkeywordszinfo:Keywordsrn  zinfo:CreatorÚproducerzinfo:Producerr©  zinfo:CreationDaterª  zinfo:ModDateÚtrappedzinfo:Trappedr  r  N)r«  rÃ   r,  r¨  r7   rD   r  r¬  )r&   rô  rH   s   &  r'   rÈ  ÚDocument.init_doc¾  sÝ   € Ø××ÐÜÐKÓLÐLØ×)Ñ)Ó+ˆŒÜð % XØ# LØ$ ]Ø% nØ& Ø% nØ& Ø*Ð+>Ø% nØ% nð=÷ $™e›gð=&ôñ=&±S°Q˜×,Ñ,¨QÓ/Ó0ñ =&òóˆŒð  /3×.?Ñ.?ÀÓ.MÈvÔ.U¡dÐ[_×[lÑ[lÐmyÓ[zˆ�‰�lÓ#ùós   ÁC
c
                ó¼  € Rp
\        V\        4      '       dG   VP                  P                  ^8”  d   \        \        V4      p\        RVP                  4       4      p
M$\        V\
        4      '       d   Tp
M\        V4      p
V
'       g   \        R4      hV
P                  '       g   V
P                  4       p\        RV4      p
V P                  V
VVVVVVVV	R7	      # )z¿
Insert an arbitrary supported document to an existing PDF.

The infile may be given as a filename, a Document or a Pixmap. Other
parameters - where applicable - equal those of insert_pdf().
NÚpngzbad infile parameterra  )r  r  r  r`  r5  r¯  Úshow_progressÚfinal)r@   rì  rð  rG   rä  rÁ   ÚtobytesrÃ   rƒ  rÉ  Ú
insert_pdf)r&   Úinfiler  r  r  r`  r5  r¯  ræ  rç  r4  Úpdfbytess   &&&&&&&&&&  r'   Úinsert_fileÚDocument.insert_fileÔ  sÈ   € ð" ˆÜ�fœf×%Ò%Ø× Ñ ×"Ñ" QÔ&Ü¤ vÓ.�Ü˜5 &§.¡.Ó"2Ó3‰CÜ˜¤×)Ò)Ø‰Cä˜6Ó"ˆCßÜÐ3Ó4Ð4Ø�z�zˆzØ×)Ñ)Ó+ˆHÜ˜5 (Ó+ˆCØ�‰ØØ#ØØ!ØØØØ+Øð ó 
ð 
	r)   c               ó@   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRRRR/
# )r†  r1  r
  r{  r6   r   ztyping.Union[str, list, None]rÿ   rœ  rˆ  r3  rþ   ræ  r%  rù  rp  rû  rs  r,   )rþ  s   "r'   rÿ  rt  ÿ  sl   € ÷ ñ Øðàðð 0ðð ð	ð
 ðð ðð ðð ðð ðð ñr)   c	           	     ó€   € V P                  WVR7      p	\        V4      '       g   ^ # V	P                  RVVVVVR7      p
V
# )z´Create a new PDF page and insert some text.

Notes:
    Function combining pymupdf.Document.new_page() and pymupdf.Page.insert_text().
    For parameter details see these methods.
)r{  rˆ  r3  )rÿ   rþ   r%  rp  )é2   éH   )Únew_pagerè   rŸ  )r1  r{  r   rÿ   rˆ  r3  rþ   r%  rp  rÖ   r¦   s   &&&&&&&&&  r'   Úinsert_pageÚDocument.insert_pageÿ  sP   € ð" �|‰| ¸ˆ|Ó@ˆÜ�D�zŠzÙØ×ÑØØØØØØð ó 
ˆð ˆ	r)   r  r  r  r`  r5  rr  ræ  rç  Ú_gmapc               ód  € V P                   '       g   V P                  '       d   \        R4      hV P                  VP                  8X  d   \        R4      hTpV^ 8  d   V P                  pV P                  pVP                  pTpTpTp\        V^ 4      p\        VV^,
          4      pV^ 8  d
   V^,
          p\        VV^,
          4      pV^ 8  d   Tp\        WÞ4      p\        V4      T
u;8”  d   ^ 8”  d|   M Mx\        P                  P                  VP                  4      pV'       g   Rp\        P                  P                  V P                  4      pV'       g   Rp\        RV RV R24       VP                  pV P                  P                  VR4      pVf   \        V 4      pWÀP                  V&   \         '       d+   \#        V P$                  VP$                  VVVVVVV
VV4       Ma\'        V 4      p\'        V4      pVP(                  '       d   VP(                  '       g   \+        R4      h\-        V4       \/        VVVVWÕWgW¬4
       V P1                  4        V'       d   V P3                  VVVVR	7       V'       d   V P5                  WVVWÙR
7       V^8X  d   RV P                  V&   R# R# )aM  Insert a page range from another PDF.

Args:
    docsrc: PDF to copy from. Must be different object, but may be same file.
    from_page: (int) first source page to copy, 0-based, default 0.
    to_page: (int) last source page to copy, 0-based, default last page.
    start_at: (int) from_page will become this page number in target.
    rotate: (int) rotate copied pages, default -1 is no change.
    links: (int/bool) whether to also copy links.
    annots: (int/bool) whether to also copy annotations.
    widgets: (int/bool) whether to also copy form fields.
    join_duplicates: (int/bool) join or rename duplicate widget names.
    show_progress: (int) progress message interval, 0 is no messages.
    final: (bool) indicates last insertion from this source PDF.
    _gmap: internal use only

Copy sequence reversed if from_page > to_page.rÞ  z'source and target cannot be same objectz
memory PDFzInserting 'z' at 'rí   Nzsource or target not a PDF)r  r  r  )r  r  r  rr  )rÂ   r«  rÃ   rÆ  rv  r'  Úminr9   rh   r   Úbasenamer   rv   r®  r:   ÚGraftmapr  Úextra_FzDocument_insert_pdfrÄ   rÎ   rÌ   r¿  rd  ÚJM_merge_ranger5  r;  r¤  )r&   Údocsrcr  r  r  r`  r5  r¯  rš  rr  ræ  rç  rõ  r,  ÚoutCountr®  rÃ  rT  ÚinnameÚoutnameÚisrtÚpdfoutÚpdfsrcs   &&$$$$$$$$$$$          r'   ré  ÚDocument.insert_pdf  sY  € ðL �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�>‰>˜V×-Ñ-Ô-ÜÐFÓGÐGØˆØ�Œ6Ø—‘ˆBØ—?‘?ˆØ×$Ñ$ˆð ˆØˆØˆô ��Q‹ZˆÜ��X •\Ó"ˆà�Œ6Ø˜A•ˆBÜ��X •\Ó"ˆà�Œ6ØˆBÜ�Óˆäˆv‹;˜Ö*¨×*Ü—W‘W×%Ñ% f§k¡kÓ2ˆFßØ%�Ü—g‘g×&Ñ& t§y¡yÓ1ˆGßØ&�Ü�k & ¨°¨y¸Ð:Ô;ð ×ÑˆØ—‘×"Ñ" 4¨Ó.ˆØŠ=ä˜T“NˆEØ#(�N‰N˜4Ñ ç‹;ä'Ø—I‘IØ—K‘KØØØØØØØ!ØØõô & dÓ+ˆFÜ% fÓ-ˆFà×$×$Ð$¨F×,=×,=Ð,=ÜÐ!=Ó>Ð>Ü˜VÔ$Ü˜6 6¨2¨r°2¸uÈmÔcð 	×ÑÔßà�N‰N˜6¨R¸ÀbˆNÔIßØ×Ñ˜V°bÀ"ÈrÐÔsØ�AŒ:Ø#'ˆD�N‰N˜4Ó ñ r)   c                	óˆ   € \        V ^ R7      pVP                  '       g   R# \        P                  ! V4      pV'       d   R# R# )rx   rß  FT)rÎ   rÌ   r£   Úpdf_has_unsaved_changes©r&   ra  r$  s   &  r'   Úis_dirtyÚDocument.is_dirty”  s7   € ä˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×)Ò)¨#Ó.ˆßˆtÐ#˜eÐ#r)   c                óp   € \        V ^ R7      pVP                  '       d   \        P                  ! V4      # R# )z)
Check whether we have a linearized PDF.
rß  F)rÎ   rÌ   r£   Úpdf_doc_was_linearizedr—  s   & r'   Úis_fast_webaccessÚDocument.is_fast_webaccessœ  s-   € ô
 ˜t¨aÔ0ˆØ�>�>ˆ>Ü×/Ò/°Ó4Ð4Ùr)   c                óÂ  € \        V ^ R7      pVP                  '       g   R# Rp \        P                  ! \        P                  ! V4      \        P
                  \        P                  \        P                  4      p\        P                  ! V4      '       d   \        P                  ! V4      pT^ 8¼  d   T# R#   \         d    \        '       d   \        4         R# i ; i)z Either False or PDF field count.rß  Fr¨  )rÎ   rÌ   r£   r   rä  ÚPDF_ENUM_NAME_RootÚPDF_ENUM_NAME_AcroFormÚPDF_ENUM_NAME_FieldsrI  r«  rk   r  r{   )r&   ra  rÙ  Úfieldss   &   r'   r„  ÚDocument.is_form_pdf¦  s²   € ô ˜t¨aÔ0ˆØ�~�~ˆ~ÙØˆð	Ü×(Ò(Ü×%Ò% cÓ*Ü×,Ñ,Ü×0Ñ0Ü×.Ñ.ó	ˆFô ×!Ò! &×)Ò)Ü×+Ò+¨FÓ3�ð �AŒ:ØˆLÙøô ô 	ß#Ó#¬Ô(8Úð	ús   ¥B	B9 Â9CÃ
CÃCc                óÊ   € \        V P                  \        P                  4      '       d   R# \        P                  ! V P                  P
                  4      '       d   RpV# RpV# )zCheck for PDF.TF)r@   rÄ   r£   rÆ   Úll_pdf_specificsrÌ   rk  s   & r'   rƒ  ÚDocument.is_pdf½  sS   € ô �d—i‘i¤×!2Ñ!2×3Ò3Ùô
 ×!Ò! $§)¡)×"6Ñ"6×7Ò7ØˆCð ˆ
ð ˆCØˆ
r)   c                óz   € V P                   '       d   \        R4      h\        \        P                  ! V 4      4      # )z Check if document is layoutable.r¾   )rÂ   rÃ   rè   r£   rÄ  r-   s   &r'   Úis_reflowableÚDocument.is_reflowableÌ  s/   € ð �>�>ˆ>ÜÐ.Ó/Ð/Ü”E×3Ò3°DÓ9Ó:Ð:r)   c                óˆ   € \        V ^ R7      pVP                  '       g   R# \        P                  ! V4      pV'       d   R# R# )zCheck whether PDF was repaired.rß  FT)rÎ   rÌ   r£   Úpdf_was_repairedr	  s   &  r'   Úis_repairedÚDocument.is_repairedÓ  s5   € ô ˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×"Ò" 3Ó'ˆßÙÙr)   c                ó  € V P                   '       g   V P                  '       d   \        R4      h^ p^ p\        V 4      p\        P
                  ! V4      p\        P                  ! V4      pR\        V4      R\        V4      /# )z(Show if undo and / or redo are possible.rÞ  ÚundoÚredo)rÂ   r«  rÃ   rÎ   r£   Úpdf_can_undoÚpdf_can_redorè   )r&   r	  r	  ra  s   &   r'   Újournal_can_doÚDocument.journal_can_doÞ  sm   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ØˆØˆÜ˜tÓ$ˆÜ×!Ò! #Ó&ˆÜ×!Ò! #Ó&ˆØœ˜T›
 F¬D°«JÐ7Ð7r)   c                ó¦   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4       R# )zActivate document journalling.rÞ  N)rÂ   r«  rÃ   rÎ   r£   Úpdf_enable_journalr—  s   & r'   Újournal_enableÚDocument.journal_enableé  s:   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ× Ò  Ö%r)   c                óÎ   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      pVP                  ;'       d    VP                  P
                  pV# )z Check if journalling is enabled.rÞ  )rÂ   r«  rÃ   rÎ   rÌ   Újournal)r&   ra  Úenableds   &  r'   Újournal_is_enabledÚDocument.journal_is_enabledð  sL   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆØ—.‘.×;Ð; S§^¡^×%;Ñ%;ˆØˆr)   c                óž  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\	        V\
        4      '       d   \        P                  ! W!4       M7\        V4      p\        P                  ! V4      p\        P                  ! W$4       VP                  P                  '       g   \        R\        4       R# R# )zLoad a journal from a file.rÞ  z!Journal and document do not matchN)rÂ   r«  rÃ   rÎ   r@   ræ  r£   Úpdf_load_journalr.  r¢  Úpdf_deserialise_journalrÌ   r)	  rÁ  rÂ  )r&   rj   ra  r%  Ústms   &&   r'   Újournal_loadÚDocument.journal_loadø  s�   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ�h¤×$Ò$Ü×"Ò" 3Õ1ä$ XÓ.ˆCÜ×&Ò& sÓ+ˆCÜ×)Ò)¨#Ô3Ø�~‰~×%×%Ð%ÜÐ8Ô:NÖOñ &r)   c                ó¦   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! W!4      pV# )z#Show operation name for given step.rÞ  )rÂ   r«  rÃ   rÎ   r£   Úpdf_undoredo_step)r&   rˆ  ra  r   s   &&  r'   Újournal_op_nameÚDocument.journal_op_name  sA   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×&Ò& sÓ1ˆØˆr)   c                ó°   € V P                   '       g   V P                  '       d   \        R4      h^ p\        V 4      p\        P
                  ! V4      w  r1W13# )zShow journalling state.rÞ  )rÂ   r«  rÃ   rÎ   r£   Úpdf_undoredo_state)r&   Ústepsra  r¦   s   &   r'   Újournal_positionÚDocument.journal_position  sK   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ØˆÜ˜tÓ$ˆÜ×,Ò,¨SÓ1‰	ˆØˆyÐr)   c                ó¦   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4       R# )zMove forward in the journal.rÞ  T)rÂ   r«  rÃ   rÎ   r£   Úpdf_redor—  s   & r'   Újournal_redoÚDocument.journal_redo  ó;   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ�Š�sÔÙr)   c                ó8  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\	        V\
        4      '       d   \        P                  ! W!4       R# \        V4      p\        P                  ! W#4       VP                  4        R# )zSave journal to a file.rÞ  N)rÂ   r«  rÃ   rÎ   r@   ræ  r£   Úpdf_save_journalÚJM_new_output_fileptrÚpdf_write_journalÚfz_close_output)r&   rj   ra  Úouts   &&  r'   Újournal_saveÚDocument.journal_save  sk   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ�h¤×$Ò$Ü×"Ò" 3Ö1ä'¨Ó1ˆCÜ×#Ò# CÔ-Ø×ÑÖ!r)   c                ó4  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      pVP                  P
                  '       g   \        R4      hV'       d   \        P                  ! W!4       R# \        P                  ! V4       R# )zBegin a journalling operation.rÞ  zJournalling not enabledN)
rÂ   r«  rÃ   rÎ   rÌ   r)	  rÞ   r£   Úpdf_begin_operationÚpdf_begin_implicit_operation)r&   r   ra  s   && r'   Újournal_start_opÚDocument.journal_start_op+  sg   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆØ�~‰~×%×%Ð%ÜÐ 9Ó:Ð:ßÜ×%Ò% cÖ0ä×.Ò.¨sÖ3r)   c                ó¦   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4       R# )zEnd a journalling operation.rÞ  N)rÂ   r«  rÃ   rÎ   r£   Úpdf_end_operationr—  s   & r'   Újournal_stop_opÚDocument.journal_stop_op7  s:   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×Ò Ö$r)   c                ó¦   € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4       R# )zMove backwards in the journal.rÞ  T)rÂ   r«  rÃ   rÎ   r£   Úpdf_undor—  s   & r'   Újournal_undoÚDocument.journal_undo>  r@	  r)   c                óÊ   € \        V ^ R7      pVP                  '       g   R# \        P                  ! V4      pV\        P                  8X  d   R# \        P
                  ! V4      # )zDocument language.rß  N)rÎ   rÌ   r£   Úpdf_document_languagerF  rD  )r&   ra  rH  s   &  r'   rI  ÚDocument.languageF  sN   € ô ˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ×*Ò*¨3Ó/ˆØ”5×&Ñ&Ô&ÙÜ×2Ò2°4Ó8Ð8r)   c                ó¬   € V P                   '       d   \        R4      h\        P                  ! V P                  4      pVP
                  VP                  3# )z Id (chapter, page) of last page.r¾   )rÂ   rÃ   r£   Úfz_last_pagerÄ   rz  rÖ   )r&   Úlast_locs   & r'   Úlast_locationÚDocument.last_locationQ  sB   € ð �>�>ˆ>ÜÐ.Ó/Ð/Ü×%Ò% d§i¡iÓ0ˆØ×Ñ §¡Ð.Ð.r)   c                óª  € \        V 4      p\        P                  ! 4       p\        P                  ! V4      p. p\	        V4       F‹  p\        P
                  ! WV4       VP                  ^8X  d   RpMVP                  ^8X  d   RpMRpRVRVP                  RVP                  RVRVP                  R	VP                  /pVP                  V4       K�  	  V# )
z-Show OC visibility status modifiable by user.ÚcheckboxÚradioboxr¡  r]  r   ÚdepthrÈ   ro  Úlocked)rÎ   r£   ÚPdfLayerConfigUiÚpdf_count_layer_config_uirS  Úpdf_layer_config_ui_inforÈ   r   ra	  Úselectedrb	  ro   )r&   ra  r8  rG   r¦   rg  rb  rE   s   &       r'   Úlayer_ui_configsÚDocument.layer_ui_configsY  s»   € ä˜tÓ$ˆÜ×%Ò%Ó'ˆÜ×+Ò+¨SÓ1ˆØˆÜ�q–ˆAÜ×*Ò*¨C°DÔ9Ø�y‰y˜AŒ~Ø"‘Ø—‘˜a”Ø"‘à�à˜aØ˜DŸI™IØ˜TŸZ™ZØ˜EØ˜$Ÿ-™-Ø˜dŸk™kðˆDð �I‰I�dŽOñ! ð" ˆ	r)   c                ó"  € V P                   '       g   V P                  '       d   \        R4      hV P                  p\        P
                  ! V4      '       g   R# TpTp\        V4      p\        P                  ! V4      '       g;   VP                  VP                  ,
          pVP                  VP                  ,
          pVR8:  g   VR8:  d   \        R4      h\        P                  ! WVWt4       V P                  4        V P                  4        R# )z Re-layout a reflowable document.rÞ  NrÓ  zbad page size)rÂ   r«  rÃ   rÄ   r£   rÄ  r  rç  r´  rµ  r¶  r·  rÃ  r5  rÈ  )	r&   rü   rˆ  r3  rÿ   r1  r   r"  r$  s	   &&&&&    r'   ÚlayoutÚDocument.layoutr  sÃ   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�i‰iˆÜ×.Ò.°×4Ò4ÙØˆØˆÜ˜DÓ!ˆÜ×(Ò(¨×+Ò+Ø—‘�q—t‘t•ˆAØ—‘�q—t‘t•ˆAØ�Œ8�q˜C”xÜ˜oÓ.Ð.Ü× Ò  #¨!Ô6à×ÑÔØ�‰Žr)   c                óX  € V P                   '       g   V P                  '       d   \        R4      hVf   ^ pW9  d   \        R4      h\        V4      \        J d%   V^ 8  d   V P
                  pV^ 8  d   W,          pK  \        V\        4      '       d#   \        P                  ! V P                  V4      pM%Vw  rE\        P                  ! V P                  WE4      p\        W04      pRVn        Wn        W`P                  \        V4      &   \         P"                  ! 4       Vn        Wn        V# )zŒLoad a page.

'page_id' is either a 0-based page number or a tuple (chapter, pno),
with chapter number and page number within that chapter.
rÞ  zpage not in documentT)rÂ   r«  rÃ   rÈ   r6   rv  r@   r£   Úfz_load_pagerÄ   Úfz_load_chapter_pagerÒ   rõ   rì   r²  rY  r  r±  rX  r]  )r&   Úpage_idÚnprÖ   rz  Úpagenumr  s   &&     r'   r¥  ÚDocument.load_page†  sê   € ð �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<ØŠ?ØˆGØÔÜÐ3Ó4Ð4Ü�‹=œCÓ G¨a¤KØ—‘ˆBØ˜A”+Ø•’Ü�gœs×#Ò#Ü×%Ò% d§i¡i°Ó9‰Dà&ÑˆGÜ×-Ò-¨d¯i©i¸ÓJˆDÜ�4ÓˆàˆŒØŒ
Ø#&�‰œ˜3›Ñ Ü!×5Ò5Ó7ˆŒØŒ
Øˆ
r)   c                óV  € V P                   '       d   \        R4      hV P                  p\        P                  ! RR4      p\        P
                  ! V4      pV^ 8  d   W,          pK  W8¼  d   \        \        4      h\        P                  ! W!4      pVP                  VP                  3# )zConvert pno to (chapter, page).r¾   r¨  )
rÂ   rÃ   rÄ   r£   Úfz_make_locationr  r  Úfz_location_from_page_numberrz  rÖ   )r&   r{  Úthis_docry  rv  s   &&   r'   Úlocation_from_page_numberÚ"Document.location_from_page_number¤  s…   € à�>�>ˆ>ÜÐ.Ó/Ð/Ø—9‘9ˆÜ×$Ò$ R¨Ó,ˆÜ×)Ò)¨(Ó3ˆ
Ø�AŒgØÕŠCØÔÜœnÓ-Ð-Ü×0Ò0°Ó?ˆØ�{‰{˜CŸH™HÐ$Ð$r)   c                óþ   € V P                   '       g   V P                  '       d   \        R4      h\        P                  ! V!  p\        P
                  ! V P                  P                  VP                  4       4      pV# )z.Make a page pointer before layouting document.rÞ  )	rÂ   r«  rÃ   r£   Ú
FzLocationÚll_fz_make_bookmark2rÄ   rÌ   r  )r&   ry  Úmarks   && r'   Úmake_bookmarkÚDocument.make_bookmark²  sY   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü×Ò Ñ$ˆÜ×)Ò)¨4¯9©9×+?Ñ+?ÀÇÁÃÓPˆØˆr)   c               ó   € V ^8„  d   QhRR/# ©r†  rs  r7   r,   )rþ  s   "r'   rÿ  rt  »  s   € ÷ ñ ˜$ñ r)   c                ój  € V P                  4       pV^ 8X  d   R# V P                  VR4      pV^ ,          R8X  d   / # V^ ,          R8X  d<   \        V^,          P                  4       ^ ,          4      pV P	                  VRR7      pMV^ ,          R8X  d   V^,          pMRpVe   VR,          R	8X  d   VRR R
8X  g   / # RRRRRR/pV^R P                  R4      pVR,           F#  p VP                  4       w  rgTR8X  g   K  RYF&   K%  	  V#   \
         d    \        ^8”  d   \        4        Tu u # i ; i)zReturn the PDF MarkInfo value.NÚMarkInforñ  r  Tr[  r7   r…  ú<<ú>>ÚMarkedFÚUserPropertiesÚSuspectsÚ/ºr™  NNÚtruer  )r]  rä  r6   r8   r^  rk   r  r{   )r&   r  r¦   r  ÚvalidrH   r�  r¸   s   &       r'   ÚmarkinfoÚDocument.markinfoº  s4  € ð ×ÑÓ!ˆØ�1Œ9ÙØ×Ñ˜t ZÓ0ˆØˆa�5�FŒ?ØˆIØˆa�5�FŒ?Ü�r˜!•u—{‘{“} QÕ'Ó(ˆDØ×"Ñ" 4°DÐ"Ó9‰CØ��U�fŒ_Ø�Q•%‰CàˆCØŠ;˜s 2�w¨$œ°3°r°s°8¸tÔ3CØˆIØ˜5Ð"2°E¸:ÀuÐMˆØ�!�Bˆi�o‰o˜cÓ"ˆØ�R—�ˆAðØŸW™W›Y‘
�ð ˜ŽØ!�“
ñ ð ˆøô ô Ü'¨!Ô+´Ô0@Ø”ðús   Ã&DÄ"D2Ä1D2c               ó    € V ^8„  d   QhRRRR/# r³  r,   )rþ  s   "r'   rÿ  rt  Ø  s   € ÷ ;ñ ;˜Sð ; cñ ;r)   c                óú   € V P                   '       d   \        R4      h\        V 4      pV\        V4      9  g   V\        RV4      9  d   \        R4      h^p^ pVR8X  d   V^,
          p^ pV P	                  WWE4      # )z�Move a page within a PDF document.

Args:
    pno: source page number.
    to: put before this page, '-1' means after last page.
r¾   r‚  r¨  rµ  r¶  s   &&&   r'   Ú	move_pageÚDocument.move_pageØ  s{   € ð �>�>ˆ>ÜÐ.Ó/Ð/Ü˜“Yˆ
Ø”u˜ZÓ(Ô(¨B´e¸BÀ
Ó6KÔ,KÜÐ1Ó2Ð2ØˆØˆØ�Œ8Ø˜a•ˆBØˆFà×#Ñ# C¨VÓ:Ð:r)   c                	ó   € V P                   # r+   rD  r-   s   &r'   r   ÚDocument.nameì  s   € à�z‰zÐr)   c                óê  € V P                   '       g   R# \        V 4      pRpRp\        P                  ! \        P                  ! V4      R4      p\        P
                  ! WT4      p\        P                  ! V4      '       d   \        P                  ! V4      pV'       d'   \        P                  ! WT\        P                  4       M%\        P                  ! WT\        P                  4       Vf   V^ 8¬  # V# )z"Get/set the NeedAppearances value.NÚNeedAppearancesrz  r¨  )r„  rÎ   r£   r|  rä  r  Úpdf_is_boolÚpdf_to_boolr°  ÚPDF_TRUEÚ	PDF_FALSE)r&   r¸   ra  ÚoldvalÚappkeyÚformÚapps   &&     r'   Úneed_appearancesÚDocument.need_appearancesð  s¸   € à××ÐÙä˜tÓ$ˆØˆØ"ˆä×"Ò"Ü×!Ò! #Ó&Øóˆô ×!Ò! $Ó/ˆÜ×Ò˜S×!Ò!Ü×&Ò& sÓ+ˆFßÜ×Ò ¬e¯n©nÕ=ä×Ò ¬e¯o©oÔ>ØŠ=Ø˜Q‘;ÐØˆr)   c                ó  € V P                   '       d   \        R4      h\        V P                  \        P
                  4      '       d   V P                  MV P                  P                  4       p\        P                  ! V4      pV# )zIndicate password required.r¾   )rÂ   rÃ   r@   rÄ   r£   rÅ   rÇ   Úfz_needs_password)r&   rÉ   rI   s   &  r'   rÇ  ÚDocument.needs_pass  sZ   € ð �>�>ˆ>ÜÐ.Ó/Ð/Ü *¨4¯9©9´e×6FÑ6F× GÒ G�4—9’9ÈTÏYÉYÏ_É_ÓM^ˆÜ×%Ò% xÓ0ˆØˆ
r)   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r†  r1  r
  r{  r6   rˆ  rœ  r3  rs  rÒ   r,   )rþ  s   "r'   rÿ  rt    s:   € ÷ ñ Øðàðð ðð ð	ð
 ñr)   c                ó8   € V P                  WVR7       W,          # )a   Create and return a new page object.

Args:
    pno: (int) insert before this page. Default: after last page.
    width: (float) page width in points. Default: 595 (ISO A4 width).
    height: (float) page height in points. Default 842 (ISO A4 height).
Returns:
    A pymupdf.Page object.
©rˆ  r3  )rD  )r1  r{  rˆ  r3  s   &&&&r'   rò  ÚDocument.new_page  s   € ð 	�‰�S¨fˆÔ5Ø�xˆr)   c                ó  € V P                   '       g   V P                  '       d   \        R4      h\        V4      \        J d   ^ V3pW9  d   \        R4      h\        V4      V P                  8X  d   R# \        V 4      pV^ ,          p\        V\        4      '       g   \        \        \        4       TpV^,          pTp\        P                  ! WE4      p\        P                  ! W&4      pVP                  VP                   3# )z!Get (chapter, page) of next page.rÞ  úpage id not in documentr,   )rÂ   r«  rÃ   rÈ   r6   rµ   r\	  rÊ   r@   rÁ  ÚMSG_BAD_PAGEIDÚPyExc_ValueErrorr£   rt	  Úfz_next_pagerz  rÖ   )r&   ro	  rv	  r  rz  r{  ry  Únext_locs   &&      r'   Únext_locationÚDocument.next_location#  sÓ   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü�‹=œCÓØ˜'�lˆGØÔÜÐ6Ó7Ð7Ü�‹>˜T×/Ñ/Ô/ØˆIÜ" 4Ó(ˆØ�q�kˆÜ˜#œs×#Ò#Ü”NÔ$4Ô5ØˆØ�q�kˆØˆÜ×$Ò$ WÓ2ˆÜ×%Ò% xÓ5ˆØ×Ñ §¡Ð.Ð.r)   c                	óò  € \         '       d"   \        P                  ! V P                  V4      # \	        V P                  \
        P                  4      '       d.   \
        P                  ! V P                  4      pV P                  pM+\
        P                  ! V P                  4      p\        V 4      pV^ 8  d   W,          pK  W8”  d   \        \        4      h\
        P                  ! W14      p\        V4      pV# ru  )r  r   rÕ  rÄ   r@   r£   rÆ   r  r  rÎ   rÃ   r  r  ÚJM_get_annot_xref_list)r&   rG   rv  rÏ  rL  r¯  s   &&    r'   rÕ  ÚDocument.page_annot_xrefs8  s­   € ß‹;Ü×)Ò)¨4¯9©9°aÓ8Ð8ä�d—i‘i¤×!2Ñ!2×3Ò3Ü×.Ò.¨t¯y©yÓ9ˆJØŸ9™9‰Lä×-Ò-¨d¯i©iÓ8ˆJÜ+¨DÓ1ˆLØ�!ŒeØ�OŠAØŒ>ÜœnÓ-Ð-Ü×,Ò,¨\Ó=ˆÜ'¨Ó1ˆØˆr)   c                óJ  € V P                   '       d   \        R4      h\        '       d   V P                  V 4      # \	        V P
                  \        P                  4      '       d!   \        P                  ! V P
                  4      # \        P                  ! V P
                  4      # )zNumber of pages.r¾   )
rÂ   rÃ   r  rË  r@   rÄ   r£   rÅ   r  r  r-   s   &r'   rv  ÚDocument.page_countJ  sp   € ð �>�>ˆ>ÜÐ.Ó/Ð/ß‹;Ø×#Ñ# DÓ)Ð)Ü�t—y‘y¤%×"2Ñ"2×3Ò3Ü×'Ò'¨¯©Ó3Ð3ä×(Ò(¨$¯)©)Ó4Ð4r)   c                óX  € V P                   '       d   \        R4      hV P                  p\        P                  ! V4      pTpV^ 8  d   WC,          pK  \        V 4      pWC8¼  d   \        \        4      h\        P                  ! WT4      p\        V4      p\        V4      p\        V4      pV# )z2Get CropBox of page number (without loading page).r¾   )rÂ   rÃ   rÄ   r£   r  rÎ   r  r  Ú
JM_cropboxrp  r+  )	r&   r{  rv	  rv  rG   ra  r  Úcropboxr  s	   &&       r'   Úpage_cropboxÚDocument.page_cropboxV  s�   € à�>�>ˆ>ÜÐ.Ó/Ð/Ø—9‘9ˆÜ×)Ò)¨8Ó4ˆ
ØˆØ�!ŒeØ�OŠAÜ˜tÓ$ˆØŒ?ÜœnÓ-Ð-Ü×+Ò+¨SÓ4ˆÜ˜WÓ%ˆÜ˜gÓ&ˆä�3‹iˆàˆ
r)   c                ó  € \        V4      \        J d"   V P                  pV^ 8  d   W,          pK  ^ V3pW9  d   \        R4      hVw  r4\        P
                  ! W44      p\        P                  ! V P                  V4      pV# )z&Convert (chapter, pno) to page number.r¨	  )rÈ   r6   rv  rÃ   r£   rt	  Úfz_page_number_from_locationrÄ   )r&   ro	  rp	  rz  r{  ry  Úpage_ns   &&     r'   Úpage_number_from_locationÚ"Document.page_number_from_locationj  sr   € ä�‹=œCÓØ—‘ˆBØ˜A”+Ø•’Ø˜'�lˆGØÔÜÐ6Ó7Ð7Ø‰ˆÜ×$Ò$ gÓ3ˆÜ×3Ò3°T·Y±YÀÓDˆØˆr)   c                ó˜  € \         '       d"   \        P                  ! V P                  V4      # V P                  '       d   \        R4      h\        P                  ! V P                  4      pTpV^ 8  d   W2,          pK  \        V 4      p^ pW28¼  d   \        \        4      h\        P                  ! \        P                  ! WC4      4      pV# )zGet xref of page number.r¾   )r  r   r(  rÄ   rÂ   rÃ   r£   r  rÎ   r  r  r  )r&   r{  rv  rG   ra  r  s   &&    r'   r(  ÚDocument.page_xrefx  s—   € ç‹;Ü—?’? D§I¡I¨sÓ3Ð3Ø�>�>ˆ>ÜÐ.Ó/Ð/Ü×)Ò)¨$¯)©)Ó4ˆ
ØˆØ�!ŒeØ�OŠAÜ˜tÓ$ˆØˆØŒ?ÜœnÓ-Ð-Ü×Ò¤× 9Ò 9¸#Ó AÓBˆØˆr)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rt  Š  s   € ÷ ñ ˜Cñ r)   c                ó¸   € V P                  4       pV^ 8X  d   R# V P                  VR4      pV^ ,          R8X  d   R# V^ ,          R8X  d   V^,          R,          # R# )z)Return the PDF PageLayout value.
        NÚ
PageLayoutrñ  Ú
SinglePager   r‰	  ©r]  rä  ©r&   r  r¦   s   &  r'   Ú
pagelayoutÚDocument.pagelayout‰  sX   € ð ×ÑÓ!ˆØ�1Œ9ÙØ×Ñ˜t \Ó2ˆØˆa�5�FŒ?ÙØˆa�5�FŒ?Ø�a•5˜•9ÐÙr)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rt  ˜  s   € ÷ ñ ˜#ñ r)   c                ó¸   € V P                  4       pV^ 8X  d   R# V P                  VR4      pV^ ,          R8X  d   R# V^ ,          R8X  d   V^,          R,          # R# )z'Return the PDF PageMode value.
        NÚPageModerñ  ÚUseNoner   r‰	  rÄ	  rÅ	  s   &  r'   ÚpagemodeÚDocument.pagemode—  sX   € ð ×ÑÓ!ˆØ�1Œ9ÙØ×Ñ˜t ZÓ0ˆØˆa�5�FŒ?ÙØˆa�5�FŒ?Ø�a•5˜•9ÐÙr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rÇ  r®  r‡  rˆ  rs  zcollections.abc.Iterable[Page]r,   )rþ  s   "r'   rÿ  rt  ¥  s)   € ÷ (ñ (˜6ð (¨vð (À6ð (ÐTrñ (r)   c              #  ó   "  € V P                   '       g   R# T;'       g    ^ pV^ 8  d   WP                   ,          pK  V\        V P                   4      9  d   \        R4      hVe   W P                   8:  d   TMV P                   pV^ 8X  d   \        R4      hVf   W8”  d   RpM^p\        WV4       F  pV P                  V4      x € K  	  R# 5i)zmReturn a generator iterator over a page range.

Arguments have the same meaning as for the range() built-in.
Nzbad start page numberzarg 3 must not be zeror¨  )rv  rS  rÃ   r¥  )r&   rÇ  r‡  rˆ  r{  s   &&&& r'   rX  ÚDocument.pages¥  s²   é € ð
 ��ˆÙà—
�
˜ˆØ�aŒiØ—_‘_Õ$ŠEØœ˜dŸo™oÓ.Ô.ÜÐ4Ó5Ð5ð Ò'¨D·O±OÔ,C‰tÈÏÉˆð �1Œ9ÜÐ5Ó6Ð6ØŠ<ØŒ|Ø‘à�ä˜ dÖ+ˆCØ—>‘> #Ó&Ô'ó ,ùs   ‚C B.Cc                óà   € \        V ^ R7      p^ pVP                  '       g   V# \        P                  ! \        P                  ! V4      \        R4      4      p\        P                  ! V4      pV# )zGet xref of PDF catalog.rß  rà  )rÎ   rÌ   r£   r  rä  r  r  )r&   ra  r  r¹  s   &   r'   r]  ÚDocument.pdf_catalogÂ  sX   € ä˜t¨aÔ0ˆØˆØ�~�~ˆ~ØˆKÜ×!Ò!¤%×"3Ò"3°CÓ"8¼(À6Ó:JÓKˆÜ×Ò Ó%ˆØˆr)   c                ó(   € V P                  RWR7      # )zGet PDF trailer as a string.)r\  r™  r¨  )r^  )r&   r\  r™  s   &&&r'   rä  ÚDocument.pdf_trailerÌ  s   € à×Ñ ¨zÐÓGÐGr)   c                óÖ  € V P                   '       d   ^ # V P                  p\        P                  ! V4      pVP                  '       d   \        P
                  ! V4      # Rp\        P                  ! V\        P                  4      '       g   V\        P                  ,          p\        P                  ! V\        P                  4      '       g   V\        P                  ,          p\        P                  ! V\        P                  4      '       g   V\        P                  ,          p\        P                  ! V\        P                  4      '       g   V\        P                  ,          pV# )zDocument permissions.l   üÿ )r«  rÄ   r£   r{  rÌ   Úpdf_document_permissionsÚfz_has_permissionÚFZ_PERMISSION_PRINTÚPDF_PERM_PRINTÚFZ_PERMISSION_EDITÚPDF_PERM_MODIFYÚFZ_PERMISSION_COPYÚPDF_PERM_COPYÚFZ_PERMISSION_ANNOTATEÚPDF_PERM_ANNOTATE)r&   r1  ra  Úperms   &   r'   r  ÚDocument.permissionsÐ  sø   € ð ××ÐÙØ�Y‰YˆÜ×1Ò1°#Ó6ˆð �>�>ˆ>Ü×1Ò1°#Ó6Ð6ð ˆä×&Ò& s¬E×,EÑ,E×FÒFØœ%×.Ñ.Õ.ˆDÜ×&Ò& s¬E×,DÑ,D×EÒEØœ%×/Ñ/Õ/ˆDÜ×&Ò& s¬E×,DÑ,D×EÒEØœ%×-Ñ-Õ-ˆDÜ×&Ò& s¬E×,HÑ,H×IÒIØœ%×1Ñ1Õ1ˆDØˆr)   c                óh  € V P                   '       g   V P                  '       d   \        R4      h\        V4      \        J d   ^ V3pW9  d   \        R4      hVR8X  d   R# Vw  r#\
        P                  ! W#4      p\
        P                  ! V P                  V4      pVP                  VP                  3# )z%Get (chapter, page) of previous page.rÞ  r¨	  ©rx   rx   r,   )rÂ   r«  rÃ   rÈ   r6   r£   rt	  Úfz_previous_pagerÄ   rz  rÖ   )r&   ro	  rz  r{  ry  Úprev_locs   &&    r'   Úprev_locationÚDocument.prev_locationé  sš   € ð �>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü�‹=œCÓØ˜'�lˆGØÔÜÐ6Ó7Ð7Ø�vÔØˆIØ‰ˆÜ×$Ò$ WÓ2ˆÜ×)Ò)¨$¯)©)°SÓ9ˆØ×Ñ §¡Ð.Ð.r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rÖ   rÒ   rs  r,   )rþ  s   "r'   rÿ  rt  ù  s   € ÷ 9ñ 9 ð 9¨ñ 9r)   c                ó:  € / pVP                   pVP                  P                  4        F	  w  rEWRV&   K  	  VP                  P                  P
                  pVP                  P                  4       pRVn        VP                  4        Rp\        P                  ^d4       V P                  V4      pVP                  4        F  w  rEW$,          pW�P                  V&   K  	  V^8X  d    V# VP                  P                  4       p	W—8w  g   Q RV: RVR RV	R 24       hV# )zMake a fresh copy of a page.Nz	refs_old=z m_internal_old=z#xz m_internal_new=)r]  rX  rD   rÄ   rÌ   ÚrefsrW  rö   r  Ústore_shrinkr¥  )
r&   rÖ   r1  r{  rô  rH   Úrefs_oldÚm_internal_oldrß   Úm_internal_news
   &&        r'   Úreload_pageÚDocument.reload_pageù  s  € àˆ
Ø�k‰kˆØ×$Ñ$×*Ñ*Ö,‰DˆAØ�q‹Mñ -ð6 —9‘9×'Ñ'×,Ñ,ˆØŸ™×3Ñ3Ó5ˆàˆŒ	Ø�‰ŒØˆÜ×Ñ˜3ÔØ�~‰~˜cÓ"ˆð ×$Ñ$Ö&‰DˆAØ•MˆEà"'×Ñ˜QÓñ 'ð �qŒ=ð
 ð ˆð "ŸY™Y×7Ñ7Ó9ˆNØ!Ô3ð MØ �x‘kÐ!2 >°2Ð"6Ð6G¸ÈÐ7KÐLóMÐ3àˆr)   c                ót   € \        V RR7      pVP                  '       d   \        P                  ! V4       R# R# )z(
If we are a PDF document, does repair.
Frß  N)rÎ   rÌ   r£   Úpdf_check_documentr—  s   & r'   ÚrepairÚDocument.repair4  s,   € ô ˜t¨eÔ4ˆØ�>�>ˆ>Ü×$Ò$ SÖ)ñ r)   c                ól  € V'       g   V'       d   R# R#  \         P                  ! V P                  V4      w  r4pT'       d   TP                  TP                  3YE3# \         P                  ! T P                  T4      pYdT3#   \         d(    \        '       d   \        4        T'       d   Ru # Ru # i ; i)a  Calculate internal link destination.

Args:
    uri: (str) some Link.uri
    chapters: (bool) whether to use (chapter, page) format
Returns:
    (page_id, x, y) where x, y are point coordinates on the page.
    page_id is either page number (if chapters=0), or (chapter, pno).
)©r¨  r¨  rx   rx   )r¨  rx   rx   )	r£   Úfz_resolve_linkrÄ   rk   r  r{   rz  rÖ   rº	  )r&   r  r¥  ry  ÚxpÚypr{  s   &&&    r'   rÃ  ÚDocument.resolve_link<  s›   € ÷ ßØ%Ð%ØˆOð	Ü×/Ò/°·	±	¸3Ó?‰KˆC�R÷ Ø—K‘K §¡Ð*¨BÐ2Ð2Ü×0Ò0°·±¸CÓ@ˆØ˜ˆ{Ðøô ô 	ß#Ó#¬Ô(8ßØ%Ò%ØŠOð		ús#   –$B ÂB3ÂB3Â*B3Â.B3Â2B3c                ó˜  € \        V4      pV'       g   ^ ;rV^ 8”  d   W!8¼  d   \        R4      h\        P                  ! 4       p\	        \        V4      4      pV
'       Eg{   \        P                  ! 4       pV'       d=   \        P                  Vn        \        P                  Vn	        W.n
        W¾n        Wn        V'       d‰   V'       d=   \        P                  Vn        \        P                  Vn        W.n        Wn        W¾n        V'       d=   \        P                  Vn        \        P                  Vn        Wn        W.n        W¾n        V'       d‰   V'       d=   \        P                  Vn        \        P                  Vn        W.n        Wn        W¾n        V'       d=   \        P                  Vn        \        P                  Vn        Wn        W.n         W¾n!        MT
p\	        \        V4      4      pWý,
          pV'       d   \        RV 24      hV	'       d   V PE                  ^4       \G        V 4      p\        PH                  ! VV4       R# )a­  Rewrite images in a PDF document.

The typical use case is to reduce the size of the PDF by recompressing
images. Default parameters will convert all images to JPEG where
possible, using the specified resolutions and quality. Exclude
undesired images by setting parameters to False.
Args:
    dpi_threshold: look at images with a larger DPI only.
    dpi_target: change eligible images to this DPI.
    quality: Quality of the recompressed images (0-100).
    lossy: process lossy image types (e.g. JPEG).
    lossless: process lossless image types (e.g. PNG).
    bitonal: process black-and-white images (e.g. FAX)
    color: process colored images.
    gray: process gray images.
    set_to_gray: whether to change the PDF to gray at process start.
    options: (PdfImageRewriterOptions) Custom options for image
            rewriting (optional). Expert use only. If provided, other
            parameters are ignored, except set_to_gray.
z0{dpi_target=} must be less than {dpi_threshold=}zInvalid options: N)%ræ  rÃ   r£   ÚPdfImageRewriterOptionsrÁ  r¶  ÚFZ_RECOMPRESS_FAXÚbitonal_image_recompress_methodÚFZ_SUBSAMPLE_AVERAGEÚbitonal_image_subsample_methodÚbitonal_image_subsample_toÚ bitonal_image_recompress_qualityÚ!bitonal_image_subsample_thresholdÚFZ_RECOMPRESS_JPEGÚ&color_lossless_image_recompress_methodÚ%color_lossless_image_subsample_methodÚ!color_lossless_image_subsample_toÚ(color_lossless_image_subsample_thresholdÚ'color_lossless_image_recompress_qualityÚ#color_lossy_image_recompress_methodÚ"color_lossy_image_subsample_methodÚ%color_lossy_image_subsample_thresholdÚcolor_lossy_image_subsample_toÚ$color_lossy_image_recompress_qualityÚ%gray_lossless_image_recompress_methodÚ$gray_lossless_image_subsample_methodÚ gray_lossless_image_subsample_toÚ'gray_lossless_image_subsample_thresholdÚ&gray_lossless_image_recompress_qualityÚ"gray_lossy_image_recompress_methodÚ!gray_lossy_image_subsample_methodÚ$gray_lossy_image_subsample_thresholdÚgray_lossy_image_subsample_toÚ#gray_lossy_image_recompress_qualityÚrecolorrÎ   Úpdf_rewrite_images)r&   Údpi_thresholdÚ
dpi_targetÚqualityÚlossyÚlosslessÚbitonalrp  rà  Úset_to_grayr!  Úquality_strÚtemplate_optsÚdir1rU  Údir2Úinvalid_optionsra  s   &&&&&&&&&&&       r'   Úrewrite_imagesÚDocument.rewrite_imagesV  sµ  € ôB ˜'“lˆßØ)*Ð*ˆMØ˜Œ>˜jÔ9ÜÐOÓPÐPÜ×5Ò5Ó7ˆÜ”3�}Ó%Ó&ˆßˆwÜ×0Ò0Ó2ˆDßÜ7<×7NÑ7N�Ô4Ü6;×6PÑ6P�Ô3Ø2<Ô/Ø8CÔ5Ø9FÔ6ßßÜBG×BZÑBZ�DÔ?ÜAF×A[ÑA[�DÔ>Ø=GÔ:ØDQÔAØCNÔ@ßÜ?D×?WÑ?W�DÔ<Ü>C×>XÑ>X�DÔ;ØANÔ>Ø:DÔ7Ø@KÔ=ßßÜAF×AYÑAY�DÔ>Ü@E×@ZÑ@Z�DÔ=Ø<FÔ9ØCPÔ@ØBMÔ?ßÜ>C×>VÑ>V�DÔ;Ü=B×=WÑ=W�DÔ:Ø@MÔ=Ø9CÔ6Ø?JÔ<øàˆDä”3�t“9‹~ˆØ�+ˆßÜÐ0°Ð0AÐBÓCÐCçØ�L‰L˜ŒOÜ˜tÓ$ˆÜ× Ò   dÖ+r)   c                ó¸   € V P                   '       g   \        R4      h\        V P                  4       F#  pV P	                  V4      P                  V4       K%  	  R# )z©Change the color component count on all pages.

Args:
    components: (int) desired color component count, one of 1, 3, 4.

Invokes the same-named method for all pages.
r�  N)rƒ  rÃ   rS  rv  r¥  r
  )r&   Ú
componentsrg  s   && r'   r
  ÚDocument.recolor­  sB   € ð �{�{ˆ{Ü˜[Ó)Ð)Ü�t—‘Ö'ˆAØ�N‰N˜1Ó×%Ñ% jÖ1ó (r)   c                óh  a	a
a€ \        V R4      '       d   V P                  # \        V P                  4       Uu/ uF  qP	                  V4      VbK  	  upoR o
V
V3R lo	V	3R lp\
        P                  ! V 4      p\
        P                  ! \
        P                  ! V4      R4      p/ p\
        P                  ! R4      p\
        P                  ! WF4      pVP                  4       '       d	   V! WW4       \
        P                  ! W64      pVP                  4       '       d	   V! WX4       WPn        V# u upi )aÎ  Convert the PDF's destination names into a Python dict.

The only parameter is the pymupdf.Document.
All names found in the catalog under keys "/Dests" and "/Names/Dests" are
being included.

Returns:
    A dcitionary with the following layout:
    - key: (str) the name
    - value: (dict) with the following layout:
        * "page":  target page number (0-based). If no page number found -1.
        * "to": (x, y) target point on page - currently in PDF coordinates,
                i.e. point (0,0) is the bottom-left of the page.
        * "zoom": (float) the zoom factor
        * "dest": (str) only occurs if the target location on the page has
                not been provided as "/XYZ" or if no page number was found.
    Examples:
    {'__bookmark_1': {'page': 0, 'to': (0.0, 541.0), 'zoom': 0.0},
    '__bookmark_2': {'page': 0, 'to': (0.0, 481.45), 'zoom': 0.0}}

    or

    '21154a7c20684ceb91f9c9adc3b677c40': {'page': -1, 'dest': '/XYZ 15.75 1486 0'}, ...
Ú_resolved_namesc                óÀ   € \         P                  ! R4      p\         P                  ! V4      p\         P                  ! W ^^ 4       VP	                  4        \        V4      # )z1Return string version of a PDF object definition.é   )r£   Úfz_new_bufferÚFzOutputÚpdf_print_objrE	  rÎ  )r  ÚbufferÚoutputs   &  r'   Ú
obj_stringÚ*Document.resolve_names.<locals>.obj_stringØ  sI   € ä×(Ò(¨Ó-ˆFÜ—^’^ FÓ+ˆFÜ×Ò ¨Q°Ô2Ø×"Ñ"Ô$Ü'¨Ó/Ð/r)   c                ó‚  <€ RRRR/pV P                  4       '       d   \        P                  ! V 4      p V P                  4       '       d
   S! V 4      pM6V P	                  4       '       d   S! \        P
                  ! V R4      4      pMV# VP                  RR4      ^R pVP                  R4      pV^8  d   W!R&   V# VRV P                  4       pW#R pW!R&   VP                  R	4      '       dx   VR VP                  4       R
,          p\        V4      ^8  d   VP                  R4       K#  \        \        \        V4      4      pV^ ,          V^,          3VR&   V^,          VR&   VP!                  R4      '       d6   SP#                  \%        VP                  4       ^ ,          4      R4      VR&   V# \%        V4      VR&   V# )z3Generate value of one item of the names dictionary.rÖ   Údestr`   rÔ  rñ  r   rˆ	  Nz/XYZ:r™  rš  Nr  r  rk  r¨  )Úpdf_is_indirectr£   rú  rI  r…  r  r  r§   Ústripr5   r8   r9   ro   r´   r  rœ  r  r:   r6   )	r  Ú
templ_dictÚarrayrë  ÚsubvalÚ
array_listrÃ  r5
  Ú
page_xrefss	   &      €€r'   Ú	get_arrayÚ)Document.resolve_names.<locals>.get_arrayà  s¨  ø€ à  " f¨bÐ1ˆJØ×"Ñ"×$Ò$Ü×0Ò0°Ó5�Ø×Ñ×!Ò!Ù" 3›‘Ø—‘×"Ò"Ù"¤5×#6Ò#6°s¸CÓ#@ÓA‘à!Ð!ð —M‘M &¨#Ó.¨q°Ð4ˆEð —*‘*˜S“/ˆCØ�QŒwØ%*˜6Ñ"Ø!Ð!à˜4˜C�[×&Ñ&Ó(ˆFØ˜$�KˆEØ!&�vÑð ×Ñ ×'Ò'Ø˜vÐ&ð #Ÿ[™[›]¨3Õ/�
ô ˜*“o¨Ô)Ø×%Ñ% cÖ*ô œœU JÓ/Ó0�Ø$% a¥D¨!¨A­$ <�
˜4Ñ Ø%& q¥T�
˜6Ñ"ð �‰˜u×%Ò%Ø%/§^¡^´C¸¿¹»ÀqÕ8IÓ4JÈ2Ó%N�
˜6Ñ"ð Ðô &)¨£[�
˜6Ñ"ØÐr)   c                óH  <€ \         P                  ! V4      p\        V4       F{  p\         P                  ! W4      p\         P                  ! W4      pVP                  4       '       d   VP                  4       pM\        RV R24       RpV'       g   Kq  S! V4      W&   K}  	  R# )zaGenerate name resolution items for pdf_dict.

This may be either "/Names/Dests" or just "/Dests"
zkey z is no /NameN)r£   r†  rS  rˆ  r‡  rô  r„  rv   )Ú	dest_dictÚpdf_dictÚ
name_countrg  r�  r  Údict_keyr@
  s   &&     €r'   Ú	fill_dictÚ)Document.resolve_names.<locals>.fill_dict  s†   ø€ ô ×+Ò+¨HÓ5ˆJô ˜:Ö&�Ü×,Ò,¨XÓ9�Ü×,Ò,¨XÓ9�Ø—?‘?×$Ò$Ø"Ÿ™Ó0‘Hä˜d 1 # \Ð2Ô3Ø#�Hç‘8Ù*3°C«.�IÓ'ó 'r)   rà  ÚDests)r=   r-
  rS  rv  r(  r£   r{  r  rä  rå  r  r…  Úpdf_load_name_tree)r&   rg  rG
  ra  ÚcatalogrC
  ÚdestsÚ	old_destsr°  r@
  r5
  r?
  s   &        @@@r'   Úresolve_namesÚDocument.resolve_namesº  s  ú€ ô2 �4Ð*×+Ò+Ø×'Ñ'Ð'ä49¸$¿/¹/Ô4JÓKÑ4J¨q—n‘n QÓ'¨Ò*Ñ4JÑKˆ
ò	0ö.	õ`	9ô, ×1Ò1°$Ó7ˆô ×%Ò%¤e×&7Ò&7¸Ó&<¸fÓEˆàˆ	ô ×"Ò" 7Ó+ˆô ×&Ò& wÓ6ˆ	Ø× Ñ ×"Ò"Ù�iÔ+ô ×'Ò'¨Ó3ˆØ×Ñ×ÒÙ�iÔ&à(ÔØÐùòK Ls   ¹D/c                	ó2  € V P                   p V P                  '       g   V P                  '       d   \        R 4      h\	        V4      \
        J d   MZ\        VR4      '       d   \        V4      pM<\        VR4      '       d   VP                  pM\        VR4      '       g   \        R4      hWP                  8X  d   V'       g   \        R4      hV
'       d   V'       d   \        R4      hV P                  ^8  d   \        R4      hV'       d/   V P                  V8w  g   V P                  '       d   \        R4      hV'       d   \        V4      ^(8”  g   V'       d   \        V4      ^(8”  d   \        R	4      h\        V 4      p\        P                  ! 4       pVVn        VVn        VVn        VVn        VVn        V	Vn        VVn        VVn        V
Vn        VVn        VVn        VVn        VVn        VVn        VVn        Ve   VP;                  V4       MVe   VP;                  V4       Ve   VP=                  V4       VVn        VVn         VVn!        R
p^ VPD                  n#        \I        V4       V^ 8X  d   \K        V4       \M        V\
        4      '       d   \        PN                  ! VVV4       M3\Q        V4      p\        PR                  ! VVV4       VPU                  4        V'       d*   V P                   '       d   V'       g   \W        R4      hR
# R
# R
# )rÞ  r<   r   Úseekú)filename must be str, Path or file objectz$save to original must be incrementalz3'linear' and 'use_objstms' cannot both be requestedzcannot save with zero pageszincremental needs original filez"password length must not exceed 40NzDocument save did a repair),r	  rÂ   r«  rÃ   rÈ   ræ  r=   r   rv  r   r9   rÎ   r£   ÚPdfWriteOptionsÚdo_incrementalÚdo_asciiÚdo_compressÚdo_compress_imagesÚdo_compress_fontsÚdo_decompressÚ
do_garbageÚ	do_prettyÚ	do_linearÚdo_cleanÚdo_sanitizeÚdont_regenerate_idÚdo_appearanceÚ
do_encryptr  Úopwd_utf8_set_valueÚupwd_utf8_set_valueÚdo_preserve_metadataÚdo_use_objstmsr   rÌ   rX  ÚJM_embedded_cleanÚJM_ensure_identityr@   Úpdf_save_documentrC	  Úpdf_write_documentrE	  rk   )r&   rj   r  r  r  r  r  r  r™  r  r  r  Ú
appearancer  r  r  r  r  r  r  r   r!  Úis_repaired_prera  rU  rF	  s   &&&&&&&&&&&&&&&&&&&&&&    r'   r"  ÚDocument.save=  sˆ  € ð4 ×*Ñ*ˆØ=Ø�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü�‹>œSÓ ØÜ�X˜v×&Ò&Ü˜8“}‰HÜ�X˜v×&Ò&Ø—}‘}‰HÜ˜ 6×*Ò*ÜÐHÓIÐIØ—y‘yÔ ¯ÜÐCÓDÐDß—kÜÐRÓSÐSØ�?‰?˜QÔÜÐ:Ó;Ð;ßØ�y‰y˜HÔ$¨¯¯¨Ü Ð!BÓCÐCß”s˜7“| bÔ(¯H¼¸X»ÈÔ9KÜÐAÓBÐBä˜tÓ$ˆÜ×$Ò$Ó&ˆØ)ˆÔØˆŒØ"ˆÔØ"0ˆÔØ!.ˆÔØ#ˆÔØ!ˆŒØˆŒØˆŒØˆŒØ ˆÔØ"+ˆÔØ'ˆÔØ$ˆŒØ&ˆÔØÒØ×$Ñ$ XÕ.ØÒ Ø×$Ñ$ WÔ-ØÒØ×$Ñ$ WÔ-Ø$5ˆÔ!Ø)ˆÔØ"4ˆÔàˆØ*+ˆ�‰Ô'Ü˜#ÔØ˜Œ>Ü˜sÔ#Ü�h¤×$Ò$ä×#Ò# C¨°4Õ8ä'¨Ó1ˆCä×$Ò$ S¨#¨tÔ4Ø×ÑÔ!ßØ××Ð¯ÜÐ"<Ó>Ð>ñ )8Ññ r)   c                óp  € V P                   '       d   \        R4      h\        V4      \        J d   MH\	        VR4      '       d   \        V4      pM*\	        VR4      '       d   VP
                  pM\        R4      hWP
                  8X  d   \        R4      h\        V 4      p\        P                  ! W!4       R# )z.Save a file snapshot suitable for journalling.zdoc is closedr<   r   rR
  zcannot snapshot to originalN)	rÂ   rÃ   rÈ   ræ  r=   r   rÎ   r£   Úpdf_save_snapshot)r&   rj   ra  s   && r'   Úsave_snapshotÚDocument.save_snapshot›  s‹   € à�>�>ˆ>Ü˜_Ó-Ð-Ü�‹>œSÓ ØÜ�X˜v×&Ò&Ü˜8“}‰HÜ�X˜v×&Ò&Ø—}‘}‰HäÐHÓIÐIØ—y‘yÔ ÜÐ:Ó;Ð;Ü˜tÓ$ˆÜ×Ò Ö.r)   c                óZ   € V P                  V P                  R\        P                  R7      # )zSave PDF incrementallyT)r  r  )r"  r   r£   ÚPDF_ENCRYPT_KEEPr-   s   &r'   ÚsaveIncrÚDocument.saveIncr¬  s!   € à�y‰y˜Ÿ™°Ä×AWÑAWˆyÓXÐXr)   c               óT   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRRRRRRRRRRRR/# )r†  r1  r
  Úattached_filesrè   Úclean_pagesÚembedded_filesÚhidden_textÚ
javascriptr¬  Ú
redactionsÚredact_imagesr6   Úremove_linksÚreset_fieldsÚreset_responsesÚ
thumbnailsÚxml_metadatars  r  r,   )rþ  s   "r'   rÿ  rt  ´  s¯   € ÷ Y;ñ Y;ØðY;à ðY;ð ðY;ð !ð	Y;ð
 ðY;ð ðY;ð ðY;ð ðY;ð ðY;ð ðY;ð ðY;ð "ðY;ð ðY;ð ðY;ð ñY;r)   c                	ó2  € R  pV P                   '       g   \        R4      hV P                  '       g   V P                  '       d   \        R4      hV'       g   RpRpV'       d   V P	                  / 4       V  EF6  pV
'       d(   VP                  4        F  pVP                  4        K  	  V	'       d+   VP                  4       pV F  pVP                  V4       K  	  RpVP                  4        F…  pVP                  ^ ,          \        P                  8X  d   V'       d   VP                  RR7       V'       d   VP                  4        VP                  ^ ,          \        P                  8X  g   Kƒ  RpK‡  	  V'       d   V'       d   VP!                  VR7       V'       g   V'       g   EK5  VP#                  4        VP%                  4       '       g   EK^  V'       d~   VP%                  4       p\'        V4      ^8X  g   Q hV^ ,          pV P)                  V4      pV! VP+                  4       4      pV'       d$   RP-                  V4      pV P/                  VV4       V'       g   EKî  V P1                  VP2                  R	4      ^ ,          R
8w  g   EK  V P5                  VP2                  R	R
4       EK9  	  V'       d)   V P7                  4        F  pV P9                  V4       K  	  V'       d   V P;                  4        V'       g   V'       g   ^ pMV P=                  4       p\?        ^V4       Fê  pV PA                  V4      '       g   RV R2p\        V4      hV'       d5   V P1                  VR4      ^,          R8X  d   RpV PC                  VV4       Kg  V'       g   Kq  V P1                  VR4      ^,          R8X  d)   V PC                  VR4       V P/                  VRRR7       K·  V P1                  VR4      ^ ,          R
8w  g   K×  V P5                  VRR
4       Kì  	  R# )c                óž  € . pRpRpRpV  F´  pVR8X  d   RpVP                  V4       K  VR8X  d   RpVP                  V4       K;  VR8X  d   RpRpKH  VR
R R8X  d$   V^ ,          R8w  d   RpVP                  V4       Ku  VR	8X  d   RpVP                  V4       K‘  V'       d   V'       d   K£  VP                  V4       K¶  	  V'       d   V# R# )a  Remove hidden text from a PDF page.

Args:
    cont_lines: list of lines with /Contents content. Should have status
        from after page.cleanContents().

Returns:
    List of /Contents lines from which hidden text has been removed.

Notes:
    The input must have been created after the page's /Contents object(s)
    have been cleaned with page.cleanContents(). This ensures a standard
    formatting: one command per line, single spaces between operators.
    This allows for drastic simplification of this code.
Fs   BTTs   ETs   3 TrNs   Tró   3ó   Qr  ©ro   )Ú
cont_linesÚ	out_linesÚin_textÚsuppressÚmake_returnrs   s   &     r'   Úremove_hiddenÚ%Document.scrub.<locals>.remove_hiddenÅ  sß   € ð  ˆIØˆGØˆHØˆKÛ"�Ø˜5”=Ø"�GØ×$Ñ$ TÔ*ÙØ˜5”=Ø#�GØ×$Ñ$ TÔ*ÙØ˜7”?Ø#�HØ"&�KÙØ˜˜�9 Ô%¨$¨q­'°T¬/Ø$�HØ×$Ñ$ TÔ*ÙØ˜4”<Ø$�HØ×$Ñ$ TÔ*Ùß§ÙØ× Ñ  Ö&ñ/ #÷0 Ø Ð ár)   r�  zclosed or encrypted docFr+  )r4  T)Úimagesr  ÚThumbrñ  z	bad xref z - clean PDF before scrubbingÚSz/JavaScriptz<</S/JavaScript/JS()>>r  z	/Metadataú<<>>s   deleted)r\  rº  N)"rƒ  rÃ   r«  rÂ   Úset_metadatarš  Úresetr)  Údelete_linkr¯  rÈ   r£   rL  rY  r³  r  Úapply_redactionsrŸ  Úget_contentsr9   Úxref_streamr  r  Úupdate_streamrä  r  r›  r²  rÛ  r»  r„  rS  r^  r_  )r1  rv
  rw
  rx
  ry
  rz
  r¬  r{
  r|
  r}
  r~
  r
  r€
  r�
  rŒ
  rÖ   r\  r5  rÉ  Úfound_redactsrß   r÷  r  r¬  r‡
  r   Ú
xref_limitrž   r  s   &&&&&&&&&&&&&&               r'   ÚscrubÚDocument.scrub´  s$  € ò"/	ðb �z�zˆzÜ˜[Ó)Ð)Ø××Ð˜sŸ}Ÿ}˜}ÜÐ6Ó7Ð7çØˆKØˆJçØ×Ñ˜RÔ äˆDßà"Ÿl™lžn�FØ—L‘L–Nñ -÷ ØŸ™Ó(�Û!�DØ×$Ñ$ TÖ*ñ "ð "ˆMØŸ™ž�Ø—:‘:˜a•=¤E×$CÑ$CÔCÏØ×%Ñ%¨dÐ%Ô3ß"Ø×*Ñ*Ô,Ø—:‘:˜a•=¤E×$:Ñ$:Ö:Ø$(’Mñ '÷ ŸmØ×%Ñ%¨]Ð%Ô;ç§;Úà×ÑÔ!Ø×$Ñ$×&Ò&ÚßØ×)Ñ)Ó+�Ü˜5“z Q”Ð&�Ø˜Q•x�Ø—‘ tÓ,�Ù*¨4¯?©?Ó+<Ó=�
ßØ Ÿ:™: jÓ1�DØ×%Ñ% d¨DÔ1çŠzØ×#Ñ# D§I¡I¨wÓ7¸Õ:¸f×DØ×$Ñ$ T§Y¡Y°¸×@ñS ÷Z Ø×)Ñ)Ö+�Ø—‘ Ö%ñ ,÷ Ø× Ñ Ô"ß§
Ø‰JàŸ™Ó*ˆJÜ˜!˜ZÖ(ˆDØ—?‘? 4×(Ò(Ø! $ Ð'DÐE�Ü  “oÐ%ß˜c×.Ñ.¨t°SÓ9¸!Õ<ÀÔMà.�Ø×!Ñ! $¨Ô,ÙçÙà×Ñ  fÓ-¨aÕ0°KÔ?à×!Ñ! $¨Ô/Ø×!Ñ! $¨
¸Ð!Ô=Ùà×Ñ  jÓ1°!Õ4¸Ö>Ø× Ñ   z°6Ö:ó) )r)   c               ó8   € V ^8„  d   QhRRRRRRRRR	R
RRRRRR/# )r†  r1  r
  r{  r6   r   ræ  Úquadsrè   r  r¼   rÐ  r¯  r°  rs  r´   r,   )rþ  s   "r'   rÿ  rt  O  sX   € ÷ "
ñ "
Øð"
àð"
ð ð"
ð ð	"
ð
 ð"
ð ð"
ð !ð"
ð ñ"
r)   c                óž   € Vf/   ^ \         ,          \        ,          \        ,          \        ,          pW,          P	                  VVVVVR7      # )ai  Search for a string on a page.

Args:
    pno: page number
    text: string to be searched for
    clip: restrict search to this rectangle
    quads: (bool) return quads instead of rectangles
    flags: bit switches, default: join hyphened words
    textpage: reuse a prepared textpage
Returns:
    a list of rectangles or quads, each containing an occurrence.
)rž
  r  rÐ  r¯  )ÚTEXT_DEHYPHENATEÚTEXT_PRESERVE_LIGATURESÚTEXT_PRESERVE_WHITESPACEÚTEXT_MEDIABOX_CLIPÚ
search_for)r1  r{  r   rž
  r  rÐ  r¯  s   &&&&&&&r'   Úsearch_page_forÚDocument.search_page_forO  s]   € ð* Š=ØÜ&õ'ä-õ.ô /õ/ô )õ	)ˆEð �x×"Ñ"ØØØØØð #ó 
ð 	
r)   c                óö  € V P                   '       g   V P                  '       d   \        R4      hV P                  '       g   \        R4      h\	        VR4      '       g   \        R4      h\        \        V 4      4      p\        V4      ^ 8X  g!   \        V4      V9  g   \        V4      V9  d   \        R4      h\        V 4      p\        P                  ! W1\        P                  4       V P                  4        R# )z,Build sub-pdf with page numbers in the list.rÞ  r�  rŒ  zsequence requiredr‚  N)rÂ   r«  rÃ   rƒ  r=   rS  r9   r÷  r'  rÎ   r£   Úpdf_rearrange_pages2ÚPDF_CLEAN_STRUCTURE_KEEPr5  )r&   ÚpylisteÚvalid_rangera  s   &&  r'   ÚselectÚDocument.selects  s¿   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø�{�{ˆ{Ü˜[Ó)Ð)Ü�w ×.Ò.ÜÐ0Ó1Ð1äœC ›IÓ&ˆÜ�‹L˜AÔÜ�7‹| ;Ô.Ü�7‹| ;Ô.äÐ1Ó2Ð2ô ˜tÓ$ˆô
 	×"Ò" 3´×1OÑ1OÔPð 	×ÑÖr)   c                	ó¦   € \        V 4      pV'       g   \        P                  pM\        P                  ! V4      p\        P                  ! W#4       R # r%  )rÎ   r£   rF  rÁ  Úpdf_set_document_language)r&   rI  ra  rH  s   &&  r'   rÃ  ÚDocument.set_languageŽ  s;   € Ü˜tÓ$ˆßÜ×&Ñ&‰Dä×5Ò5°hÓ?ˆDÜ×'Ò'¨Ô2Ùr)   c                óÎ  € V P                   '       d   \        R4      h\        V P                  4       P	                  4       4      pV\        4       8X  d   \        R4      hV'       d]   \        V4      \        \        39  d   \        R4      h\        V4      P                  V4      pV\        4       8w  d   \        RV 24      hV'       d]   \        V4      \        \        39  d   \        R4      h\        V4      P                  V4      pV\        4       8w  d   \        RV 24      hV'       d]   \        V4      \        \        39  d   \        R4      h\        V4      P                  V4      pV\        4       8w  d   \        RV 24      hV'       d�   \        V4      \        \        39  d   \        R	4      hV Fc  p	\        V	4      \        \        39   g   \        R
V	 R24      h\        V	4      P                  V4      pV\        4       8w  g   KW  \        RV 24      h	  V'       d5   \        V4      P                  4       pVR8X  d   RpVR9  d   \        R4      h\        V 4      p
\        P                  ! \        P                  ! V
4      \        R4      \        R4      4      pVP                   '       g   R# VR8X  d"   \        P"                  ! V\        R4      4      pM5\        P$                  ! \        P"                  ! V\        R4      4      V4      pVP                   '       g   \        \&        4      h\)        WÂW4WV4       \        P*                  ! V
P                   4       R# )z5Set the PDF keys /ON, /OFF, /RBGroups of an OC layer.r¾   z document has no optional contentzbad type: 'on'zbad OCGs in 'on': zbad type: 'off'zbad OCGs in 'off': zbad type: 'locked'zbad OCGs in 'locked': zbad type: 'rbgroups'zbad RBGroup 'rí   zbad OCGs in RBGroup: Ú	UNCHANGEDÚ	Unchangedzbad 'basestate'rà  rX  NrÔ  r}  )r  r€  r³
  r¨  )rÂ   rÃ   rÁ  ry  rˆ  rÈ   r´   rµ   Ú
differenceræ  ÚupperrÎ   r£   r   rä  r  rÌ   r  r¬  r‚  ÚJM_set_ocg_arraysrm  )r&   rƒ  Ú	basestatero  ÚoffÚrbgroupsrb	  rv  rŸ  ri  ra  rŒ  r  s   &&&&&&&      r'   Ú	set_layerÚDocument.set_layer—  s¨  € à�>�>ˆ>ÜÐ.Ó/Ð/Ü�4—=‘=“?×'Ñ'Ó)Ó*ˆØ”3“5Œ=ÜÐ?Ó@Ð@çÜ�B‹x¤¤e˜}Ô,Ü Ð!1Ó2Ð2Ü�B“×"Ñ" 4Ó(ˆAØ”C“EŒzÜ Ð#5°a°SÐ!9Ó:Ð:çÜ�C‹y¤¤u Ô-Ü Ð!2Ó3Ð3Ü�C“×#Ñ# DÓ)ˆAØ”C“EŒzÜ Ð#6°q°cÐ!:Ó;Ð;çÜ�F‹|¤D¬% =Ô0Ü Ð!5Ó6Ð6Ü�F“×&Ñ& tÓ,ˆAØ”C“EŒzÜ Ð#9¸!¸Ð!=Ó>Ð>çÜ�H‹~¤d¬E ]Ô2Ü Ð!7Ó8Ð8Û�Ü˜A“w¤4¬ -Ô/Ü$ }°Q°C°qÐ%9Ó:Ð:Ü˜“F×%Ñ% dÓ+�Øœ›–:Ü$Ð'<¸Q¸CÐ%@ÓAÐAñ ÷ Ü˜I›×,Ñ,Ó.ˆIØ˜KÔ'Ø'�	ØÐ :Ô:Ü Ð!2Ó3Ð3Ü˜tÓ$ˆÜ×!Ò!Ü×!Ò! 3Ó'Ü˜Ó Ü˜Ó(óˆð
 �~�~ˆ~ÙØ�RŒ<Ü×$Ò$ c¬8°C«=Ó9‰Cä×%Ò%Ü×&Ò&¨¬X°iÓ-@ÓAØóˆCð �~�~ˆ~ÜÔ/Ó0Ð0Ü˜3¨2°HÔEÜ×Ò˜sŸ~™~Ö.r)   c                ó¢  € \        V\        4      '       dU   V P                  4        Uu. uF  q3R,          V8X  g   K  VR,          NK  	  ppV. 8X  d   \        RV R24      hV^ ,          p\	        V 4      pV^8X  d   \
        P                  ! WQ4       R# V^8X  d   \
        P                  ! WQ4       R# \
        P                  ! WQ4       R# u upi )z$Set / unset OC intent configuration.r   r]  z	bad OCG 'r‡  N)	r@   ræ  rg	  rÃ   rÎ   r£   Úpdf_toggle_layer_config_uiÚpdf_deselect_layer_config_uiÚpdf_select_layer_config_ui)r&   r]  re  Úuir¬
  ra  s   &&&   r'   Úset_layer_ui_configÚDocument.set_layer_ui_configØ  s®   € ô �fœc×"Ò"Ø-1×-BÑ-BÔ-DÓ]Ñ-D rÈ6Í
ÐV\ÑH\”l�b˜—l�lÑ-DˆFÐ]Ø˜Œ|Ü  9¨V¨H°BÐ!7Ó8Ð8Ø˜A•YˆFÜ˜tÓ$ˆØ�QŒ;Ü×,Ò,¨SÖ9Ø�qŒ[Ü×.Ò.¨sÖ;ä×,Ò,¨SÖ9ùò ^s
   ©C½Cc               ó    € V ^8„  d   QhRRRR/# )r†  rŒ	  r7   rs  rè   r,   )rþ  s   "r'   rÿ  rt  é  s   € ÷ ñ  Tð ¨dñ r)   c                ó¬  € V P                  4       pV^ 8X  d   \        R4      hV'       d   \        V\        4      '       g   R# RRRRRR/p\	        VP                  4       4      P                  VP                  4       4      '       gE   R\	        VP                  4       4      P                  VP                  4       4       2p\        V4      hRpVP                  V4       VP                  4        FF  w  rg\        V4      P                  4       pVR9  d   \        RV R	V R
24      hVRV RV 2,          pKH  	  VR,          pV P                  VRV4       R# )zSet the PDF MarkInfo values.ú	not a PDFFr…	  r†	  r‡	  zbad MarkInfo key(s): rƒ	  zbad key value 'z': 'rí   rˆ	  r³   r„	  r‚	  T)rŠ	  Úfalse)r]  rÃ   r@   r7   rÁ  rˆ  Ú
issupersetr´
  rN  rD   ræ  rç  r›  )r&   rŒ	  r  r‹	  ÚbadkeysÚpdfdictr�  r¸   s   &&      r'   Úset_markinfoÚDocument.set_markinfoé  s,  € à×ÑÓ!ˆØ�1Œ9Ü˜[Ó)Ð)ßœz¨(´D×9Ò9ÙØ˜5Ð"2°E¸:ÀuÐMˆä�5—:‘:“<Ó ×+Ñ+¨H¯M©M«O×<Ò<Ø-¬c°(·-±-³/Ó.B×.MÑ.MÈeÏjÉjËlÓ.[Ð-\Ð]ˆGÜ˜WÓ%Ð%ØˆØ�‰�XÔØŸ+™+ž-‰JˆCÜ�e“*×"Ñ"Ó$ˆEØÐ-Ô-Ü  ?°3°%°t¸E¸7À!Ð!DÓEÐEØ˜˜3˜%˜q  Ð(Õ(ŠGñ	 (ð
 	�4�ˆØ×Ñ˜$ 
¨GÔ4Ùr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  r
  r‹  r7   rs  r  r,   )rþ  s   "r'   rÿ  rt     s!   € ÷ ;ñ ;˜*ð ;¨ð ;¸ñ ;r)   c                ób  € V P                   '       g   \        R4      hV P                  '       g   V P                  '       d   \        R4      hVf   / pM\	        V4      \
        Jd   \        R4      hRRRRR	R
RRRRRRRRRRRRRRRR/p\        VP                  4       4      p\        VP                  4       4      P                  V4      pV\        4       8w  d   RV 2p\        V4      hV P                  R!R4      w  rgVR8w  d   ^ pM\        VP                  RR4      4      pV/ 8X  d
   V^ 8X  d   R# V^ 8X  d:   V P                  4       pV P                  VR4       V P                  R!RV R24       M,V/ 8X  d&   V P                  R!RR 4       V P                  4        R# VP!                  4        U	U
u. uF  w  ršW),          f   K  Wš3NK  	  up
p	 FE  w  r¼W+,          p\#        V4      '       d   VR"9   d   R pM\%        V4      pV P                  W�V4       KG  	  V P                  4        R# u up
p	i )#zKUpdate the PDF /Info object.

Args:
    m: a dictionary like doc.metadata.
r�  rÞ  Nzbad metadatarß  ÚAuthorrá  ÚProducerrn  ry  r¨  rd  rþ  r  r©  r,  rª  ÚModDater«  ÚSubjectrà  ÚKeywordsrâ  ÚTrappedzbad dict key(s): ÚInfor  rk  r`   r‘
  r�  rñ  r¨  )Únonerñ  )rƒ  rÃ   rÂ   r«  rÈ   r7   rÁ  rˆ  r´
  rä  r6   r  re  r_  r›  rÈ  rD   rè   r  )r1  r‹  ÚkeymapÚ
valid_keysÚdiff_setrž   rÃ  r  Ú	info_xrefrô  rH   r�  r  Úpdf_keys   &&            r'   r’
  ÚDocument.set_metadata   s  € ð �z�zˆzÜ˜[Ó)Ð)Ø�=�=ˆ=˜C×,×,Ð,ÜÐ;Ó<Ð<ØŠ9Ø‰AÜ�!‹WœDÓ Ü˜^Ó,Ð,à�hØ˜
Ø�yØ�WØ�dØ˜$Ø˜NØ�yØ�yØ˜
Ø�yð
ˆô ˜Ÿ™›Ó'ˆ
Ü�q—v‘v“x“=×+Ñ+¨JÓ7ˆØ”s“uÔØ% h ZÐ0ˆCÜ˜S“/Ð!à×"Ñ" 2 vÓ.‰ˆØ�Œ;Ø‰Iä˜DŸL™L¨°Ó3Ó4ˆIà�Œ7�y A”~Ùà˜Œ>Ø×(Ñ(Ó*ˆIØ×Ñ˜i¨Ô0Ø×Ñ˜R ¨I¨;°dÐ);Õ<Ø�"ŒWØ×Ñ˜R ¨Ô0Ø�L‰LŒNÙà,-¯G©G¬IÔO©I¡D A¸½œ˜!›©IÕO‰HˆCØ•kˆGÜ˜—9’9 Ð'7Ô 7Ø‘ä! #Ó&�Ø×Ñ˜Y°Ö5ñ Pð 	�‰ŒÙùó Ps   Æ2H+ÇH+c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  r1  r
  r  r6   rÙ  rs  r  r,   )rþ  s   "r'   rÿ  rt  =  s(   € ÷ ñ �Jð  cð ¨sð °tñ r)   c                óÂ  € V P                   '       g   V P                  '       d   \        R4      hV P                  VR4      w  r4VR8w  g   VR
9  d   \        RV 24      hV^ 8”  d1   V P                  VR4      w  r4VR8w  g   VR9  d   \        RV 24      hV^ 8X  d,   RV P	                  V4      9   d   V P                  VRR4       R# V P                  VRV R	24       R# )z¤Attach optional content object to image or form xobject.

Args:
    xref: (int) xref number of an image or form xobject
    oc: (int) xref number of an OCG or OCMD
ri  r¶  r   rj  r  r×  rñ  Nr�  rl  )z/OCGz/OCMD)rÂ   r«  rÃ   rä  Úxref_get_keysr›  )r1  r  rÙ  rÃ  r   s   &&&  r'   rÐ  ÚDocument.set_oc=  sà   € ð �=�=ˆ=˜C×,×,Ð,ÜÐ:Ó;Ð;Ø×"Ñ" 4¨Ó3‰ˆØ�Œ;˜$Ð&9Ô9ÜÐ7¸°vÐ>Ó?Ð?Ø�Œ6Ø×&Ñ& r¨6Ó2‰GˆAØ�FŒ{˜dÐ*;Ô;Ü Ð#;¸B¸4Ð!@ÓAÐAØ�Œ7�t˜s×0Ñ0°Ó6Ô6Ø×Ñ˜T 4¨Ô0ÙØ×Ñ˜˜t¨ t¨4 [Ô1Ùr)   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r†  r1  r
  r  r6   rv  ztyping.Union[list, None]r‚  rù  rƒ  rs  r,   )rþ  s   "r'   rÿ  rt  S  sL   € ÷ Gñ GØðGàðGð +ðGð ð	Gð
 )ðGð ñGr)   c                ó  a	a
€ \        V P                  4       P                  4       4      o	V	V
3R lo
RpV'       d…   \        V4      \        \
        39   dk   \        V4      P                  S	4      pV\        4       8w  d   RV 2p\        V4      hVRRP                  \        R V4      4      ,           R,           ,          pV'       dK   \        V4      P                  4       pRR	R
RRRRR/pVR9  d   \        RV 24      hVRWƒ,           2,          pV'       d   VRS
! V4       2,          pVR,          pV^ 8X  d   V P                  4       pM#RV P                  VRR7      9  d   \        R4      hV P                  W4       V# )a‘  Create or update an OCMD object in a PDF document.

Args:
    xref: (int) 0 for creating a new object, otherwise update existing one.
    ocgs: (list) OCG xref numbers, which shall be subject to 'policy'.
    policy: one of 'AllOn', 'AllOff', 'AnyOn', 'AnyOff' (any casing).
    ve: (list) visibility expression. Use instead of 'ocgs' with 'policy'.

Returns:
    Xref of the created or updated OCMD.
c                óF  <€ \        V 4      \        \        39  g   \        V 4      ^8  d   \	        RV  24      hV ^ ,          P                  4       R
9  d   \	        RV ^ ,           24      hV ^ ,          P                  4       R8X  d   \        V 4      ^8w  d   \	        RV  24      hRV ^ ,          P                  4        2pV R,           FL  p\        V4      \        J d%   VS9  d   \	        RV 24      hVRV R2,          pK:  VRS! V4       2,          pKN  	  VR	,          pV# )r†  zbad 've' format: Únotzbad operand: z[/r‰	  zbad OCG r³   r�  r—  )ÚandÚorrã
  )rÈ   r´   rµ   r9   rÃ   rç  r¨  r6   )rƒ  rE   ri  Úall_ocgsÚve_makers   &  €€r'   rç
  Ú#Document.set_ocmd.<locals>.ve_makerh  s	  ø€ Ü�B‹x¤¤e˜}Ô,´°B³¸!´Ü Ð#4°R°DÐ!9Ó:Ð:Ø�!�u�{‰{‹}Ð$8Ô8Ü  =°°Aµ°Ð!8Ó9Ð9Ø�!�u�{‰{‹} Ô%¬#¨b«'°Q¬,Ü Ð#4°R°DÐ!9Ó:Ð:Ø˜˜1�Ÿ™›�Ð'ˆDØ˜—V�V�Ü˜“7œc“>Ø Ô(Ü(¨8°A°3¨Ó8Ð8Ø˜a ˜s $˜KÕ'’Dà˜a¡¨£˜}Ð-Õ-’Dñ ð �C�KˆDØˆKr)   z<</Type/OCMDz
bad OCGs: r  r³   c                ó   € V  R 2# )r�  r,   r«  s   &r'   Ú<lambda>Ú#Document.set_ocmd.<locals>.<lambda>�  s
   € ¸¸¸4±jr)   r—  ÚanyonÚAnyOnÚallonÚAllOnÚanyoffÚAnyOffÚalloffÚAllOffzbad policy: r€  z/VEr„	  r~  Tr[  zbad xref or not an OCMD)rì
  rî
  rð
  rò
  )rÁ  ry  rˆ  rÈ   r´   rµ   r´
  rÃ   r  r  ræ  rç  re  r^  r_  )r1  r  rv  r‚  rƒ  r   rŸ  rž   Úpolsræ
  rç
  s   &&&&&    @@r'   Úset_ocmdÚDocument.set_ocmdS  s`  ù€ ô& �s—|‘|“~×*Ñ*Ó,Ó-ˆö	ð$ ˆç”D˜“J¤4¬ -Ô/Ü�D“	×$Ñ$ XÓ.ˆAØ”C“EŒzØ" 1 #Ð&�Ü  “oÐ%Ø�H˜sŸx™x¬Ñ,@À$Ó(GÓHÕHÈ3ÕNÕNˆDçÜ˜“[×&Ñ&Ó(ˆFà˜Ø˜Ø˜(Ø˜(ð	ˆDð ÐCÔCÜ  <°¨xÐ!8Ó9Ð9Ø�c˜$�,˜Ð(Õ(ˆDçØ�c™( 2›,˜Ð(Õ(ˆDà��ˆð �1Œ9Ø×#Ñ#Ó%‰DØ §¡°À$ Ó!GÔGÜÐ6Ó7Ð7Ø×Ñ˜$Ô%Øˆr)   c               ó   € V ^8„  d   QhRR/# )r†  rÆ	  ræ  r,   )rþ  s   "r'   rÿ  rt  œ  s   € ÷ 1ñ 1¨ñ 1r)   c                ó>  € RpV P                  4       pV^ 8X  d   \        R4      hV'       g   \        R4      hV^ ,          R8X  d
   VR,          pV F?  pVP                  4       VP                  4       8X  g   K(  V P                  VRRV 24        R# 	  \        R4      h)zSet the PDF PageLayout value.rÅ
  zbad PageLayout valuerˆ	  r‰	  rÂ	  T)rÃ	  Ú	OneColumnÚTwoColumnLeftÚTwoColumnRightÚTwoPageLeftÚTwoPageRight©r]  rÃ   rç  r›  )r&   rÆ	  r‹	  r  rH   s   &&   r'   Úset_pagelayoutÚDocument.set_pagelayoutœ  s•   € àmˆØ×ÑÓ!ˆØ�1Œ9Ü˜[Ó)Ð)ßÜÐ3Ó4Ð4Ø�a�=˜CÔØ# B�ˆJÛˆAØ×ÑÓ! Q§W¡W£YÖ.Ø×!Ñ! $¨¸¸!¸°gÔ>Úñ ô Ð/Ó0Ð0r)   c               ó   € V ^8„  d   QhRR/# )r†  rÌ	  ræ  r,   )rþ  s   "r'   rÿ  rt  ¬  s   € ÷ /ñ / Sñ /r)   c                ó>  € RpV P                  4       pV^ 8X  d   \        R4      hV'       g   \        R4      hV^ ,          R8X  d
   VR,          pV F?  pVP                  4       VP                  4       8X  g   K(  V P                  VRRV 24        R# 	  \        R4      h)zSet the PDF PageMode value.rÅ
  zbad PageMode valuerˆ	  r‰	  rÊ	  T)rË	  ÚUseOutlinesÚ	UseThumbsÚ
FullScreenÚUseOCÚUseAttachmentsrþ
  )r&   rÌ	  r‹	  r  rH   s   &&   r'   Úset_pagemodeÚDocument.set_pagemode¬  s“   € à`ˆØ×ÑÓ!ˆØ�1Œ9Ü˜[Ó)Ð)ßÜÐ1Ó2Ð2Ø�A�;˜#ÔØ •|ˆHÛˆAØ�~‰~Ó 1§7¡7£9Ö,Ø×!Ñ! $¨
°a¸°s°GÔ<Úñ ô Ð-Ó.Ð.r)   c                óH   a€ R oV3R lpV P                  V! V4      4       R# )a   Add / replace page label definitions in PDF document.

Args:
    doc: PDF document (resp. 'self').
    labels: list of label dictionaries like:
    {'startpage': int, 'prefix': str, 'style': str, 'firstpagenum': int},
    as returned by get_page_labels().
c                ó.  € V R,           R2pV P                  RR4      R8w  d   VRV R,           R2,          pV P                  RR4      R8w  d   VRV R,           2,          pV P                  R	^4      ^8”  d   VR
V R	,           2,          pVR,          pV# )z©Convert Python label dict to corresponding PDF rule string.

Args:
    label: (dict) build rule for the label.
Returns:
    PDF label rule string wrapped in "<<", ">>".
Ú	startpagerƒ	  Úprefixr`   z/P(rí  r‰  z/S/Úfirstpagenumz/St r„	  )r:   )r¡  rŸ  s   & r'   Úcreate_label_strÚ2Document.set_page_labels.<locals>.create_label_strÇ  s¢   € ð ˜Õ%Ð& bÐ)ˆAØ�y‰y˜ 2Ó&¨"Ô,Ø�s˜5 �?Ð+¨1Ð-Õ-�Ø�y‰y˜ "Ó%¨Ô+Ø�s˜5 �>Ð*Ð+Õ+�Ø�y‰y˜¨Ó+¨aÔ/Ø�t˜E .Õ1Ð2Ð3Õ3�Ø��IˆAØˆHr)   c                ó†   <€ V P                  R R7       RP                  V  Uu. uF  pS! V4      NK  	  up4      pV# u upi )zíReturn concatenated string of all labels rules.

Args:
    labels: (list) dictionaries as created by function 'rule_dict'.
Returns:
    PDF compatible string for page label definitions, ready to be
    enclosed in PDF array 'Nums[...]'.
c                ó   € V R ,          # )r  r,   r«  s   &r'   rê
  Ú?Document.set_page_labels.<locals>.create_nums.<locals>.<lambda>â  s   €  a¨¦nr)   ©r�  r`   )rÂ  r  )r`  r¡  rŸ  r  s   &  €r'   Úcreate_numsÚ-Document.set_page_labels.<locals>.create_numsÙ  sB   ø€ ð �K‰KÑ4ˆKÔ5Ø—‘¹fÓE¹f°UÑ)¨%Ö0¹fÑEÓFˆAØˆHùò Fs   ¤>N)ra  )r1  r`  r  r  s   && @r'   Úset_page_labelsÚDocument.set_page_labels¼  s"   ø€ ò	õ$	ð 	×Ñ™[¨Ó0Ö1r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  r1  r
  rÈ  r´   rÐ  r6   rs  r,   )rþ  s   "r'   rÿ  rt  è  s6   € ÷ }ñ }Øð}àð}ð ð}ð ñ	}r)   c           	     óò  € V P                   '       g   V P                  '       d   \        R4      hV P                  '       g   \        R4      hV'       g   \	        V P                  4       4      # \        V4      \        \        39  d   \        R4      h\	        V4      pV P                  pV^ ,          p\        V4      \        \        39  d   \        R4      hV^ ,          ^8w  d   \        R4      h\        \        V^,
          4      4       Fî  pW,          pW^,           ,          pR)V^,          u;8:  d   V8:  g   M \        RV R24      h\        V4      \        \        39  g   \	        V4      R*9  d   \        RV^,            24      h\        V^ ,          4      \        Jg   V^ ,          ^8  d   \        R	V^,            24      hV^ ,          V^ ,          ^,           8”  g   KÛ  \        R	V^,            24      h	  V P                  4       p	. p	^ .V	,           p
V P                  4       V
^ &   V\	        V	4      8”  dB   \        V\	        V	4      ,
          4       F"  pV
P                  V P                  4       4       K$  	  ^ ^ /pR
^ RR)RR)RV
^ ,          /.p\        V4       EFN  pW,          pV^ ,          p\        V^,          4      p\!        V P                  ^,
          \#        ^ V^,          ^,
          4      4      pV P%                  V4      pV P'                  V4      P(                  p\+        ^HV^$,
          4      pRVR\,        /pV^,          ^ 8  d
   \.        VR&   \	        V4      ^8”  dõ   \        V^,          4      \        \0        39   d   \+        ^HVV^,          ,
          4      VR&   Mµ\        V^,          4      \2        J d   V^,          P5                  4       MTpRV9  d   VVR&   MuV V,          p\+        VR,          4      pVP6                  P(                  VP8                  ,
          Vn        VVP:                  ,          pVP<                  VP8                  3VR&   / pR)VR&   ^ VR
&   R)VR&   R)VR&   R)VR&   \>        P@                  ! VV4      VR&   VR,          VR&   VVR&   W¾^,
          ,          VR&   W¦^,           ,          VR&   VPC                  R4      VR&   VPC                  R^ 4      ^VPC                  R^ 4      ,          ,           VR&   V^,           W¾&   WËV^,
          ,          ,          pVPC                  R4      '       g   V'       d   Wâ8”  d   VR
;;,          ^,          uu&   MVR
;;,          ^,          uu&   VR,          R)8X  d   V^,           VR&   V^,           VR&   M4VR,          VR&   VVR,          ,          pV^,           VR&   V^,           VR&   VP                  V4       EKQ  	  \E        V4       EFÔ  w  ppRpVR
,          ^ 8w  d   VRVR
,           2,          p VVR,          ,          p VR,          R)8”  d   VRV
VR,          ,           R2,          p TR,          R)8”  d   TRT
TR,          ,           R2,          p TR,          R)8”  d   TR T
TR,          ,           R2,          p TR,          R)8”  d   TR!T
TR,          ,           R2,          p TR,          R)8”  d   TR"T
TR,          ,           R2,          p TR#TR,          ,           ,          pTPC                  R4      '       d>   \	        TR,          4      ^8X  d'   TR$\M        \        TR,          4      4       R%2,          pTPC                  R^ 4      ^ 8”  d   TR&TR,           2,          pT^ 8X  d
   TR',          pTR(,          pT PO                  Y¦,          T4       EK×  	  V PQ                  4        V#   \F         d    \H        ^8¼  d   \K        4         ELÓi ; i  \F         d    \H        ^8¼  d   \K        4         ELÐi ; i  \F         d    \H        ^8¼  d   \K        4         ELÍi ; i  \F         d    \H        ^8¼  d   \K        4         ELÊi ; i  \F         d    \H        ^8¼  d   \K        4         ELÇi ; i  \F         d    \H        ^8¼  d   \K        4         ELÄi ; i  \F         d    \H        ^8¼  d   \K        4         ELÓi ; i)+a‰  Create new outline tree (table of contents, TOC).

Args:
    toc: (list, tuple) each entry must contain level, title, page and
        optionally top margin on the page. None or '()' remove the TOC.
    collapse: (int) collapses entries beyond this level. Zero or None
        shows all entries unfolded.
Returns:
    the number of inserted items, or the number of removed items respectively.
rÞ  r�  z'toc' must be list or tuplez'items must be sequences of 3 or 4 itemsz#hierarchy level of item 0 must be 1zrow z: page number out of rangezbad row zbad hierarchy level in row rÙ  rù  Úlastr  r  r  r  r]  r8
  Útopr¨  rì   rp  rè  rÎ  rÐ  rÐ  rƒ	  z/Count z/First r�  z/Last z/Next z/Parent z/Prev z/Titlez/C[ r—  z/F z/Type/Outlinesr„	  r¨  )r   rš  ))rÂ   r«  rÃ   rƒ  r9   rü  rÈ   r´   rµ   rv  rS  r6   r  ro   re  r  r÷  r'  r(  r·	  r3  r)  r  Ú	LINK_NONErœ  r7   r8  r¶	  rj  rx  ri  r  Ú
getDestStrr:   rZ  rk   r  r{   r¶   r_  rÈ  )r1  rÈ  rÐ  Útoclenrv  Út0rg  Út1Út2Ú	old_xrefsr  ÚlvltabÚolitemsr±  rÇ  r¨  r{  r(  Úpage_heightr  rC
  rÖ   rn  rH  rì   r  r>  r$  s   &&&                         r'   Úset_tocÚDocument.set_tocè  s×  € ð �=�=ˆ=˜C×,×,Ð,ÜÐ;Ó<Ð<Ø�z�zˆzÜ˜[Ó)Ð)ßÜ�s—{‘{“}Ó%Ð%ô �‹9œT¤5˜MÔ)ÜÐ:Ó;Ð;Ü�S“ˆØ—^‘^ˆ
Ø��VˆÜ�‹8œD¤%˜=Ô(ÜÐFÓGÐGØˆa�5�AŒ:ÜÐBÓCÐCÜ”e˜F Q�JÓ'Ö(ˆAØ•ˆBØ˜•U•ˆBØ˜˜A�Ö, *Ö,Ü  4¨ sÐ*DÐ!EÓFÐFÜ�R“¤¤u Ô-´#°b³'ÀÔ2GÜ  8¨Q°­U¨9Ð!5Ó6Ð6Ü�R˜•U“¤3Ó&¨2¨a­5°1¬9Ü Ð#>ÀÀAÅ¸iÐ!HÓIÐIØ�!�u�r˜!•u˜q•yÖ Ü Ð#>ÀÀAÅ¸iÐ!HÓIÐIñ )ð  —K‘K“Mˆ	ð ˆ	Øˆs�Y�ˆØ×&Ñ&Ó(ˆˆQ‰Ø”C˜	“NÔ"Ü˜F¤S¨£^Õ3Ö5�Ø—‘˜C×,Ñ,Ó.Ö/ñ 6ð �Q�ˆð
 ˜Q ¨¨V°R¸ÀÀaÅÐIÐJˆô �v—ˆAØ•ˆAØ�A•$ˆCÜ  !¥Ó%ˆEÜ�c—n‘n qÕ(¬#¨a°°1µ¸µÓ*:Ó;ˆCØŸ™ cÓ*ˆIØ×*Ñ*¨3Ó/×6Ñ6ˆKÜ˜˜K¨"Õ,Ó-ˆCØ˜s F¬IÐ6ˆIØ��t�aŒxÜ$-�	˜&Ñ!Ü�1‹v˜ŒzÜ˜˜!�“:¤#¤u Ô-Ü&+¨B°¸aÀ½dÕ0BÓ&C�I˜d’Oô 04°A°aµD«z¼TÓ/A  !¥§	¡	¤Ày�IØ 9Ô,Ø*-˜	 $šà" 3�x˜Ü % i°¥oÓ 6˜Ø"&§,¡,×"5Ñ"5¸¿¹Õ"?˜œØ %¨×(<Ñ(<Õ <˜Ø+0¯7©7°E·G±GÐ*<˜	 $™ØˆAØˆAˆg‰JØˆAˆg‰JØˆAˆf‰IØˆAˆf‰IØˆAˆf‰IÜ×(Ò(¨°IÓ>ˆAˆf‰IØ  •ˆAˆe‰HØˆAˆg‰JØ  q¥�/ˆAˆh‰KØ �U�ˆAˆf‰IØ"Ÿ™ wÓ/ˆAˆg‰JØ"Ÿ™ x°Ó3°a¸)¿-¹-ÈÐPQÓ:RÕ6RÕRˆAˆg‰JØ˜a�%ˆF‰KØ C¨!¥G�_Õ-ˆFð —‘˜j×)Ò)¯X¸#¼.à�w— 1Õ$”à�w— 1Õ$“à�g� "Ô$Ø"# a¥%��w‘Ø!" Q¥��v’à" 6�N��&‘	Ø˜v f�~Õ.�Ø  1�u��V‘Ø!" Q¥��v‘Ø�N‰N˜1×ñq ôz ˜w×'‰EˆAˆrØˆCØ�'�{˜aÔØ˜  G¥ Ð.Õ.�ðØ�r˜&•zÕ!�ð
Ø�g•; Ô#Ø˜W T¨"¨W­+Õ%6Ð$7°tÐ<Õ<�CðØ�f•: ”?Ø˜V D¨¨F­Õ$4Ð#5°TÐ:Õ:�CðØ�f•: ”?Ø˜V D¨¨F­Õ$4Ð#5°TÐ:Õ:�Cð
Ø�h•< "Ô$Ø˜X d¨2¨h­<Õ&8Ð%9¸Ð>Õ>�Cð
Ø�f•: ”?Ø˜V D¨¨F­Õ$4Ð#5°TÐ:Õ:�Cð
Ø�x " W¥+Õ-Õ-�ð �v‰v�g�Š¤3 r¨'¥{Ó#3°qÔ#8Ø˜œi¬¨b°­kÓ(:Ó;Ð<¸AÐ>Õ>�Ø�v‰v�g˜qÓ! AÔ%Ø˜˜R �[˜MÐ*Õ*�à�AŒvØÐ'Õ'�Ø�4�KˆCØ×Ñ˜d�g s×+ñu (ðx 	�‰ŒØˆøôo ô ä'¨1Ô,´Ô0@Úðûô ô Ü'¨1Ô,´Ô0@Úðûô ô Ü'¨1Ô,´Ô0@Úðûô ô ä'¨1Ô,´Ô0@Úðûô ô ä'¨1Ô,´Ô0@Úðûô ô ä'¨1Ô,´Ô0@Úðûô ô ä'¨1Ô,´Ô0@Úðús~   Ø(_(Ø9)`Ù#)`6Ú)aÚ7)bÛ!)b+Ücß( `à`à `3à2`3à6 aáaá bâ bâ b(â'b(â+ cãcã c6ã5c6c               óD   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRRRRRR/# )r†  r1  r
  rë  r6   rC
  r8  r  r®  r{  r  rù  r¨  r  rº   rj   r  rœ  rs  r  r,   )rþ  s   "r'   rÿ  rt  §  s�   € ÷ jJñ jJØðjJàðjJð ðjJð ð	jJð
 ðjJð ðjJð ðjJð ðjJð ðjJð ðjJð ñjJr)   c
                ó  € V P                  4       V,          p
^ p\        V4      \        J Ed‡   VR,          \        8X  dm   VR,          pV P	                  V4      pV P                  V4      P                  pVP                  R\        ^H^$4      4      pWÇP                  ,
          Vn	        WrR&   \        P                  ! W²4      pVP                  R4      '       g   \        R4      hVP                  R4      pV'       dU   \        \        \         V4      4      p\#        V4      ^8w  g!   \%        V4      ^ 8  g   \'        V4      ^8”  d   \        R4      hVP                  RR	4      pVP                  R
R	4      pV^V,          ,           pVP                  R4      pV P)                  V
VR,          VVVVR7      # V\*        8X  d   V P-                  V4      # Vf   Vf   R# Vf   V P)                  V
RVR7      # V\        8X  d¦   Ve#   V\/        ^V P0                  ^,           4      9  d   \        R4      hV P	                  V^,
          4      pV P                  V^,
          4      P                  pVf   \        ^HV^$,
          4      pM"\        V4      pWÇP                  ,
          Vn	        RVRVRVRVRVRV	/p\        P                  ! VV4      pVR8X  g   VP                  R4      '       g   \        R4      hV P)                  W­R,          VR7      # )aŠ  Update TOC item by index.

It allows changing the item's title and link destination.

Args:
    idx:
        (int) desired index of the TOC list, as created by get_toc.
    dest_dict:
        (dict) destination dictionary as created by get_toc(False).
        Outrules all other parameters. If None, the remaining parameters
        are used to make a dest dictionary.
    kind:
        (int) kind of link (pymupdf.LINK_GOTO, etc.). If None, then only
        the title will be updated. If pymupdf.LINK_NONE, the TOC item will
        be deleted.
    pno:
        (int) page number (1-based like in get_toc). Required if
        pymupdf.LINK_GOTO.
    uri:
        (str) the URL, required if pymupdf.LINK_URI.
    title:
        (str) the new title. No change if None.
    to:
        (point-like) destination on the target page. If omitted, (72, 36)
        will be used as target coordinates.
    filename:
        (str) destination filename, required for pymupdf.LINK_GOTOR and
        pymupdf.LINK_LAUNCH.
    name:
        (str) a destination name for pymupdf.LINK_NAMED.
    zoom:
        (float) a zoom factor for the target location (pymupdf.LINK_GOTO).
r  rÖ   r  z/Azbad bookmark destrp  zbad color valuerÎ  Frè  rÐ  ºr†  NN)re  r¨  rp  rÐ  rÐ  N)re  r¨  zbad page numberr  re   r  r`   )rí  rÈ   r7   r  r(  r·	  r3  r:   r)  rj  r  r  r5   rÃ   r´   r  rœ  r9   r÷  r'  rf  r  rï  rS  rv  )r1  rë  rC
  r  r{  r  r¨  r  rj   r  r  r(  r&  re  rp  rÎ  rè  rÐ  rÐ  Úddicts   &&&&&&&&&&          r'   Úset_toc_itemÚDocument.set_toc_item§  s¸  € ðZ ×$Ñ$Ó& sÕ+ˆØˆ	Ü�	‹?œdÔ"Ø˜Õ ¤IÔ-Ø Õ'�ØŸM™M¨#Ó.�	Ø!×.Ñ.¨sÓ3×:Ñ:�Ø—]‘] 4¬¨r°2«Ó7�Ø"§T¡TÕ)�”Ø"$˜$‘Ü×%Ò% iÓ;ˆFØ×$Ñ$ T×*Ò*Ü Ð!4Ó5Ð5Ø—M‘M 'Ó*ˆEßÜœS¤¨Ó.Ó/�Ü�u“: ”?¤c¨%£j°1¤n¼¸E»
ÀQ¼Ü$Ð%6Ó7Ð7Ø—=‘= ¨Ó/ˆDØ—]‘] 8¨UÓ3ˆFØ˜Q �XÕ%ˆEØ —}‘} ZÓ0ˆHØ×'Ñ'ØØ˜b•zØØØØ!ð (ó ð ð ”9ÔØ×#Ñ# CÓ(Ð(ØŠ<˜EšMÙØŠ<Ø×'Ñ'¨°TÀÐ'ÓGÐGà”9ÔØŠ{˜c¬¨q°#·.±.À1Õ2DÓ)EÔEÜ Ð!2Ó3Ð3ØŸ™ c¨A¥gÓ.ˆIØ×*Ñ*¨3°­7Ó3×:Ñ:ˆKØŠzÜ˜2˜{¨RÕ/Ó0‘ä˜2“Y�Ø"§T¡TÕ)�”ð �DØ�"Ø�3Ø�CØ�HØ�Dð
ˆô ×!Ò! )¨UÓ3ˆØ�RŒ<˜v×0Ñ0°×6Ò6ÜÐ0Ó1Ð1à×#Ñ# D¸µÀ5Ð#ÓIÐIr)   c                ó:  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! \        P                  ! V4      \        R4      4      pVP                  '       g   \        \        \        4       \        P                  ! VP                  R4      4      p\        P
                  ! V\        R4      4      pVP                  '       d   \        W%V^ 4       R# \        P                  ! W$\        P                   ! 4       ^ 4      p\        P"                  ! V\        R4      \        R4      4       \        P"                  ! V\        R4      \        R4      4       \        P"                  ! V\        R4      V4       R# )	z"Store XML document level metadata.rÞ  rà  r  rº  r  r¶  ÚXMLN)rÂ   r«  rÃ   rÎ   r£   r  rä  r  rÌ   rÁ  ÚMSG_BAD_PDFROOTrÂ  rå  r  r0  r/  r0  rU  )r&   r¬  ra  r¹  r%  rÏ  s   &&    r'   Úset_xml_metadataÚDocument.set_xml_metadata  s  € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×!Ò!¤5×#4Ò#4°cÓ#:¼HÀVÓ<LÓMˆØ��ˆÜ”_Ô&:Ô;Ü×2Ò2°H·O±OÀGÓ4LÓMˆÜ× Ò  $¬°Ó(<Ó=ˆØ�>�>ˆ>Ü˜c¨¨QÖ/ä×&Ò&¨´%·,²,³.À!ÓDˆCÜ×Ò ¤X¨fÓ%5´xÀ
Ó7KÔLÜ×Ò ¤X¨iÓ%8¼(À5»/ÔJÜ×Ò ¤h¨zÓ&:¸CÖ@r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  r1  r
  Úverboserè   Úfallbackrs  r®  r,   )rþ  s   "r'   rÿ  rt  %  s/   € ÷ v+ñ v+˜*ð v+¨tð v+Àtð v+ÐX^ñ v+r)   c                óF  a a€ V'       gL   \         P                  ! S 4      p\         P                  ! V\        \	        S P
                  4      4      4       R# / oV 3R lpV 3R lpV 3R lpR pV3R lpV3R lp	V! S 4       S'       g   V'       d   \        R4       ^ # ^ p
^ pSP                  4        F  pV
\        V4      ,          p
K  	  S  F§  pVP                  4        F�  p\        V4      \        Jd   K  VR	,          R
,          pV	! V4      pVf   K6  SV,          w  ppw  ppVR,           F3  pVP                  V^ ,          4       VP                  V^,          4       K5  	  VVVV33SV&   K’  	  K©  	  SP                  4        EF  w  pw  pppV! VV^ ,          V^,          4      p\        V4      ^ ,          pVe   \        V4      \        V4      8¼  d   V'       d   \        RV: R24       Kl  V'       d   \        RV: R24       S P                  VR7      pV^ ,          pV! V4       S P                  VRR7      pV F<  pV! V4      w  ppS P!                  VV4       V'       g   V'       g   K2  V! VVV4       K>  	  V\        V4      ,          pEK  	  W«,
          # )a4  Build font subsets in a PDF.

Eligible fonts are potentially replaced by smaller versions. Page text is
NOT rewritten and thus should retain properties like being hidden or
controlled by optional content.

This method by default uses MuPDF's own internal feature to create subset
fonts. As this is a new function, errors may still occur. In this case,
please fall back to using the previous version by using "fallback=True".
Fallback mode requires the external package 'fontTools'.

Args:
    fallback: use the older deprecated implementation.
    verbose: only used by fallback mode.

Returns:
    The new MuPDF-based code returns None.  The deprecated fallback
    mode returns 0 if there are no fonts to subset.  Otherwise, it
    returns the decrease in fontsize (the difference in fontsize),
    measured in bytes.
Nc                óL  <€ SP                  V R4      pV^ ,          R8w  d   R	# \        V^,          ^R
 P                  RR4      4      pSP                  VR4      pV^ ,          R8w  d   RpM	V^,          pSP                  VR4      pV^ ,          R8w  d   RpW43# V^,          pW43# )z(Retrieve old font '/W' and '/DW' values.ÚDescendantFontsr<
  Nrk  r`   ÚWÚDWr6   ©NNr¨  )rä  r6   r  )r  ÚdfÚdf_xrefÚwidthsÚdwidthsr1  s   &    €r'   Úget_old_widthsÚ-Document.subset_fonts.<locals>.get_old_widthsH  sµ   ø€ à×!Ñ! $Ð(9Ó:ˆBØ�!�u˜ÔØ!Ð!Ü˜"˜Q�%  "˜+×-Ñ-¨e°RÓ8Ó9ˆGØ×%Ñ% g¨sÓ3ˆFØ�a�y˜GÔ#Ø‘à ��Ø×&Ñ& w°Ó5ˆGØ�q�z˜UÔ"Ø�ð �?Ð"ð " !�*�Ø�?Ð"r)   c                ó  <€ SP                  V R4      pV^ ,          R8w  d   R# \        V^,          ^R	 P                  RR4      4      p\        V4      \        Jg	   V'       g3   SP                  VR4      ^ ,          R8w  d   SP                  VRR4       MSP                  VRV4       \        V4      \        Jg	   V'       g4   SP                  VR4      ^ ,          R8w  d   SP                  VRR4       R# SP                  VRV4       R# )
zœRestore the old '/W' and '/DW' in subsetted font.

If either parameter is None or evaluates to False, the corresponding
dictionary key will be set to null.
r9  r<
  Nrk  r`   r:  rñ  r;  r¨  )rä  r6   r  rÈ   ræ  r›  )r  r?  r@  r=  r>  r1  s   &&&  €r'   Úset_old_widthsÚ-Document.subset_fonts.<locals>.set_old_widthsZ  sü   ø€ ð ×!Ñ! $Ð(9Ó:ˆBØ�!�u˜ÔÙÜ˜"˜Q�%  "˜+×-Ñ-¨e°RÓ8Ó9ˆGÜ�V“¤CÓ'¯v¸3×;KÑ;KÈGÐUXÓ;YØõ<àô<ð × Ñ  ¨#¨vÕ6à× Ñ  ¨#¨vÔ6Ü�W“¤SÓ(·¸S×=MÑ=MØ˜ó>àõ>àô>ð × Ñ  ¨$°Ô7ñ ð × Ñ  ¨$°Ô8Ùr)   c                ó’  <€ ^ RI p^ RIpRP                  VP                  \	        VP
                  4      ^R7      4      R,           pS
P                  V RR7      pVP                  RRV,           4      pS
P                  V R4      pV^ ,          R	8X  d¥   \        V^,          ^R P                  R
R4      4      pS
P                  VR4      pV^ ,          R8X  d`   \        V^,          P                  R
R4      4      pS
P                  VRR7      p	V	P                  RRV,           4      p	S
P                  W‰4       S
P                  W4       R# )z÷Generate a name prefix to tag a font as subset.

We use a random generator to select 6 upper case ASCII characters.
The prefixed name must be put in the font xref as the "/BaseFont" value
and in the FontDescriptor object as the '/FontName' value.
Nr`   )rô  Ú+Tr[  z
/BaseFont/r9  r<
  rk  ÚFontDescriptorr  z
/FontName/r¨  )ÚrandomÚstringr  Úchoicesrµ   Úascii_uppercaser^  r  rä  r6   r_  )r3  rI  rJ  r  Úfont_strr=  r>  r   Úfd_xrefÚfd_strr1  s   &         €r'   Úset_subset_fontnameÚ2Document.subset_fonts.<locals>.set_subset_fontnamer  s  ø€ ó ÛØ—W‘W˜VŸ^™^¬E°&×2HÑ2HÓ,IÈQ˜^ÓOÓPÐSVÕVˆFØ—‘ x¸D�ÓAˆHØ×'Ñ'¨°lÀVÕ6KÓLˆHØ×!Ñ! (Ð,=Ó>ˆBØ�!�u˜ÔÜ˜b �e A b˜k×1Ñ1°%¸Ó<Ó=�Ø×%Ñ% gÐ/?Ó@�Ø�a•5˜F”?Ü! " Q¥%§-¡-°°rÓ":Ó;�GØ Ÿ_™_¨WÀ˜_ÓF�FØ#Ÿ^™^¨L¸,ÈÕ:OÓP�FØ×%Ñ% gÔ6Ø×Ñ˜hÖ1r)   c           
     ó‚  €  ^ RI Hp ^ RIpTP                  4       ;_uu_ 4       pT R2pT R2pT R2pTRRT 2RR	R
RR.p	\        P                  ! T R2RRR7      ;_uu_ 4       p
RT9   dO   T	P                  RT 24       TP                  ^½4       \        T4      pT F  pT
P                  T R24       K  	  MNT	P                  RT 24       TP                  ^ÿ4       \        T4      pT F  pT
P                  TR R24       K  	  RRR4       \        P                  ! TR4      ;_uu_ 4       pTP                  T 4       RRR4        \        P                  ! T4        TP#                  T	4       \%        TR7      pTP&                  pTP(                  ^ 8X  d   RpRRR4       T#   \         d$    \        '       d   \	        4        \        R4       h i ; i  + '       g   i     LØ; i  + '       g   i     L²; i  \          d     L«i ; i  \          d    \	        4        Rp L‹i ; i  + '       g   i     X# ; i)zÚBuild font subset using fontTools.

Args:
    buffer: (bytes) the font given as a binary buffer.
    unc_set: (set) required glyph ids.
Returns:
    Either None if subsetting is unsuccessful or the subset font buffer.
Nz/This method requires fontTools to be installed.z/oldfont.ttfz/newfont.ttfz/uncfile.txtz--retain-gidsz--output-file=z--layout-features=*z--passthrough-tablesz--ignore-missing-glyphsz--ignore-missing-unicodesz--symbol-cmapr   Úutf8)r  éýÿ  z--gids-file=r#   z--unicodes-file=Ú04xÚwb)r%  )ÚfontTools.subsetÚsubsetÚImportErrorr  r{   rv   ÚtempfileÚTemporaryDirectoryr;   r<   ro   r‚  r´   r   rh   r²  rk   Úmainrã  r3
  Úglyph_count)r3
  Úunc_setÚgid_setÚftsrZ  Útmp_dirÚoldfont_pathÚnewfont_pathÚuncfile_pathr  Úunc_fileÚunc_listÚuncr%  rÜ  Ú
new_buffers   &&&             r'   Úbuild_subsetÚ+Document.subset_fonts.<locals>.build_subsetŠ  s  € ðÝ.ó
 Ø×,Ñ,×.Ô.°'Ø") ¨,Ð7�Ø") ¨,Ð7�Ø") ¨,Ð7�à Ø#Ø$ \ NÐ3Ø)Ø*Ø-Ø/Ø#ð	�ô —W’W ˜y¨Ð5°sÀV×LÕLÐPXØ Ô(ØŸ™ l°<°.Ð$AÔBØŸ™ CÔ(Ü#'¨£=˜Û#+˜CØ$ŸN™N¨c¨U°"¨:Ö6ò $,ð Ÿ™Ð&6°|°nÐ$EÔFØŸ™ CÔ(Ü#'¨£=˜Û#+˜CØ$ŸN™N¨c°#¨Y°b¨>Ö:ñ $,÷ Mô —W’W˜\¨4×0Ô0°HØ—N‘N 6Ô*÷ 1ðÜ—I’I˜lÔ+ð&Ø—H‘H˜T”NÜ¨Ô6�DØ!%§¡�JØ×'Ñ'¨1Ô,Ø%)˜
÷U /ð\ Ðøôg ô ß'Ó'¬NÔ,<ÜÐIÔJØðú÷* M×Lú÷ 1×0ûô !ô Ùðûô !ô &Ü"Ô$Ø!%’Jð&ú÷W /Ö.ð\ ÐúsŠ   ‚F( ¤AH-Á%B$G	Ä	'H-Ä0G,	ÅH-ÅG?Å"<HÆ(GÆ?GÇG)Ç$H-Ç,G<Ç7H-Ç?HÈ
H-ÈHÈH-ÈH*È'H-È)H*È*H-È-H>	c           
     ó€  <a€ R oV3R lp\        V P                  4       EF  pV P                  VRR7       Fý  pV^ ,          pV^,          pV^,          pVR9  d   K'  \        V4      ^8”  d   V^,          R8X  d   KG  V P	                  V4      pVR	,          pV! W4      p	SP                  V\        4       \        4       \        4       \        4       334      w  r«pVP                  V4       V	 F  pV
P                  V4       K  	  \        VR7      pV
P                  VP                  4       ?W«V3SV&   Kÿ  	  EK  	  R# )
z“Populate 'font_buffers'.

For each font candidate, store its xref and the list of names
by which PDF text may refer to it (there may be multiple).
c                óº   € RV 9   dT   V P                  R4      p\        W^,           V^,            ^4      pV P                  WV^,            \        V4      4      p KZ  V # )zLRecreate font name that contains PDF hex codes.

E.g. #20 -> space, chr(32)
Ú#)r§   r6   r  Úchr)r   r²  rõ  s   &  r'   Ú	norm_nameÚ@Document.subset_fonts.<locals>.repl_fontnames.<locals>.norm_nameÑ  sR   € ð
 ˜T”kØŸ	™	 #›�AÜ˜D Q¥¨¨Q­Ð/°Ó4�AØŸ<™<¨°°Qµ¨¼¸Q»Ó@’DØ�r)   c                ó°  <€ V^,          pV.pV P                  V^ ,          R4      ^,          R,          pS! V4      pW#9  d   VP                  V4       V P                  V^ ,          R4      pV^ ,          R8w  d   V# V^,          ^R pVP                  R4      '       d"   \        VRR 4      pV P	                  VRR7      pVP                  R	4      pV^ 8¼  d~   VP                  R
V^,           4      p\        VP                  R
V^,           4      VP                  RV^,           4      4      pWG^,           V pS! V4      pW#9  d   VP                  V4       V# )zoReturn a list of fontnames for an item of page.get_fonts().

There may be multiple names e.g. for Type0 fonts.
rô  r‰	  r9  r<
  r�  NTr[  z	/BaseFontrˆ	  r„	  r¨  éüÿÿÿ)rä  ro   r  r6   r^  r§   r÷  )	r1  rE   rþ   rs  Údescendentsr  rJ  rK  ro  s	   &&      €r'   Úget_fontnamesÚDDocument.subset_fonts.<locals>.repl_fontnames.<locals>.get_fontnamesÜ  sJ  ø€ ð
   �7�Ø!˜
�Ø×+Ñ+¨D°­G°ZÓ@ÀÕCÀBÕG�Ù$ XÓ.�ØÔ(Ø—L‘L Ô*Ø!×.Ñ.¨t°A­wÐ8IÓJ�Ø˜q•> WÔ,Ø �LØ)¨!�n¨Q¨rÐ2�Ø×'Ñ'¨×/Ò/Ü˜{¨3¨BÐ/Ó0�DØ"%§/¡/°$À4 /Ó"H�KØ ×%Ñ% kÓ2�Ø˜”7Ø$×)Ñ)¨#¨r°A­vÓ6�BÜ˜[×-Ñ-¨c°2¸µ6Ó:¸K×<LÑ<LÈTÐSUÐXYÕSYÓ<ZÓ[�BØ*°­6°BÐ7�HÙ(¨Ó2�HØÔ,ØŸ™ XÔ.Ø�r)   T©r‘  rG  ©r&  N)ÚotfÚttfÚwoffÚwoff2r¨  )
rS  rv  r”  r9   r  r:   rÁ  r‚  rã  r   )r1  rt  rg  r  Ú	font_xrefÚfont_extrø  Úextrr&  rs  Úname_setÚxref_setÚsubsetsr   rÜ  ro  Úfont_bufferss   &              @€r'   Úrepl_fontnamesÚ-Document.subset_fonts.<locals>.repl_fontnamesÊ  s#  ù€ ò	õô8 ˜3Ÿ>™>×*�Ø×+Ñ+¨A°DÐ+Ö9�AØ ! !¥�IØ  �t�HØ  �t�Hàð (ô ñ !ä˜8“} qÔ(¨X°a­[¸CÔ-?Ù à×+Ñ+¨IÓ6�DØ!% b¥�JÙ)¨#Ó1�EØ2>×2BÑ2BØ"¤S£U¬C«E´C³E¼3»5°>Ð$Bó3Ñ/�H¨ð —L‘L Ô+Û %˜Ø Ÿ™ TÖ*ñ !&ä¨:Ô6�DØ—L‘L §¡Ô+ØØ08ÀGÐ/L�L Ó,ô9 :ó +r)   c                óX   <€ SP                  4        F  w  pw  p pW9   g   K  Vu # 	  R # r+   )rD   )r   r3
  r  r@  r‚  s   &   €r'   Úfind_buffer_by_nameÚ2Document.subset_fonts.<locals>.find_buffer_by_name  s3   ø€ Ø,8×,>Ñ,>Ö,@Ñ(�Ñ(˜ 1 aØÖ#Ø!’Mñ -Añ r)   zNo fonts to subset.rÜ  :Né!   NÚcharszCannot subset r   zBuilt subset of font rw  Tr[  )r£   r{  Úpdf_subset_fonts2r´   rS  rv  rv   rˆ  r9   Úget_texttracerÈ   r7   r‚  rD   r'  r^  r_  ) r1  r5  r6  ra  rA  rD  rP  ri  rƒ  r†  Úold_fontsizeÚnew_fontsizer&  rÖ   rJ  rþ   r3
  r  r€  Úset_ucsÚset_gidrõ  Ú
old_bufferr�  rh  r  r3  rM  r|  Úwidth_tableÚ	def_widthr‚  s    f&&                            @r'   Úsubset_fontsÚDocument.subset_fonts%  ss  ù€ ÷8 Ü×5Ò5°cÓ:ˆCÜ×#Ò# C¬¬e°C·N±NÓ.CÓ)DÔEÙàˆõ	#õ$	õ0	2ò0>	õ@K	MõZ	ñ 	�sÔßßÜÐ-Ô/ÙàˆØˆØ&×+Ñ+Ö-ˆJØœC 
›OÕ+ŠLñ .ó ˆDð ×*Ñ*Ö,�Ü˜“:¤TÓ)ÙØ �<¨Õ,�Ù,¨XÓ6�Ø’>ÙØ9EÀfÕ9MÑ6�˜(Ñ$6 W¨gØ˜gŸ˜�AØ—K‘K  !¥Ô%Ø—K‘K  !¥Ö%ñ 'ð )1°(¸WÀgÐ<NÐ'O�˜VÓ$ó -ñ ð" :F×9KÑ9K×9MÑ5ˆJÑ5˜ 8¨WÙ% j°'¸!µ*¸gÀa½jÓIˆJÜ˜H“~ aÕ(ˆHØÒ!¤S¨£_¼¸J»Ô%GçÜ˜n¨X©L¸Ð:Ô;ÙßÜÐ/°©|¸1Ð=Ô>Ø×"Ñ"¨jÐ"Ó9ˆCØ˜1•vˆHÙ Ô)Ø—‘ØØð 'ó ˆHó
 &�	á)7¸	Ó)BÑ&�˜Yà×!Ñ! )¨XÔ6ç§)¡)Ù" 9¨k¸9ÖEñ &ð œC 
›OÕ+‹Lñ9 :Nð< Õ*Ð*r)   c                ó
  € \        V 4      p\        P                  ! \        P                  ! V4      \	        R4      \	        R4      \	        R4      4      p\        P
                  ! V4      '       d   \        P                  ! V4      '       g   V^8  d   R# \        \        4      hV^ 8  d   R# \        P                  ! W14       V'       d9   \        P                  ! V4       \        P                  ! VP                  4       R# R# )zActivate an OC layer.rà  rX  r}  N)rÎ   r£   r   rä  r  rI  r«  rÃ   ÚMSG_BAD_OC_LAYERÚpdf_select_layer_configÚpdf_set_layer_config_as_defaultrm  rÌ   )r&   rƒ  Ú
as_defaultra  Úcfgss   &&&  r'   Úswitch_layerÚDocument.switch_layer]  s»   € ä˜tÓ$ˆÜ×"Ò"Ü×!Ò! 3Ó'Ü˜Ó Ü˜Ó(Ü˜Ó#ó	ˆô ×!Ò! 4×(Ò(´×0CÒ0CÀT×0JÒ0JØ˜ŒzÙÜÔ.Ó/Ð/Ø�AŒ:ÙÜ×%Ò% sÔ3ßÜ×1Ò1°3Ô7Ü×!Ò! 3§>¡>Ö2ñ r)   c                ó�  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4      p\        V^V^,
          4      '       g   \        R\        4       \        V4       \        WB4      p\        P                  ! WAV4       V'       d   \        \        V4      4       R# R# )z!Replace object definition source.rÞ  r}  N)rÂ   r«  rÃ   rÎ   r£   r·  rÕ  rÁ  r¸  rd  ræ  r-  ÚJM_refresh_linksrÚ   )r&   r  r   rÖ   ra  Úxreflenr]  s   &&&&   r'   r_  ÚDocument.update_objectq  s�   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×$Ò$ SÓ)ˆÜ˜˜a ¨¥×+Ò+Ü�J¤Ô-Ü˜Ôä% cÓ0ˆÜ×Ò ¨7Ô3ßÜœl¨4Ó0Ö1ñ r)   c                óà  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4      pV^8  g   W8”  d   \        \        4      h\        P                  ! WQ^ 4      p\        P                  ! V4      '       g   \        \        4      h\        V4      pVP                  '       g   \        \        4      h\        WWW„4       ^Vn        R# )zReplace xref stream part.rÞ  N)rÂ   r«  rÃ   rÎ   r£   r·  r¸  r¹  r…  ÚMSG_IS_NO_DICTr.  rÌ   r¿  r/  r0  Údirty)	r&   r  r   r\  Úcompressra  rŸ  r  r%  s	   &&&&&    r'   r˜
  ÚDocument.update_stream€  s¯   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×$Ò$ SÓ)ˆØ�!Œ8�t”~ÜœlÓ+Ð+ä×$Ò$ S°Ó2ˆÜ× Ò  ×%Ò%ÜœnÓ-Ð-Ü  Ó(ˆØ�~�~ˆ~Üœ^Ó,Ð,Ü˜ 3Ô1ØˆŽ	r)   c                óp   € \        V ^ R7      pVP                  '       d   \        P                  ! V4      # ^ # )z!
Count versions of PDF document.
rß  )rÎ   rÌ   r£   Úpdf_count_versionsr—  s   & r'   Úversion_countÚDocument.version_count’  s-   € ô
 ˜t¨aÔ0ˆØ�>�>ˆ>Ü×+Ò+¨CÓ0Ð0Ùr)   c                	óˆ   € ^ RI Hp V! 4       pV P                  VVVV
VVVVVVVV	VVVVVVVVVR7       VP                  4       # )rx   ©rª  )r  r  r  rj
  r  r  r  r  r™  r  r  r  r  r  r  r  r  r  r   r!  )r;   rª  r"  rÄ  )r&   r  r  r  r  r  r  r™  r  r  r  rj
  r  r  r  r  r  r  r  r   r!  rª  Úbios   &&&&&&&&&&&&&&&&&&&&&  r'   r   ÚDocument.writeœ  sl   € õ. 	Ù‹iˆØ�	‰	ØØØØ#Ø%ØØ-Ø+Ø'ØØØØØ%Ø'Ø!ØØ"3Ø'Ø#5Ø /ð+ 	ô 	
ð. �|‰|‹~Ðr)   c                	ó&   € V P                   ! V/ VB # r+   )r   r  s   &*,r'   rè  ÚDocument.tobytesÎ  s   € Ø�zŠz˜4Ð* 6Ñ*Ð*r)   c                ób   € \        V 4       V P                  P                  V P                  4      # ©zPDF xref number of page.©ro  rì   r(  r]  r-   s   &r'   r  ÚDocument.xrefÑ  ó%   € ô 	�DÔØ�{‰{×$Ñ$ T§[¡[Ó1Ð1r)   Úkeepc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r†  r1  r
  Úsourcer6   Útargetrµ  r´   rs  r  r,   )rþ  s   "r'   rÿ  rt  ×  s0   € ÷ !3ñ !3�zð !3¨3ð !3¸ð !3Àdð !3ÐVZñ !3r)   c               ót  € V P                  V4      '       d'   V P                  V4      pV P                  VVRRR7       Vf   . pV P                  V4       F  pWS9   d   K  V P	                  W%R4       K  	  V P                  V4       F-  pV P                  W4      pV P	                  W%V^,          4       K/  	  R# )a¦  Copy a PDF dictionary object to another one given their xref numbers.

Args:
    doc: PDF document object
    source: source xref number
    target: target xref number, the xref must already exist
    keep: an optional list of 1st level keys in target that should not be
          removed before copying.
Notes:
    This works similar to the copy() method of dictionaries in Python. The
    source may be a stream object.
FT)r¤  r\  Nrñ  )Úxref_is_streamÚxref_stream_rawr˜
  rÞ
  r›  rä  )r1  r·  r¸  rµ  r   r�  rE   s   &&&$   r'   Ú	xref_copyÚDocument.xref_copy×  s¸   € ð ×Ñ˜f×%Ò%à×(Ñ(¨Ó0ˆFØ×ÑØØØØð	 ô ð Š<ØˆDØ×$Ñ$ VÖ,ˆCØŒ{ÙØ×Ñ˜V¨&Ö1ñ -ð
 ×$Ñ$ VÖ,ˆCØ×#Ñ# FÓ0ˆDØ×Ñ˜V¨$¨q­'Ö2ó -r)   c                ó  € \        V 4      p\        P                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \	        \
        4      hV^ 8”  d   \        P                  ! W14      pM\        P                  ! V4      pVP                  '       g   R# \        P                  ! WR4      pVP                  '       g   R# Rp\        P                  ! V4      '       d   Rp\        P                  ! V4      R R2pEMo\        P                  ! V4      '       d   RpEMO\        P                  ! V4      '       d   RpEM/\        P                  ! V4      '       d   Rp\        P                  ! V4      R pMø\        P                   ! V4      '       d   R	pMÙ\        P"                  ! V4      '       d   RpRpM¸\        P$                  ! V4      '       d%   R
p\        P&                  ! V4      '       d   RpM{RpMx\        P(                  ! V4      '       d   RpR\        P*                  ! V4       2pM@\        P,                  ! V4      '       d#   Rp\/        \        P0                  ! V4      4      pMRpVf   \3        V^^ 4      p	\5        V	4      pW‡3# )z+Get PDF dict key value of object at 'xref'.rñ  Nr  rH  r�  r<
  r7   r6   rœ  rè   rŠ	  rÆ
  r   rˆ	  rJ  Úunknownr¨  )rñ  rñ  )rÎ   r£   r·  rÕ  rÃ   r¸  rJ  rä  rÌ   r|  r9
  r  rI  r…  Ú
pdf_is_intr  Úpdf_is_realr÷  r–	  r—	  rô  r„  Úpdf_is_stringr	  r  ÚJM_object_to_bufferrÎ  )
r&   r  r�  ra  rŸ  r  Úsubobjr   rÈ   r%  s
   &&&       r'   rä  ÚDocument.xref_get_keyú  s	  € ä˜tÓ$ˆÜ×$Ò$ SÓ)ˆÜ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�!Œ8Ü×'Ò'¨Ó2‰Cä×#Ò# CÓ(ˆCØ�~�~ˆ~Ø#Ð#Ü×$Ò$ SÓ.ˆØ× × Ð Ø#Ð#ØˆÜ× Ò  ×(Ò(ØˆDÜ×&Ò& vÓ.¨qÐ1°Ð6ŠDÜ×Ò ×'Ò'ØŠDÜ×Ò˜v×&Ò&ØŠDÜ×Ò˜f×%Ò%ØˆDÜ×&Ò& vÓ.¨qÐ1‰DÜ×Ò˜v×&Ò&Ø‰DÜ×Ò˜v×&Ò&ØˆDØ‰DÜ×Ò˜v×&Ò&ØˆDÜ× Ò  ×(Ò(Ø‘à‘Ü×Ò˜v×&Ò&ØˆDØ”u×(Ò(¨Ó0Ð1Ð2‰DÜ× Ò  ×(Ò(ØˆDÜ$¤U×%=Ò%=¸fÓ%EÓF‰DàˆDØŠ<Ü% f¨a°Ó3ˆCÜ'¨Ó,ˆDØˆ|Ðr)   c                óì  € \        V 4      p\        P                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \	        \
        4      hV^ 8”  d   \        P                  ! W!4      pM\        P                  ! V4      p\        P                  ! V4      p. pV^ 8X  d   V# \        V4       F>  p\        P                  ! \        P                  ! WG4      4      pVP                  V4       K@  	  V# )zFGet the keys of PDF dict object at 'xref'. Use -1 for the PDF trailer.r¨  )rÎ   r£   r·  rÕ  rÃ   r¸  rJ  rä  r†  rS  r„  rˆ  ro   )	r&   r  ra  rŸ  r  rG   r¦   rg  r�  s	   &&       r'   rÞ
  ÚDocument.xref_get_keys,  sÃ   € ä˜tÓ$ˆÜ×$Ò$ cÓ*ˆÜ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�!Œ8Ü×'Ò'¨Ó3‰Cä×#Ò# SÓ)ˆCÜ×Ò Ó$ˆØˆØ�Œ6ØˆIÜ�q–ˆAÜ×#Ò#¤U×%;Ò%;¸SÓ%DÓEˆCØ�I‰I�cŽNñ ð ˆ	r)   c                ó¤   € V P                   '       g   V P                  '       d   \        R4      hV P                  VR4      ^,          R8X  d   R# R# )zCheck if xref is a font object.rÞ  r  z/FontTF©rÂ   r«  rÃ   rä  ©r&   r  s   &&r'   Úxref_is_fontÚDocument.xref_is_font?  sB   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø×Ñ˜T 6Ó*¨1Õ-°Ô8ÙÙr)   c                ó¤   € V P                   '       g   V P                  '       d   \        R4      hV P                  VR4      ^,          R8X  d   R# R# )z!Check if xref is an image object.rÞ  r¶  rm  TFrÉ  rÊ  s   &&r'   Úxref_is_imageÚDocument.xref_is_imageG  sB   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø×Ñ˜T 9Ó-¨aÕ0°HÔ<ÙÙr)   c                ó‚   € \        V ^ R7      pVP                  '       g   R# \        \        P                  ! W!4      4      # )z!Check if xref is a stream object.rß  F)rÎ   rÌ   rè   r£   Úpdf_obj_num_is_streamr  s   && r'   rº  ÚDocument.xref_is_streamO  s0   € ä˜t¨aÔ0ˆØ�~�~ˆ~ÙÜ”E×/Ò/°Ó:Ó;Ð;r)   c                ó¤   € V P                   '       g   V P                  '       d   \        R4      hV P                  VR4      ^,          R8X  d   R# R# )z Check if xref is a form xobject.rÞ  r¶  rn  TFrÉ  rÊ  s   &&r'   Úxref_is_xobjectÚDocument.xref_is_xobjectV  sB   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ø×Ñ˜T 9Ó-¨aÕ0°GÔ;ÙÙr)   c                ót   € ^ p\        V ^ R7      pVP                  '       d   \        P                  ! V4      pV# )zGet length of xref table.rß  )rÎ   rÌ   r£   r·  )r&   rŸ  ra  s   &  r'   r„  ÚDocument.xref_length^  s1   € àˆÜ˜t¨aÔ0ˆØ�>�>ˆ>Ü×(Ò(¨Ó-ˆGØˆr)   c                ó   € V P                   '       d   \        R4      h\        '       d%   \        P                  ! V P
                  WV4      pV# \        V 4      p\        P                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \        \        4      hV^ 8”  d   \        P                  ! WQ4      pM\        P                  ! V4      p\        \        P                  ! V4      W#4      p\        V4      p	V	# )z#Get xref object source as a string.r¾   r¨  )rÂ   rÃ   r  r   r^  rÄ   rÎ   r£   r·  rÕ  r¸  rJ  rä  rÃ  rú  ÚJM_EscapeStrFromBuffer)
r&   r  r\  r™  rI   ra  rŸ  r  r%  r   s
   &&&&      r'   r^  ÚDocument.xref_objectf  sÄ   € à�>�>ˆ>ÜÐ.Ó/Ð/ß‹;Ü×#Ò# T§Y¡Y°À%ÓHˆCØˆJÜ˜tÓ$ˆÜ×$Ò$ SÓ)ˆÜ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�!Œ8Ü×'Ò'¨Ó2‰Cä×#Ò# CÓ(ˆCÜ!¤%×"<Ò"<¸SÓ"AÀ:ÓUˆÜ% cÓ*ˆØˆr)   c           	     óö  € V P                   '       d   \        R4      hV'       d<   \        V\        4      '       d&   \        P                  V4      \        4       R039  d   \        R4      h\        V\        4      '       d@   V'       d8   V^ ,          R8X  d5   \        P                  VR,          4      \        4       8w  d   \        R4      h\        V 4      p\        P                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \        \        4      hVR8w  d   \        P                  ! WA4      pM\        P                  ! V4      p\        WbV4      pVP                  '       g   R# VR8w  d   \        P                   ! WAV4       R# \        P"                  ! V4      p\%        V4       FC  p	\        P&                  ! V\        P(                  ! Wy4      \        P*                  ! Wy4      4       KE  	  R# )z&Set the value of a PDF dictionary key.r¾   rˆ	  z	bad 'key'r‰	  zbad 'value'Nr¨  )rÂ   rÃ   r@   ræ  ÚINVALID_NAME_CHARSÚintersectionrÁ  rÎ   r£   r·  rÕ  r¸  rJ  rä  ÚJM_set_object_valuerÌ   r-  r†  rS  rU  rˆ  r‡  )
r&   r  r�  r¸   ra  rŸ  r  r]  rG   rg  s
   &&&&      r'   r›  ÚDocument.xref_set_keyy  sx  € à�>�>ˆ>ÜÐ.Ó/Ð/çœ* S¬#×.Ò.Ô2D×2QÑ2QÐRUÓ2VÔ_bÓ_dÐgjÐfkÐ^lÔ2lÜ˜[Ó)Ð)Ü˜%¤×%Ò%¯U°e¸AµhÀ#´oÔJ\×JiÑJiÐjoÐprÕjsÓJtÔx{Óx}ÔJ}Ü˜]Ó+Ð+ä˜tÓ$ˆÜ×$Ò$ SÓ)ˆô ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�2Œ:Ü×'Ò'¨Ó2‰Cä×#Ò# CÓ(ˆCÜ% c°Ó6ˆØ×!×!Ð!ÙØ�2Œ:Ü×#Ò# C¨wÖ7ä×"Ò" 7Ó+ˆAÜ˜1–X�Ü×"Ò"ØÜ×.Ò.¨wÓ:Ü×.Ò.¨wÓ:öó r)   c                óî  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \        \        4      hV^ 8¼  d   \        P                  ! W!^ 4      pM\        P                  ! V4      pRp\        P                  ! V4      '       d"   \        P                  ! W!4      p\        V4      pV# )zGet decompressed xref stream.rÞ  Nr¨  )rÂ   r«  rÃ   rÎ   r£   r·  rÕ  r¸  r¹  rä  r!  Úpdf_load_stream_numberr#  ©r&   r  ra  rŸ  r  r$  r%  s   &&     r'   r—
  ÚDocument.xref_streamŸ  s¾   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×$Ò$ cÓ*ˆÜ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�1Œ9Ü×(Ò(¨#°QÓ7‰Cä×#Ò# SÓ)ˆCØˆÜ×Ò ×$Ò$Ü×.Ò.°Ó:ˆCÜ  #Ó&ˆAØˆr)   c                óî  € V P                   '       g   V P                  '       d   \        R4      h\        V 4      p\        P
                  ! V4      p\        V^V^,
          4      '       g   VR8w  d   \        \        4      hV^ 8¼  d   \        P                  ! W!^ 4      pM\        P                  ! V4      pRp\        P                  ! V4      '       d"   \        P                  ! W!4      p\        V4      pV# )z&Get xref stream without decompression.rÞ  Nr¨  )rÂ   r«  rÃ   rÎ   r£   r·  rÕ  r¸  r¹  rä  r!  Úpdf_load_raw_stream_numberr#  râ  s   &&     r'   r»  ÚDocument.xref_stream_raw±  s¾   € à�>�>ˆ>˜T×.×.Ð.ÜÐ;Ó<Ð<Ü˜tÓ$ˆÜ×$Ò$ cÓ*ˆÜ˜˜a ¨¥×+Ò+°¸´
ÜœlÓ+Ð+Ø�1Œ9Ü×(Ò(¨#°QÓ7‰Cä×#Ò# SÓ)ˆCØˆÜ×Ò ×$Ò$Ü×2Ò2°CÓ>ˆCÜ  #Ó&ˆAØˆr)   c                ód  € \        V 4      p\        P                  ! \        P                  ! V4      \	        R4      4      pVP
                  '       g   \        \        \        4       \        P                  ! V\	        R4      4      p^ pVP
                  '       d   \        P                  ! V4      pV# )z"Get xref of document XML metadata.rà  rº  )
rÎ   r£   r  rä  r  rÌ   rÁ  r1  rÂ  r  )r&   ra  r¹  rÏ  r  s   &    r'   Úxref_xml_metadataÚDocument.xref_xml_metadataÃ  s|   € ä˜tÓ$ˆÜ×!Ò!¤5×#4Ò#4°cÓ#:¼HÀVÓ<LÓMˆØ��ˆÜ”_Ô&:Ô;Ü× Ò  $¬°Ó(<Ó=ˆØˆØ�>�>ˆ>Ü×#Ò# SÓ)ˆDØˆr)   c                	ó   € V P                   # r+   )r¨  r-   s   &r'   rê
  ÚDocument.<lambda>Ñ  s   €  D§M¢Mr)   )r­  r®  r°  r¯  rÆ  r=  r¨  r²  r-
  rÂ   r«  r¬  rË  r   rÄ   r³  rõ   ru  )r   é	   )NNNNrx   rx   rr  r¨  )r¨  r¨  r¨  )r¨  r¨  r¨  rx   rx  rz  r<  )r¨  éS  éJ  ©NNrx   NN)r¨  r™  NN)rx   r¨  rx   )r¨  )rx   rx   N)r   FTTTFFFFFr™  éÿ  NNTr™  r™  rx   F)ré  rx   Nrƒ  )r   NNNFr%  )r¨  r¨  r¨  r¨  TTrx   r™  )Nrr  rí  rî  ÚhelvNru  r+   )Nrx   rx   rr  rã	  rw  )
Nrx   rx   TTTTTFNrv  )rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   rx   r™  rð  NNr™  rx   rx   F)TTTTTTTrx   TTTTT)FNNN)NNNNN)rx   NNN)NNNNNNNrx   ©FF)rx   Nr™  r™  )FFFFFFFFFFFFr™  rð  NNr™  rx   rx   F)rÄ   rË  r³  Ú__dict__)Àr/   r0   r1   r2   r|  rŠ  rÜ  rà  ÚtypingÚoverloadrŒ  ÚsysÚversion_infor‘   rÖ  rï   rè  rï  rü  r  r  r;  r¤  r­  r´  r¹  r¼  rÇ  rÊ  rÍ  rÛ  rá  rõ  rþ  r  r  r  r   r'  r,  r/  rA  rD  rQ  rî  r5  ra  rf  r{  ri  rp  rŽ  r“  r˜  rž  rw  rx  r�  rÉ  r·  r»  r„  r…  rÒ  rÖ  rÛ  rß  rç  r²  rð  r  r  r#  r(  r4  rU  rZ  ra  re  rÚ  ry  r‹  rí  r”  r™  r�  r¤  rª  r³  r·  r½  rÄ  rÐ  rØ  rÜ  rÈ  rì  ró  ré  r	  r	  r„  rƒ  r	  r	  r"	  r&	  r+	  r1	  r5	  r:	  r>	  rG	  rL	  rP	  rT	  rI  r\	  rg	  rj	  r¥  rw	  r}	  rŒ	  r�	  r   rž	  rÇ  rò  r­	  rÕ  rv  r·	  r¼	  r(  rÆ	  rÌ	  rX  r]  rä  r  ræ	  rï	  ró	  rÃ  r'
  r
  rN
  r"  ro
  rs
  r›
  r¥
  r¬
  rÃ  rº
  rÁ
  rÊ
  r’
  rÐ  rõ
  rÿ
  r  r  r'  r-  r2  r“  r›  r_  r˜
  r¨  r   rè  r  r¼  rä  rÞ
  rË  rÎ  rº  rÔ  r„  r^  r›  r—
  r»  rè  Ú	__slots__rË  Ú	is_streamr3   r,   r)   r'   rÁ   rÁ   	  s�  † õõ,;ò.òð ‡_�_÷ó ðð ×Ñ™6Ô!Ø	�‰ô	ó 
ð	ð 
�‰ô	ó 
ð	õ!õW<õrõXò)õ($òò@9ò+÷C@ð C@÷LDPð DPòL
õõò>
+ò-ò^%õ("òHDõL%÷ð ò<ò@ò)ò"ò õ(ò	ò/ò6 õpò0)ò	8ò	 ò
'õHð8 ñó ðõ(/õDòL
ò9ð@ Tð @¸4÷ @ð$ ñ3ó ð3òòõ$÷.;ð ;ò2<÷&ð &ò
C ÷J$ð $õL)õ&õ	*õõ,÷ð õ>/òbõ</òb/õ6 ÷pcð cõJò,ò2õò"-õ^AHòF÷$ð ÷$
ð 
òKõð4!ð #'ð	!ð
 ð!ð &*ð!ð #ð!ð  ð!ð  ÷!÷FLð Lõ*ò÷ 4ð 4òlõ"õ
ò{õ,)÷Vð ð<t(ñ ð	t(ñ
 ðt(ñ ðt(ñ ðt(ð ðt(ð ðt(ð ðt(ð ðt(ð ðt(ð ðt(ð ôt(ðn ñ$ó ð$ð ñó ðð ñó ðð, ñó ðð ñ;ó ð;ð ñó ðò	8ò&òòPòòòò
"õ
4ò%òð ñ9ó ð9ð ñ/ó ð/òõ2ò(ò<%òð ôó ð÷:;ð ;ð( ñó ðõð0 ñó ð÷ð ò$/ò*ð$ ñ	5ó ð	5òò(òð" ôó ðð ôó ð÷(ð (ò:õHð ñó ðò0/õ 9òv*õõ4U,õn2òAõF\?ò|/ò"Y÷Y;ð Y;÷v"
ð "
òH õ6õ?/õB:õ"÷.;ð ;õz÷,Gð GõR1õ /ò *2÷X}ð }÷~jJð jJòXA÷$v+ð v+õp	3õ(2õð$ ñó ðõ0òd+ð ñ2ó ð2ð
!3ÈT÷ !3òF0òdò&òõ<òòõò&$òLó$ó$
ñ C€IáÒ1Ó2€GØ…Ir)   rÁ   c                  ó>   € ] tR tRtR tR tR
R ltR tR tR t	Rt
R	# )ÚDocumentWriteri×  c                	ó   € V # r+   r,   r-   s   &r'   rÜ  ÚDocumentWriter.__enter__Ù  rÞ  r)   c                	ó&   € V P                  4        R # r+   r�  rƒ  s   &*r'   rà  ÚDocumentWriter.__exit__Ü  r’  r)   c                	ó,  € \        V\        4      '       d   M<\        VR 4      '       d   \        V4      pM\        VR4      '       d   VP                  p\        V\        4      '       d7   \        P
                  ! W\        P
                  P                  4      V n        R# \        V4      p\        P
                  ! W2\        P
                  P                  4      V n        VP                  4       ^ 8X  g   Q h\        V P                  R4      '       g   Q hR# )r§  r   Ú_outN)r@   ræ  r=   r   r£   ÚFzDocumentWriterÚPathType_PDFrÄ   rC	  ÚOutputType_PDFrW  )r&   r   r!  rF	  s   &&& r'   r‘   ÚDocumentWriter.__init__ß  sÅ   € Ü�tœS×!Ò!ØÜ�d˜J×'Ò'Ü˜“:‰DÜ�d˜F×#Ò#Ø—9‘9ˆDÜ�tœS×!Ò!Ü×.Ò.°¼u×?UÑ?U×?bÑ?bÓcˆDŽIô (¨Ó.ˆCÜ×.Ò.°¼e×>TÑ>T×>cÑ>cÓdˆDŒIØ×'Ñ'Ó)¨QÔ.Ð.Ð.Ü˜DŸI™I v×.Ò.Ð.Ò.r)   c                	ót   € \        V4      p\        P                  ! V P                  V4      p\	        V4      pV# r+   )r  r£   Úfz_begin_pagerÄ   rG  )r&   rJ  Ú	mediabox2rR  Údevice_wrappers   &&   r'   Ú
begin_pageÚDocumentWriter.begin_pageö  s2   € Ü# HÓ-ˆ	Ü×$Ò$ d§i¡i°Ó;ˆÜ&¨Ó/ˆØÐr)   c                	óF   € \         P                  ! V P                  4       R # r+   )r£   Úfz_close_document_writerrÄ   r-   s   &r'   r�  ÚDocumentWriter.closeü  s   € Ü×&Ò&¨¯	©	Ö2r)   c                	óF   € \         P                  ! V P                  4       R # r+   )r£   Úfz_end_pagerÄ   r-   s   &r'   Úend_pageÚDocumentWriter.end_pageÿ  s   € Ü×Ò˜4Ÿ9™9Ö%r)   r$  N©r`   )r/   r0   r1   r2   rÜ  rà  r‘   r
  r�  r  r3   r,   r)   r'   rû  rû  ×  s    † òòô/ò.ò3ö&r)   rû  c                  ó0  € ] tR tRtR tRR ltR t]R 4       t]R 4       t	]R 4       t
RR	 lt]R
 4       t]R 4       tRR ltRR lt]R 4       tR tRR lt]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tRR ltR tR tRtR# )rã  i   c                	ó0   € \        V 4      \        Jd   R # R # r+   )rÈ   rã  r-   s   &r'   r[  ÚFont.__del__   s   € Ü�‹:œTÓ!Ùñ "r)   Nc                	ó  € V'       df   \        VR 4      '       d   VP                  4       pM!\        V\        4      '       d   \	        V4      p\        V\        4      '       g   \        R4      h\        V\        4      '       d×   VP                  4       pRV9   g   RV9   g   RV9   d   \        R4       VR
9   d   ^ pMœVP                  R4      '       d   ^pM‚VP                  R4      '       d   ^pMhVP                  R4      '       d   ^pMNV\        P                  4       9   d   ^ R	IpVP                  V4      pR	p?MV^ 8  d   \        P                  W4      p\         P"                  ! V4      p\%        WW4WÖWxWš4
      pWàn        R	# )rÄ  zbad type: 'fontbuffer'rˆ	  Ú\r   z!Warning: did you mean a fontfile?úchina-sÚkoreaÚjapanN)Úcjkúchina-túchina-ts)r=   rÄ  r@   r©  r  rÃ   ræ  rç  rv   r5   Úfitz_fontdescriptorsrˆ  Úpymupdf_fontsÚmyfontÚBase14_fontdictr:   r£   rÁ  ÚJM_get_fontrÄ   )r&   rþ   r%  r&  ÚscriptrI  ræ  Úis_boldÚ	is_italicÚis_serifÚembedÚfname_lowerr   rH  rÜ  s   &&&&&&&&&&&    r'   r‘   ÚFont.__init__	   sK  € ÷ Ü�z :×.Ò.Ø'×0Ñ0Ó2‘
Ü˜J¬	×2Ò2Ü" :Ó.�
Ü˜j¬%×0Ò0Ü Ð!9Ó:Ð:ä�h¤×$Ò$Ø"Ÿ.™.Ó*ˆKØ�kÔ! T¨[Ô%8¸CÀ;Ô<NÜÐ;Ô<àÐ<Ô<Ø‘à×'Ñ'¨	×2Ò2Ø‘Ø×'Ñ'¨×0Ò0Ø‘Ø×'Ñ'¨×0Ò0Ø‘ØÔ 4× 9Ñ 9Ó ;Ô;Û$Ø*×1Ñ1°+Ó>�
Ø�Ù!à˜A”Ü*×.Ñ.¨xÓB�ä×1Ò1°(Ó;ˆÜ˜8Ø tØ xó8ˆð Ž	r)   c                	ó"   € R V P                    R2# )zFont('rÛ  ©r   r-   s   &r'   rï   ÚFont.__repr__<   s   € Ø˜Ÿ	™	�{ "Ð%Ð%r)   c                óB   € \         P                  ! V P                  4      # )z Return the glyph ascender value.)r£   Úfz_font_ascenderrÄ   r-   s   &r'   r:  ÚFont.ascender?   ó   € ô ×%Ò% d§i¡iÓ0Ð0r)   c                	ó6   € V P                   P                  4       # r+   )rÄ   Úfz_font_bboxr-   s   &r'   r6  Ú	Font.bboxD   s   € à�y‰y×%Ñ%Ó'Ð'r)   c                	ó¾   € \         P                  ! \         P                  ! V P                  P                  P
                  4      4      p\         P                  ! V4      # r+   )r£   rF  Úll_fz_keep_bufferrÄ   rÌ   r3
  Úfz_buffer_extract_copy)r&   r4  s   & r'   r3
  ÚFont.bufferH   s<   € ä—.’.¤%×"9Ò"9¸4¿9¹9×;OÑ;O×;VÑ;VÓ"WÓXˆÜ×+Ò+¨WÓ5Ð5r)   c           	     óz  € \         P                  ! V4      p. pV Fœ  p	\        V	4      p
V'       d6   \         P                  ! V P                  V
4      pV^ 8¼  d   V P                  pM$\         P
                  ! V P                  W¤V4      w  r¼VP                  V\         P                  ! XWµ4      ,          4       Kž  	  V# )z@Return tuple of char lengths of unicode 'text' under a fontsize.)r£   rÁ  ÚordÚfz_encode_character_scrÄ   Ú!fz_encode_character_with_fallbackro   rð  )r&   r   rÿ   rI  r$  ÚwmodeÚ
small_capsrH  r¦   Úchrõ  ÚgidrÜ  s   &&&&&&&      r'   Úchar_lengthsÚFont.char_lengthsM   s”   € ä×1Ò1°(Ó;ˆØˆÛˆBÜ�B“ˆAßÜ×2Ò2°4·9±9¸aÓ@�Ø˜!”8ØŸ9™9�Døä!×CÒCÀDÇIÁIÈqÐZ^Ó_‘	�Ø�I‰I�h¤×!7Ò!7¸¸cÓ!IÕIÖJñ ð ˆ	r)   c                óB   € \         P                  ! V P                  4      # )z!Return the glyph descender value.)r£   Úfz_font_descenderrÄ   r-   s   &r'   r;  ÚFont.descender\   s   € ô ×&Ò& t§y¡yÓ1Ð1r)   c                	óœ  a€ \         P                  ! V P                  P                  4      pV'       g   R # \	        V\         P
                  4      '       g   Q h\        '       d|   VP                  .oV3R lpV! ^4      pV! ^4      pV! ^4      pV! ^4      pV! ^4      pV! ^4      pV! ^4      p	V! ^4      p
V! ^4      pV! ^4      pV! ^4      pV! ^4      pV! ^4      pR\        '       d   XMVP                  R\        '       d   XMVP                  R\        '       d   XMVP                  R\        '       d   XMVP                  R\        '       d   XMVP                  R\        '       d   XMVP                  R\        '       d   X	MVP                  R	\        '       d   X
MVP                  R
\        '       d   XMVP                  R\        '       d   XMVP                   R\        '       d   XMVP"                  R\        '       d   XMVP$                  R\        '       d   XMVP&                  R\        '       d   X/# VP(                  /# )Nc                ój   <€ S^ ,          ^V ,          ^,
          ,          pS^ ,          V ,	          S^ &   V# ru  r,   )ÚbitsrI   rH   s   & €r'   ÚbÚFont.flags.<locals>.bk   s/   ø€ Ø˜•d˜q D�y¨!�mÕ,�Ø˜•t˜t•|��!‘Ø�
r)   ÚmonoÚserifrÎ  rè  Ú
substituteÚstretchz	fake-boldzfake-italicÚopentypezinvalid-bboxr  zcjk-langr(  znever-embed)r£   Úll_fz_font_flagsrÄ   rÌ   r@   Úfz_font_flags_tr¢   Úis_monor'  r%  r&  Úft_substituteÚ
ft_stretchÚ	fake_boldÚfake_italicÚhas_opentypeÚinvalid_bboxr  Úcjk_langr(  Únever_embed)r&   r  rI  rR  r'  r%  r&  rS  rT  rU  rV  rW  rX  rY  r(  rZ  rH   s   &               @r'   rÐ  Ú
Font.flagsa   s³  ø€ ä×"Ò" 4§9¡9×#7Ñ#7Ó8ˆßÙÜ˜1œe×3Ñ3×4Ò4Ð4Ð4ç‹;à—‘�ˆAõñ ˜“dˆGÙ˜“tˆHÙ˜“dˆGÙ˜!›ˆIÙ˜a›DˆMÙ˜1›ˆJÙ˜!›ˆIÙ˜A›$ˆKÙ˜Q›4ˆLÙ˜Q›4ˆLÙ˜“tˆHÙ�a“DˆEÙ˜A›$ˆKà¯;«;¡¸A¿I¹IØ¯K«K¡¸Q¿Z¹ZØ¯;«;¡¸A¿I¹IØ¯[«[¡	¸a¿k¹kØ·³¡À!Ç/Á/Ø¯k«k¡
¸q¿|¹|Ø¯[«[¡	¸a¿k¹kØ¯{«{¡ÀÇÁØ·³¡ÀÇÁØ·³¡ÀÇÁØ¯K«K¡¸Q¿U¹UØ¯K«K¡¸Q¿Z¹ZØ¯«¡¸!¿'¹'Ø¯{«{ ðð 	ð ABÇÁðð 	r)   c                ó  € \         P                  ! V4      pV'       d6   \         P                  ! V P                  V4      pV^ 8¼  d   V P                  pM$\         P                  ! V P                  WV4      w  rx\         P
                  ! XWt4      # )z2Return the glyph width of a unicode (font size 1).)r£   rÁ  r;  rÄ   r<  rð  )	r&   Úchr_rI  r$  r=  r>  rH  r@  rÜ  s	   &&&&&&   r'   Úglyph_advanceÚFont.glyph_advance�   sj   € ä×1Ò1°(Ó;ˆßÜ×.Ò.¨t¯y©y¸$Ó?ˆCØ�aŒxØ—y‘y�øä×?Ò?ÀÇ	Á	È4ÐY]Ó^‰IˆCÜ×%Ò% d¨CÓ7Ð7r)   c                óX  € \         P                  ! V4      pV'       d6   \         P                  ! V P                  V4      pV^ 8¼  d   V P                  pM$\         P                  ! V P                  WV4      w  rg\        \         P                  ! XV\         P                  ! 4       4      4      # )z1Return the glyph bbox of a unicode (font size 1).)r£   rÁ  r;  rÄ   r<  r+  Úfz_bound_glyphr|  )r&   ÚcharrI  r$  r>  rH  r@  rÜ  s   &&&&&   r'   Ú
glyph_bboxÚFont.glyph_bbox˜   sx   € ä×1Ò1°(Ó;ˆßÜ×.Ò.°·	±	¸4Ó@ˆCØ�aŒxØ—y‘y�øä×?Ò?ÀÇÁÈDÐZ^Ó_‰IˆCÜ”E×(Ò(¨$°´U·^²^Ó5EÓFÓGÐGr)   c                	óB   € V P                   P                  P                  # r+   )rÄ   rÌ   r]  r-   s   &r'   r]  ÚFont.glyph_count£   s   € à�y‰y×#Ñ#×/Ñ/Ð/r)   c                ó   € \        V4      # )z$Return the unicode for a glyph name.)Úglyph_name_to_unicoderÒ  s   &&r'   rh  ÚFont.glyph_name_to_unicode§   s   € ä$ TÓ*Ð*r)   c                ó&  € V'       d=   \         P                  ! V4      p\         P                  ! V P                  WV4      w  rxV# V'       d$   \         P                  ! V P                  V4      pV# \         P
                  ! V P                  V4      pV# )z0Check whether font has a glyph for this unicode.)r£   rÁ  r<  rÄ   r;  rï  )	r&   rn  rI  r$  r6  r>  rH  r@  rÜ  s	   &&&&&&   r'   Ú	has_glyphÚFont.has_glyph«   sv   € çÜ×5Ò5°hÓ?ˆDÜ×?Ò?ÀÇ	Á	È3ÐX\Ó]‰IˆCð ˆ
÷	 Ü×2Ò2°4·9±9¸cÓB�ð ˆ
ô ×/Ò/°·	±	¸3Ó?�Øˆ
r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_font_is_boldrÄ   r-   s   &r'   r%  ÚFont.is_bold·   s   € ä×$Ò$ d§i¡iÓ0Ð0r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_font_is_italicrÄ   r-   s   &r'   r&  ÚFont.is_italic»   s   € ä×&Ò&¨¯	©	Ó2Ð2r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_font_is_monospacedrÄ   r-   s   &r'   Úis_monospacedÚFont.is_monospaced¿   s   € ä×*Ò*¨D¯I©IÓ6Ð6r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_font_is_serifrÄ   r-   s   &r'   r'  ÚFont.is_serifÃ   s   € ä×%Ò% t§y¡yÓ1Ð1r)   c                	ó   € R # r%  )rÄ   r£   rP  rÌ   r¢   ÚcppyyÚgblÚ"mupdf_mfz_font_flags_ft_substituterS  Úll_fz_font_t3_procsÚpdf_font_writing_supported)r&   rÜ  rÐ  r{  rS  s   &    r'   Úis_writableÚFont.is_writableÇ   s   € ár)   c                	óF   € \         P                  ! V P                  4      pV# r+   )r£   Úfz_font_namerÄ   rk  s   & r'   r   Ú	Font.nameÚ   s   € ä× Ò  §¡Ó+ˆàˆ
r)   c                óŽ  € V P                   p\        P                  ! V4      p^ p	\        V\        4      '       g   \        \        4      hV Fm  p
\        V
4      pV'       d!   \        P                  ! W{4      pV^ 8¼  d   TpM\        P                  ! W{WH4      w  rÍV	\        P                  ! XWÅ4      ,          p	Ko  	  W’,          p	V	# )z1Return length of unicode 'text' under a fontsize.)rÄ   r£   rÁ  r@   ræ  r¿  ÚMSG_BAD_TEXTr:  r;  r<  rð  )r&   r   rÿ   rI  r$  r=  r>  ÚthisfontrH  r¦   r?  rõ  r@  rÜ  s   &&&&&&&       r'   Útext_lengthÚFont.text_lengthà   s¥   € à—9‘9ˆÜ×1Ò1°(Ó;ˆØˆÜ˜$¤×$Ò$Üœ\Ó*Ð*ÛˆBÜ�B“ˆAßÜ×2Ò2°8Ó?�Ø˜!”8Ø#�Døä!×CÒCÀHÐQWÓ^‘	�Ø”%×(Ò(¨¨sÓ:Õ:ŠBñ ð 	�ˆØˆ	r)   c                ó   € \        V4      # )z$Return the glyph name for a unicode.)Úunicode_to_glyph_name)r&   r?  s   &&r'   r‹  ÚFont.unicode_to_glyph_nameó   s   € ä$ RÓ(Ð(r)   c                ó°   € \         P                  ! V P                  4      pV Uu. uF  q"P                  NK  	  pp\	        V4      p\        V4      pV# u upi )z5
Returns sorted list of valid unicodes of a fz_font.
)r£   Úfz_enumerate_font_cmap2rÄ   ÚucsrÁ  Úsorted)r&   Úucs_gidsrg  ÚucssÚucss_uniqueÚucss_unique_sorteds   &     r'   Úvalid_codepointsÚFont.valid_codepoints÷   sM   € ô ×0Ò0°·±Ó;ˆÙ'Ó(™x˜!—”™xˆÐ(Ü˜$“iˆÜ# KÓ0ÐØ!Ð!ùò )s   ¥Ar$  )
NNNrx   Nr¨  rx   rx   rx   r™  )rr  Nrx   rx   rx   )Nrx   rx   rx   )Nrx   rx   )r/   r0   r1   r2   r[  r‘   rï   r{  r:  r6  r3
  rA  r;  rÐ  r^  rc  r]  rh  rk  r%  r&  ru  r'  r€  r   rˆ  r‹  r•  r3   r,   r)   r'   rã  rã     s,  † òô1òf&ð ñ1ó ð1ð ñ(ó ð(ð ñ6ó ð6ôð ñ2ó ð2ð ñ)ó ð)ôV	8ô	Hð ñ0ó ð0ò+ô
ð ñ1ó ð1ð ñ3ó ð3ð ñ7ó ð7ð ñ2ó ð2ð ñó ðð$ ñó ðô
ò&)ö"r)   rã  c                  ó"   € ] tR tRtR tR tRtR# )rù  i!  c                	ó>   € \        V 4      \        J g   R # RV n        R # rZ  )rÈ   rù  rõ   r-   s   &r'   r[  ÚGraftmap.__del__!  s   € Ü�D‹zœXÓ%ÙØˆŽr)   c                	ób   € \        V4      p\        P                  ! V4      pW0n        R V n        R# )TN)rÎ   r£   Úpdf_new_graft_maprÄ   rõ   )r&   r1  ÚdstÚmap_s   &&  r'   r‘   ÚGraftmap.__init__	!  s(   € Ü˜sÓ#ˆÜ×&Ò& sÓ+ˆØŒ	ØˆŽr)   ro  N)r/   r0   r1   r2   r[  r‘   r3   r,   r)   r'   rù  rù  !  s   † òö
r)   rù  c                  óê   € ] tR tRtR tR tR tR tR tR t	R t
R	 t]R
 4       t]R 4       t]R 4       t]R R l4       t]R 4       t]R 4       t]R 4       tRR ltRR ltR t]R 4       tRtRtR# )ÚLinki!  c                	ó&   € V P                  4        R # r+   )rö   r-   s   &r'   r[  ÚLink.__del__!  s   € Ø�‰Žr)   c                	óV   € \        V\        P                  4      '       g   Q hWn        R # r+   )r@   r£   ÚFzLinkrÄ   )r&   rÄ   s   &&r'   r‘   ÚLink.__init__!  s   € Ü˜4¤§¡×.Ò.Ð.Ð.ØŽ	r)   c                	óP   € \        V 4       R \        V P                  4      ,           # ©zlink on ©ro  ræ  rì   r-   s   &r'   rï   ÚLink.__repr__!  ó   € Ü�DÔØœC §¡Ó,Õ,Ð,r)   c                	óP   € \        V 4       R \        V P                  4      ,           # r§  r¨  r-   s   &r'   rò   ÚLink.__str__!  rª  r)   c                	ó´   € \        V^ R7      pVP                  '       g   R# \        P                  ! W2^ 4      pVP                  '       g   R# \	        V4      pV# ©rx   rß  N)rÎ   rÌ   r£   r¹  r‘  ©r&   r1  r  ra  Úlink_objrI  s   &&&   r'   Ú_borderÚLink._border !  sJ   € Ü˜s¨QÔ/ˆØ�~�~ˆ~ÙÜ×)Ò)¨#°QÓ7ˆØ×"×"Ð"ÙÜ˜HÓ%ˆØˆr)   c                	óÎ   € \        V^ R7      pVP                  '       g   R# \        P                  ! W2^ 4      pVP                  '       g   \	        \
        4      h\        V4      pV# r®  )rÎ   rÌ   r£   r¹  rÃ   r¸  r¢  r¯  s   &&&   r'   Ú_colorsÚLink._colors*!  sR   € Ü˜s¨QÔ/ˆØ�~�~ˆ~ÙÜ×)Ò)¨3°aÓ8ˆØ×"×"Ð"ÜœlÓ+Ð+Ü˜XÓ&ˆØˆr)   c                	ó"   € R V n         RV n        R # rZ  )rì   rõ   r-   s   &r'   rö   ÚLink._erase4!  s   € ØˆŒØˆŽr)   c                	ó¶   € \        V^ R7      pVP                  '       g   R# \        P                  ! WC^ 4      pVP                  '       g   R# \	        WV4      pV# r®  )rÎ   rÌ   r£   r¹  rŽ  )r&   r”  r1  r  ra  r°  rI  s   &&&&   r'   Ú
_setBorderÚLink._setBorder8!  sL   € Ü˜s¨QÔ/ˆØ�~�~ˆ~ÙÜ×)Ò)¨#°QÓ7ˆØ×"×"Ð"ÙÜ ¨XÓ6ˆØˆr)   c                	óv   € V P                  V P                  P                  P                  V P                  4      # r+   )r±  rì   rÄ   r  r-   s   &r'   r”  ÚLink.borderB!  ó'   € à�|‰|˜DŸK™K×.Ñ.×3Ñ3°T·Y±YÓ?Ð?r)   c                	óv   € V P                  V P                  P                  P                  V P                  4      # r+   )r´  rì   rÄ   r  r-   s   &r'   r  ÚLink.colorsF!  r½  r)   c                óì  € \        V R4      '       d   V P                  f   \        R4      hV P                  P                  P                  '       g'   V P                  P                  P                  '       d   \        R4      hV P                  P                  pV P
                  '       g"   V P                  P                  R4      '       d   RpMVP                  V P                  4      p\        WV4      # )z Create link destination details.rì   Núorphaned object: parent is NonerÞ  rm  )
r=   rì   rÃ   rÂ   r«  rÂ  r  r5   rÃ  ÚlinkDest)r&   r1  r  s   &  r'   r8
  Ú	Link.destJ!  s²   € ô �4˜×"Ò" t§{¡{Ò':ÜÐ>Ó?Ð?Ø�;‰;×Ñ×'×'Ð'¨4¯;©;×+=Ñ+=×+J×+JÐ+JÜÐ;Ó<Ð<Ø�k‰k× Ñ ˆà××Ð˜tŸx™x×2Ñ2°3×7Ò7Ø‰Cà×"Ñ" 4§8¡8Ó,ˆCä˜ 3Ó'Ð'r)   c               ó   € V ^8„  d   QhRR/# rÔ  r,   )rþ  s   "r'   rÿ  ÚLink.__annotate__[!  s   € ÷ ñ �Sñ r)   c                	óè   € \        V 4       V P                  P                  pVP                  '       g   ^ # VP                  V P                  R4      pV^,          R8w  d   \        V^,          4      # ^ # )rx   r¸  rñ  )ro  rì   rƒ  rä  r  r6   )r&   r1  r  s   &  r'   rÐ  Ú
Link.flagsZ!  sW   € ä�DÔØ�k‰k× Ñ ˆØ�z�zˆzÙØ×Ñ˜TŸY™Y¨Ó,ˆØˆQ�4�6Œ>Ü�q˜•t“9ÐÙr)   c                óN  € \        V 4       \        '       d!   \        P                  ! V P                  4      # V P                  pVP
                  '       d   VP
                  P                  '       g   R# \        \        P                  ! VP
                  P                  4      4      # )zFlag the link as external.F)
ro  r  r   ÚLink_is_externalrÄ   rÌ   r  rè   r£   Úfz_is_external_link©r&   Ú	this_links   & r'   rÂ  ÚLink.is_externale!  sq   € ô 	�DÔß‹;Ü×)Ò)¨4¯9©9Ó5Ð5Ø—I‘Iˆ	Ø×#×#Ð#¨9×+?Ñ+?×+C×+CÐ+CÙÜ”U×.Ò.°	×0DÑ0D×0HÑ0HÓIÓJÐJr)   c                ó`  € V P                   P                  '       g   R# \        V 4        T P                   P                  4       pTP                  '       g   R# \        T4      pT'       Ed8   RTn        T P                  Tn	        YP                  P                  \        T4      &   T P                  ^ 8”  dà   T P                  P                  4        Uu. uF)  q"^,          \        P                  8X  g   K   T^ ,          NK+  	  ppT P                  P                  4        Uu. uF)  q"^,          \        P                  8X  g   K   T^,          NK+  	  ppTP!                  T P                  4      pY5^,           ,          Tn        YE^,           ,          Tn        T# ^ Tn        RTn        T# u upi u upi )z
Next link.NTr`   )rÄ   rÌ   ro  r  r   Ú	Link_nextr]  r   rõ   rì   rX  rY  r  r‡  r£   rÖ  r  )r&   r  ri  Ú
link_xrefsÚlink_idsrë  s   &     r'   r]  Ú	Link.nextp!  sK  € ð �y‰y×#×#Ð#ÙÜ�DÔØð —)‘)—.‘.Ó"ˆCØ�~�~ˆ~ÙÜ�C‹jˆßˆ3ØˆCŒKØŸ™ˆCŒJØ.1�J‰J×"Ñ"¤2 c£7Ñ+Ø�y‰y˜1Œ}Ø,0¯K©K×,CÑ,CÔ,EÓfÑ,E qÈ1ÍÔQV×QeÑQeÑIeœd˜a Ÿd˜dÑ,E�
ÐfØ*.¯+©+×*AÑ*AÔ*CÓdÑ*C QÈÅtÌu×OcÑOcÑGcœD˜A˜aŸD˜DÑ*C�ÐdØ ×&Ñ& t§y¡yÓ1�Ø%¨A¥gÕ.�”Ø!¨¥'Õ*�”ð ˆ
ð �”Ø�”Øˆ
ùò gùÚds   ÃF&Ã5F&Ä F+ÅF+c                óâ   € \        V 4       V P                  e   V P                  P                  '       g   \        R4      h\	        V P                  P                  4       4      p\        V4      pV# )zRectangle ('hot area').z"self.this.m_internal not available)ro  rÄ   rÌ   rk   rp  rü   r+  rÑ  s   & r'   rü   Ú	Link.rectŒ!  sV   € ô 	�DÔð �9‰9Ò D§I¡I×$8×$8Ð$8ÜÐAÓBÐBÜ˜tŸy™yŸ~™~Ó/Ó0ˆÜ�3‹iˆØˆ
r)   Nc                	ó¬   € \        V4      \        Jd	   R VRVRV/pV P                  WP                  P                  P                  V P
                  4      # )rˆ  r‰  rŠ  )rÈ   r7   r¹  rì   rÄ   r  )r&   r”  rˆ  rŠ  r‰  s   &&&&&r'   r�  ÚLink.set_border˜!  sE   € Ü�‹<œtÓ#Ø˜u g¨u°hÀÐGˆFØ�‰˜v§{¡{×'9Ñ'9×'>Ñ'>ÀÇ	Á	ÓJÐJr)   c                óú  € \        V 4       V P                  P                  p\        V4      \        Jd   RVRV/pVP	                  R4      pVP	                  R4      pVe   \        R4       V. R
39   d    VP                  V P                  RR4       R# \        VR4      '       d   \        V4      .p\        V4       \        V4      R9   g   Q hR\        V4       R	2pVP                  V P                  RV4       R# )zSet border colors.r   r“  Nz!warning: links have no fill colorrü  r”  r•  r–  r—  r,   r˜  )ro  rì   rÈ   r7   r:   rv   r›  r  r=   rœ  r�  r9   r¶   )r&   r  r“  r   r1  rŸ  s   &&&&  r'   r   ÚLink.set_colors�!  sß   € ä�DÔØ�k‰k× Ñ ˆÜ�‹<œtÓ#Ø˜d H¨fÐ5ˆFØ�z‰z˜&Ó!ˆØ—‘˜HÓ%ˆØÒÜÐ7Ô8Ø�b˜"�XÔØ×Ñ˜TŸY™Y¨¨TÔ2ÙÜ�6˜;×'Ò'Ü˜F“m�_ˆFÜ�6ÔÜ�6‹{˜iÔ'Ð'Ð'Ø”	˜&Ó!Ð" !Ð$ˆØ×Ñ˜Ÿ™ C¨Ö+r)   c                	ó
  € \        V 4       V P                  P                  pVP                  '       g   \        R 4      h\	        V4      \
        J g   \        R4      hVP                  V P                  R\        V4      4       R# )r�  zbad 'flags' valuer¸  N)	ro  rì   rƒ  rÃ   rÈ   r6   r›  r  ræ  )r&   rÐ  r1  s   && r'   r¤  ÚLink.set_flags±!  sb   € Ü�DÔØ�k‰k× Ñ ˆØ�z�zˆzÜ˜[Ó)Ð)Ü�E‹{œcÓ!ÜÐ0Ó1Ð1Ø×Ñ˜Ÿ™ C¬¨U«Ô4Ùr)   c                óÆ   € \         '       d!   \        P                  ! V P                  4      # V P                  pVP                  '       d   VP                  P
                  # R# )zUri string.r`   )r  r   Úlink_urirÄ   rÌ   r  rË  s   & r'   r  ÚLink.uri»!  sG   € ÷ ‹;Ü—>’> $§)¡)Ó,Ð,Ø—I‘Iˆ	Ø+4×+?×+?Ð+?ˆy×#Ñ#×'Ñ'ÐGÀRÐGr)   rt  )Nrx   NNrx  r¨  )r/   r0   r1   r2   r[  r‘   rï   rò   r±  r´  rö   r¹  r{  r”  r  r8
  rÐ  rÂ  r]  rü   r�  r   r¤  r  rÖ   r3   r,   r)   r'   r   r   !  sé   † òòò-ò-òòòòð ñ@ó ð@ð ñ@ó ð@ð ñ(ó ð(ð ôó ðð ñKó ðKð ñó ðð6 ñ	ó ð	ôKô
,ò(ð ñHó ðHð „Dr)   r   c                  óÖ   € ] tR tRtR tR tR tR tR tRRR	RR
RRRRRRR/R lt	R t
R tR tR tR tR tR tR tR tR tR tR!R lt]R 4       tR tR tR tR t]
t]t]tR tR# )"r  iÇ!  c           	     	óv   € \         P                  ! \        V  Uu. uF  qV,          NK  	  up4      4      # u upi r+   ©ÚmathÚsqrtÚsum©r&   rõ  s   & r'   Ú__abs__ÚMatrix.__abs__É!  ó,   € Ü�yŠyœ©4Ó0©4 a Ÿc˜c©4Ñ0Ó1Ó2Ð2ùÒ0ó   š6c           
     	óˆ  € \        VR 4      '       dw   \        V P                  V,           V P                  V,           V P                  V,           V P
                  V,           V P                  V,           V P                  V,           4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,           V P                  V^,          ,           V P                  V^,          ,           V P
                  V^,          ,           V P                  V^,          ,           V P                  V^,          ,           4      # ©r•  úMatrix: bad seq len©
r=   r  r   rI  rõ  rH  rh  r  r9   rÃ   ©r&   r‹  s   &&r'   Ú__add__ÚMatrix.__add__Ì!  óÔ   € Ü�1�k×"Ò"Ü˜$Ÿ&™& 1�* d§f¡f¨q¥j°$·&±&¸1µ*ØŸ&™& 1�* d§f¡f¨q¥j°$·&±&¸1µ*ó>ð >äˆq‹6�QŒ;ÜÐ2Ó3Ð3Ü�d—f‘f˜q �t•m T§V¡V¨a°­d¥]°D·F±F¸Q¸q½TµMØŸ&™& 1 Q¥4�-¨¯©°!°Aµ$­¸¿¹ÀÀ1Å½óGð 	Gr)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  ©r'  r÷  r-   s   &r'   ré   ÚMatrix.__bool__Õ!  ó)   € Ü˜“I¤ T£×/Ô/¨aÑ/Ô0Ð0Ñ/Ô0Ð0r)   c                	óp   € \        VR 4      '       g   R# \        V4      ^8H  ;'       d    W,
          '       * # ©rÖ  F©r=   r9   )r&   r€  s   &&r'   Ú__eq__ÚMatrix.__eq__Ø!  s-   € Ü�s˜I×&Ò&ÙÜ�3‹x˜1‰}×1Ð1 d¥jÔ!1Ð1r)   c                	ó˜   € V P                   V P                  V P                  V P                  V P                  V P
                  3V,          # r+   ©r   rI  rõ  rH  rh  r  r•  s   &&r'   rŒ  ÚMatrix.__getitem__Ý!  s2   € Ø—‘˜Ÿ™ §¡¨¯©°·±¸¿¹Ð?ÀÕBÐBr)   r   NrI  rõ  rH  rh  r  c               óæ  € V'       g-   R;V n         ;V n        ;V n        ;V n        ;V n        V n        EMþ\        V4      ^8”  d   \        R4      h\        V4      ^8X  d8   \        \        V4      w  V n         V n        V n        V n        V n        V n        EMœ\        V4      ^8X  Ed™   \        V^ ,          \        P                  4      '       d“   V^ ,          P                   V n         V^ ,          P                  V n        V^ ,          P                  V n        V^ ,          P                  V n        V^ ,          P                  V n        V^ ,          P
                  V n        EMÒ\        V^ ,          R4      '       dŠ   \        P                  ! V^ ,          4      p\!        \        P"                  ! V4      ^4      p	\!        \        P$                  ! V4      ^4      p
V	;V n         V n        W n        V
) V n        R;V n        V n        EM0\        \        V^ ,          4      w  V n         V n        V n        V n        V n        V n        Mó\        V4      ^8X  g   \        V4      ^8X  d]   V^,          ^ 8X  dO   \        V^ ,          4      RR\        V^,          4      RR3w  V n         V n        V n        V n        V n        V n        Mw\        V4      ^8X  d]   V^,          ^8X  dO   R\        V^,          4      \        V^ ,          4      RRR3w  V n         V n        V n        V n        V n        V n        M\        R4      hVe   Wn         Ve   W n        Ve   W0n        Ve   W@n        Ve   WPn        Ve	   W`n        R# R# )aZ  
Matrix() - all zeros
Matrix(a, b, c, d, e, f)
Matrix(zoom-x, zoom-y) - zoom
Matrix(shear-x, shear-y, 1) - shear
Matrix(degree) - rotate
Matrix(Matrix) - new copy
Matrix(sequence) - from 'sequence'
Matrix(mupdf.FzMatrix) - from MuPDF class wrapper for fz_matrix.

Explicit keyword args a, b, c, d, e, f override any earlier settings if
not None.
rÓ  rë  r•  rÔ  zMatrix: bad argsN)r   rI  rõ  rH  rh  r  r9   rÃ   r  rœ  r@   r£   r|  r=   rá  ÚradiansÚroundÚcosÚsin)r&   r   rI  rõ  rH  rh  r  r  ÚthetaÚc_Ús_s   &$$$$$$*   r'   r‘   ÚMatrix.__init__à!  s‰  € ÷ ØBEÐEˆDŒFÐE�T”VÐE˜dœfÐE t¤vÐE°´¸¾Ü�‹Y˜Œ]ÜÐ2Ó3Ð3Ü�‹Y˜!Œ^Ü=@ÄÈÓ=MÑ:ˆDŒF�D”F˜DœF D¤F¨D¬F°D¶FÜ�‹Y˜!�^Ü˜$˜q�'¤5§>¡>×2Ò2Ø˜a�Ÿ™�”Ø˜a�Ÿ™�”Ø˜a�Ÿ™�”Ø˜a�Ÿ™�”Ø˜a�Ÿ™�”Ø˜a�Ÿ™�–Ü˜˜a� +×.Ò.ÜŸš T¨!¥WÓ-�Üœ4Ÿ8š8 E›?¨AÓ.�Üœ4Ÿ8š8 E›?¨AÓ.�Ø"$Ð$�”˜œØ”Ø˜�”Ø"%Ð%�”˜žäADÄUÈDÐQRÍGÓATÑ>�”˜œ ¤¨¬°´¸½Ü�‹Y˜!Œ^œs 4›y¨Aœ~°$°qµ'¸Q´,Ü=BÀ4ÈÅ7»^Ø�Sœ%  Q¥›.¨#¨sð>3Ñ:ˆDŒF�D”F˜DœF D¤F¨D¬F°DµFä�‹Y˜!Œ^  Q¥¨1¤Ø=@Ü�d˜1•g“¤ d¨1¥g£°°S¸#ð>>Ñ:ˆDŒF�D”F˜DœF D¤F¨D¬F°DµFô Ð/Ó0Ð0ð Š= QœFØŠ= QœFØŠ= QœFØŠ= QœFØŠ= QœFØŠ= QžF‰=r)   c                ó<   € \        4       pVP                  V 4       V# )zCalculate inverted matrix.)r  Úinvert)r&   Úm1s   & r'   Ú
__invert__ÚMatrix.__invert__"  s   € ä‹XˆØ
�	‰	�$ŒØˆ	r)   c                	ó   € ^# )é   r,   r-   s   &r'   rÖ  ÚMatrix.__len__"  ó   € Ùr)   c           	     	óL  € \        VR 4      '       dw   \        V P                  V,          V P                  V,          V P                  V,          V P
                  V,          V P                  V,          V P                  V,          4      # \        ^^4      pVP                  W4      # ©r•  )	r=   r  r   rI  rõ  rH  rh  r  Úconcat)r&   r‹  r  s   && r'   Ú__mul__ÚMatrix.__mul__ "  ss   € Ü�1�k×"Ò"Ü˜$Ÿ&™& 1�* d§f¡f¨q¥j°$·&±&¸1µ*ØŸ&™& 1�* d§f¡f¨q¥j°$·&±&¸1µ*ó>ð >ä�A�a‹[ˆØ�y‰y˜Ó!Ð!r)   c                	ó¦   € \        V P                  ) V P                  ) V P                  ) V P                  ) V P
                  ) V P                  ) 4      # r+   )r  r   rI  rõ  rH  rh  r  r-   s   &r'   Ú__neg__ÚMatrix.__neg__'"  s;   € Ü�t—v‘v�g §¡˜w¨¯©¨°$·&±&°¸4¿6¹6¸'ÀDÇFÁFÀ7ÓKÐKr)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  rò  r-   s   &r'   Ú__nonzero__ÚMatrix.__nonzero__*"  rô  r)   c                	ó   € \        V 4      # r+   ©r  r-   s   &r'   Ú__pos__ÚMatrix.__pos__-"  s   € Ü�d‹|Ðr)   c                	ó8   € R \        \        V 4      4      ,           # r  ©ræ  rµ   r-   s   &r'   rï   ÚMatrix.__repr__0"  s   € Øœ#œe D›kÓ*Õ*Ð*r)   c                	óâ   € \        V4      pV^ 8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# \        R4      h©rx   zindex out of rangeN)rœ  r   rI  rõ  rH  rh  r  r¤  ©r&   rg  rH   s   &&&r'   Ú__setitem__ÚMatrix.__setitem__3"  sƒ   € Ü�!‹HˆØ�!ŒV˜a”Vñ 	ð �!ŒV˜a”Vñ 	ð �!ŒV˜a”Vñ 	ð �!ŒV˜a”Vñ
 	ð	 �!ŒV˜a”Vñ 	ð �!ŒV˜a”Vñ 	ô Ð1Ó2Ð2r)   c           
     	óˆ  € \        VR 4      '       dw   \        V P                  V,
          V P                  V,
          V P                  V,
          V P
                  V,
          V P                  V,
          V P                  V,
          4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,
          V P                  V^,          ,
          V P                  V^,          ,
          V P
                  V^,          ,
          V P                  V^,          ,
          V P                  V^,          ,
          4      # rê  rì  rí  s   &&r'   Ú__sub__ÚMatrix.__sub__?"  rð  r)   c           	     	óê  € \        VR 4      '       d¡   \        V P                  R,          V,          V P                  R,          V,          V P                  R,          V,          V P
                  R,          V,          V P                  R,          V,          V P                  R,          V,          4      # \        V4      ^,          pV'       g   \        R4      h\        ^^4      pVP                  W4      # ©r•  rÔ  zmatrix not invertible)r=   r  r   rI  rõ  rH  rh  r  Úutil_invert_matrixÚZeroDivisionErrorr  )r&   r‹  r  Úm2s   &&  r'   Ú__truediv__ÚMatrix.__truediv__H"  s«   € Ü�1�k×"Ò"Ü˜$Ÿ&™& 2�+ a�-¨¯©°"­°Q­¸¿¹À½ÀA½ØŸ&™& 2�+ a�-¨¯©°"­°Q­¸¿¹À½ÀA½óGð Gä Ó" 1Õ%ˆßÜ#Ð$;Ó<Ð<Ü�A�a‹[ˆØ�y‰y˜Ó"Ð"r)   c                óÂ   € \        V4      \        V4      u;8X  d   ^8X  g   M \        R4      h\        W4      w  V n        V n        V n        V n        V n        V n        V # )z.Multiply two matrices and replace current one.rë  )	r9   rÃ   Úutil_concat_matrixr   rI  rõ  rH  rh  r  )r&   ÚoneÚtwos   &&&r'   r  ÚMatrix.concatR"  sK   € ä�3‹xœ3˜s›8Ö( qÖ(ÜÐ2Ó3Ð3Ü9KÈCÓ9UÑ6ˆŒ�”˜œ ¤¨¬°´Øˆr)   c                ó¸   € Vf   \        V 4      pM\        V4      pV^ ,          ^8X  d   ^# V^,          w  V n        V n        V n        V n        V n        V n        ^ # )zmCalculate the inverted matrix. Return 0 if successful and replace
current one. Else return 1 and do nothing.
)r+  r   rI  rõ  rH  rh  r  )r&   r4  rœ  s   && r'   r  ÚMatrix.invertY"  sP   € ð Š;Ü$ TÓ*‰Cä$ SÓ)ˆCØˆq�6�QŒ;ÙØ9<¸Q½Ñ6ˆŒ�”˜œ ¤¨¬°´Ùr)   c                ó  € \        V P                  4      \        8  ;'       d%    \        V P                  4      \        8  ;'       gA    \        V P                  4      \        8  ;'       d    \        V P
                  4      \        8  # )z,True if rectangles are mapped to rectangles.)r,  rI  ÚEPSILONrõ  r   rH  r-   s   &r'   Úis_rectilinearÚMatrix.is_rectilinearf"  s]   € ô �D—F‘F“œgÑ%×?Ð?¬#¨d¯f©f«+¼Ñ*?÷ >ð >Ü�—‘‹[œ7Ñ"×<Ð<¤s¨4¯6©6£{´WÑ'<ð	>r)   c                óÞ  € \        V4      pV^ 8  d   VR,          pK  VR8¼  d   VR,          pK  \        ^ V,
          4      \        8  d    V # \        RV,
          4      \        8  dM   V P                  pV P                  pV P
                  V n        V P                  V n        V) V n        V) V n        V # \        RV,
          4      \        8  dK   V P                  ) V n        V P                  ) V n        V P
                  ) V n        V P                  ) V n        V # \        RV,
          4      \        8  dK   V P                  pV P                  pV P
                  ) V n        V P                  ) V n        W n        W0n        V # \        P                  ! V4      p\        P                  ! V4      p\        P                  ! V4      pV P                  pV P                  pWb,          WPP
                  ,          ,           V n        Wc,          WPP                  ,          ,           V n        V) V,          W`P
                  ,          ,           V n        V) V,          W`P                  ,          ,           V n        V # )z2Calculate pre rotation and replace current matrix.rí  g     €V@g     €f@g     àp@)rœ  r,  r8  r   rI  rõ  rH  rá  rþ  r  r   )r&   r  r   rI  ÚradrŸ  rõ  s   &&     r'   Ú	prerotateÚMatrix.prerotatel"  sÐ  € ä�e“ˆØ�aŒi˜ #�šØ�sŒl˜E S�LšEÜˆq�5�y‹>œGÔ#ØðF ˆôC �˜•Ó¤Ô(Ø—‘ˆAØ—‘ˆAØ—V‘VˆDŒFØ—V‘VˆDŒFØ�RˆDŒFØ�RˆDŒFð6 ˆô3 �˜•Ó¤'Ô)Ø—f‘f�WˆDŒFØ—f‘f�WˆDŒFØ—f‘f�WˆDŒFØ—f‘f�WˆDŒFð* ˆô' �˜•Ó¤'Ô)Ø—‘ˆAØ—‘ˆAØ—f‘f�WˆDŒFØ—f‘f�WˆDŒFØŒFØŒFð ˆô —,’,˜uÓ%ˆCÜ—’˜“ˆAÜ—’˜“ˆAØ—‘ˆAØ—‘ˆAØ•U˜Q§¡�ZÕ'ˆDŒFØ•U˜Q§¡�ZÕ'ˆDŒFØ�B˜•F˜Q§¡�ZÕ'ˆDŒFØ�B˜•F˜Q§¡�ZÕ'ˆDŒFàˆr)   c                óú   € \        V4      p\        V4      pV ;P                  V,          un        V ;P                  V,          un        V ;P                  V,          un        V ;P                  V,          un        V # )z1Calculate pre scaling and replace current matrix.©rœ  r   rI  rõ  rH  )r&   ÚsxÚsys   &&&r'   ÚprescaleÚMatrix.prescale—"  sM   € ä�2‹YˆÜ�2‹YˆØ�Š�"��Ø�Š�"��Ø�Š�"��Ø�Š�"��Øˆr)   c                ó€  € \        V4      p\        V4      pV P                  V P                  rCV ;P                  W P                  ,          ,          un        V ;P                  W P                  ,          ,          un        V ;P                  W,          ,          un        V ;P                  W,          ,          un        V # )z2Calculate pre shearing and replace current matrix.r@  )r&   r"  rH   r   rI  s   &&&  r'   ÚpreshearÚMatrix.preshear¡"  sn   € ä�!‹HˆÜ�!‹HˆØ�v‰v�t—v‘vˆ1Ø�Š�!—f‘f•*Õ�Ø�Š�!—f‘f•*Õ�Ø�Š�!•%��Ø�Š�!•%��Øˆr)   c                ó2  € \        V4      p\        V4      pV ;P                  WP                  ,          W P                  ,          ,           ,          un        V ;P                  WP
                  ,          W P                  ,          ,           ,          un        V # )z5Calculate pre translation and replace current matrix.)rœ  rh  r   rõ  r  rI  rH  )r&   ÚtxÚtys   &&&r'   ÚpretranslateÚMatrix.pretranslate¬"  sW   € ä�2‹YˆÜ�2‹YˆØ�Š�"—v‘v•+ §V¡V¥Õ+Õ+�Ø�Š�"—v‘v•+ §V¡V¥Õ+Õ+�Øˆr)   rû  r+   ) r/   r0   r1   r2   rå  rî  ré   rø  rŒ  r‘   r	  rÖ  r  r  r  r  rï   r$  r'  r.  r  r  r{  r9  r=  rC  rF  rK  Ú__inv__Ú__div__Únormr3   r,   r)   r'   r  r  Ç!  sÅ   † ò3òGò1ò2ò
Cð5' ð 5'¨ð 5'°ð 5'¸ð 5'Àð 5'Èô 5'ònòò"òLò1òò+ò
òGò#òôð ñ>ó ð>ò
)òVò	òð €GØ€GØ„Dr)   r  c                  ó8   € ] tR tRtRtR tR tR tR tR t	Rt
R	# )
ÚIdentityMatrixi¹"  z"Identity matrix [1, 0, 0, 1, 0, 0]c                	ó   € \        R4      # )r™  )r™  rx   rx   r™  rx   rx   )Úhashr-   s   &r'   Ú__hash__ÚIdentityMatrix.__hash__¼"  s   € Ü�MÓ"Ð"r)   c                	ó4   € \         P                  V R R 4       R# )rÔ  N)r  r‘   r-   s   &r'   r‘   ÚIdentityMatrix.__init__¿"  s   € Ü�‰˜˜c 3Ö'r)   c                	ó   € R # )z,IdentityMatrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0)r,   r-   s   &r'   rï   ÚIdentityMatrix.__repr__Â"  s   € Ù=r)   c                	ó‚   € VR 9   d   RV P                   V&   R# VR9   d   RV P                   V&   R# W P                   V&   R# )ÚadrÔ  ÚbcefrÓ  N)ró  )r&   r   r¸   s   &&&r'   Ú__setattr__ÚIdentityMatrix.__setattr__Å"  s8   € Ø�4Œ<Ø"%ˆD�M‰M˜$ÓØ�VŒ^Ø"%ˆD�M‰M˜$Óà"'�M‰M˜$Ór)   c                 	ó   € \        R 4      h)zIdentity is readonly)ÚNotImplementedError)r  s   *r'   Ú	checkargsÚIdentityMatrix.checkargsÍ"  s   € Ü!Ð"8Ó9Ð9r)   r,   N)r/   r0   r1   r2   Ú__doc__rT  r‘   rï   r]  ra  r3   r,   r)   r'   rQ  rQ  ¹"  s   † Ù,ò#ò(ò>ò(ö:r)   rQ  c                  ó$   € ] tR tRtRtRR ltRtR# )rÂ  iÓ"  z#link or outline destination detailsNc           	     	óÄ
  a € VP                   pV'       * pR S n        R S n        ^ S n        RS n        RS n        \        S n        \        ^ ^ 4      S n	        \        4       S n        R S n        VP                  S n        \        ^ ^ 4      S n        VP                  S n        V 3R lpR pV'       d`   S P                  P!                  R4      '       g?   RV^ ,          ^,            R\#        V^,          4       R\#        V^,          4       2S n        VP                   '       d   RS n        \$        S n        S P                  '       g   RS n        \        S n        V'       EdZ   S P                  '       EdG   S P                  P'                  RR	4      S n        S P                  P!                  R4      '       Edâ   \(        S n        \*        P,                  ! R
S P                  4      pV'       d‘   \/        VP1                  ^4      4      ^,
          S n        \        \3        VP1                  ^4      4      \3        VP1                  ^4      4      4      S n	        S P                  \4        ,          \6        ,          S n        EM?\*        P,                  ! RS P                  4      pV'       d(   \/        VP1                  ^4      4      ^,
          S n        Mï\8        S n        \*        P,                  ! RS P                  4      pV'       g   Q hV'       dq   V'       di   V! VP1                  ^4      4      p	VP;                  4       P=                  V	4      S n        S P                  f   \        4       S n        V	S P                  R&   MAV! S P                  R,          4      S n        M"\8        S n        V! S P                  4      S n        VP                   '       Edu   S P                  '       g   EM`S P                  P!                  R4      '       Ed	   S P                  R,          S n        S P                  P!                  R4      '       d   S P                  R,          S n        RS n        R S n        \>        S n        S P                  PA                  R4      p
\C        V
4      ^8X  ds   V
^,          P!                  R4      '       dU   \D        S n        V
^ ,          S n        \/        V
^,          PA                  R4      ^ ,          R,          4      ^,
          S n        M6RS P                  9   d   RS n        \$        S n        MRS n        \>        S n        \G        S P                  \        4      '       g   Q hR# )r`   Fc                óÎ   <€ SP                   R ,          P                  R4      p\        4       pV F1  pVP                  R4      pV^ 8¼  d   W4^,           R W#RV &   K-  RW#&   K3  	  V# )r‰	  Ú&r   N)r  r8   r7   r§   )r  rD   rI   rE   Úeqr&   s   &    €r'   Úuri_to_dictÚ&linkDest.__init__.<locals>.uri_to_dictæ"  sc   ø€ Ø—H‘H˜R•L×&Ñ& sÓ+ˆEÜ“&ˆCÛ�Ø—Y‘Y˜s“^�Ø˜”7Ø%)¨Q­$¨% [�C˜S˜b˜	“Nà $�C“Iñ ð ˆJr)   c           	     óè   € V P                  RR4      pVP                  R4      pV^ ,          pVR,           F8  pVR,          pV\        \        V^R7      4      ,          pW#R,          ,          pK:  	  V# )z'Unescape '%AB' substrings to chr(0xAB).z%%z%25Ú%r‰	  r…  )Úbaser+  )r  r8   rn  r6   )r   r8   rv  rE   Úpieces   &    r'   ÚunescapeÚ#linkDest.__init__.<locals>.unescapeñ"  sk   € à—L‘L  uÓ-ˆEØ—K‘K Ó$ˆEØ˜A•hˆGØ˜bŸ	˜	�Ø˜R��Øœ3œs 5¨rÔ2Ó3Õ3�Ø �8Õ#’ñ "ð ˆNr)   rm  z#page=z&zoom=0,r   z	&zoom=nanz&zoom=0z7^#page=([0-9]+)&zoom=([0-9.]+),(-?[0-9.]+),(-?[0-9.]+)$z^#page=([0-9]+)$z^#nameddest=(.*)NÚ	nameddestr‰	  zfile:r   z//r+  zpage=rg  rc   Tr¨  )$rÂ  r8
  Ú	file_specrÐ  Úis_mapÚis_urir  r  r)  Últr7   rü  Ú
new_windowrÖ   r·  r  r5   r¶   r   r  r  Úrer‚  r6   Úgrouprœ  ÚLINK_FLAG_L_VALIDÚLINK_FLAG_T_VALIDÚ
LINK_NAMEDrN
  r:   r  r8   r9   r  r@   )r&   r  ÚrlinkrÉ   ÚisExtÚisIntri  ro  r‹  rü  Úftabs   f&&&       r'   r‘   ÚlinkDest.__init__Ö"  s­  ø€ Ø—‘ˆØ”	ˆØˆŒ	ØˆŒØˆŒ
ØˆŒØˆŒÜˆŒ	Ü˜˜1“+ˆŒÜ“VˆŒ
ØˆŒØ—H‘HˆŒ	Ü˜˜1“+ˆŒØ—7‘7ˆŒõ		ò		÷ ˜Ÿ™×,Ñ,¨S×1Ò1Ø  a¥¨1¥˜~¨X´iÀÀaÅÓ6IÐ5JÈ!ÌIÐV[Ð\]ÕV^ÓL_ÐK`ÐaˆDŒHØ�?�?ˆ?ØˆDŒIÜ ˆDŒIØ�x�xˆxØˆDŒIÜ!ˆDŒIßˆ5�T—X—X‘XØ—x‘x×'Ñ'¨°YÓ?ˆDŒHØ�x‰x×"Ñ" 3×'Ó'Ü%�”	Ü—H’HÐVÐX\×X`ÑX`Óa�ßÜ # A§G¡G¨A£J£°!Õ 3�D”IÜ#¤E¨1¯7©7°1«:Ó$7¼¸q¿w¹wÀq»zÓ9JÓK�D”GØ!%§¡Ô.?Õ!?ÔBSÕ!S�D–JäŸšÐ!3°T·X±XÓ>�AßÜ$'¨¯©°«
£O°aÕ$7˜�	ä$.˜œ	ÜŸHšHÐ%7¸¿¹ÓB˜ß'˜˜xß#¯Ù$,¨Q¯W©W°Q«ZÓ$8˜EØ)1×)?Ñ)?Ó)A×)EÑ)EÀeÓ)L˜DœJØ#Ÿz™zÒ1ô .2«V ¤
Ø6;˜DŸJ™J {Ò3á)4°T·X±X¸bµ\Ó)B˜D�Jä&�”	Ù(¨¯©Ó2�”
Ø�?�?‰?Ø—8—8�8ÙØ—‘×$Ñ$ W×-Ó-Ø!%§¡¨"¥�”Ø—>‘>×,Ñ,¨T×2Ò2Ø%)§^¡^°BÕ%7�D”NØ#�”Ø�”Ü'�”	Ø—~‘~×+Ñ+¨CÓ0�Ü�t“9 ”>Ø˜A•w×)Ñ)¨'×2Ò2Ü$.˜œ	Ø)-¨a­˜œÜ$'¨¨Q­¯©°cÓ(:¸1Õ(=¸bÕ(AÓ$BÀQÕ$F˜œ	øØ˜Ÿ™”Ø"�”Ü$�•	à"�”Ü'�”	Ü˜$Ÿ*™*¤d×+Ò+Ð+Ò+r)   )r8
  rr  rÐ  rs  rt  r  ru  rü  rv  rÖ   r·  r  r+   ©r/   r0   r1   r2   rc  r‘   r3   r,   r)   r'   rÂ  rÂ  Ó"  s   † Ù-÷b,ð b,r)   rÂ  c                  óp   € ] tR tRtRtR tR tR tR tR t	R t
R	 tR
 t]R 4       tR tR tRR ltRtR# )rZ  i:#  z.
Class describing a PDF form field ("widget")
c                	ó¸  € R V n         RV n        ^ V n        R V n        R V n        R V n        R V n        R V n        R V n        ^ V n	        ^ V n
        ^ V n        R V n        R V n        R V n        R V n        RV n        RV n        ^ V n        ^ V n        ^ V n        RV n        R V n        R V n        R V n        R V n        R V n        R V n        R V n        R V n        ^ V n        R # )Nr�
  ÚHelvr`   ©rx   rx   rx   )rü  Úborder_styleÚborder_widthÚborder_dashesÚchoice_valuesÚ	rb_parentÚ
field_nameÚfield_labelÚfield_valueÚfield_flagsÚfield_displayÚ
field_typeÚfield_type_stringr_  Úbutton_captionÚ	is_signedrý   Ú	text_fontÚtext_fontsizeÚtext_maxlenÚtext_formatÚ_text_dar$  Úscript_strokeÚscript_formatÚscript_changeÚscript_calcÚscript_blurÚscript_focusrü   r  r-   s   &r'   r‘   ÚWidget.__init__?#  sï   € Ø ˆÔØˆÔØˆÔØ!ˆÔØ!ˆÔØˆŒàˆŒØˆÔØˆÔØˆÔØˆÔØˆŒØ!%ˆÔàˆŒØ"ˆÔØˆŒØ#ˆŒØˆŒØˆÔØˆÔØˆÔØˆŒàˆŒØ!ˆÔØ!ˆÔØ!ˆÔØˆÔØˆÔØ ˆÔàˆŒ	ØˆŽ	r)   c                	ó<   € R V P                    RV P                   R2# )zWidget:(field_type=z script=rí  )r‘  r$  r-   s   &r'   rï   ÚWidget.__repr__d#  s#   € Ø$ T×%;Ñ%;Ð$<¸HÀTÇ[Á[ÀMÐQRÐSÐSr)   c                óÌ   € V P                   '       g
   RV n         R# RpV F9  pV P                   P                  4       VP                  4       8X  g   K2  W n          R# 	  RV n         R# )zAEnsure text_font is from our list and correctly spelled.
        r„  N)ÚCourÚTiRor„  ÚZaDb)r”  rç  )r&   Úvalid_fontsr  s   &  r'   Ú_adjust_fontÚWidget._adjust_fontg#  sU   € ð �~�~ˆ~Ø#ˆDŒNÙØ6ˆÛˆAØ�~‰~×#Ñ#Ó%¨¯©«Ö2Ø!"”Úñ ð  ˆŒÙr)   c           	     ó,  € V P                   \        ^^4      9  d   \        R4      hV P                   \        P                  8X  dÏ   V P
                  R
9  d¼   \        V R4      '       d¨   V P                  P                  pVP                  V P                  R4      w  r#VR8X  dk   \        \        \        V^R P                  RR4      P                  4       4      4      pV F(  pWPP                  8w  g   K  VP                  VRR4       K*  	  R	# R	# R	# R	# R	# )z Any widget type checks.
        zbad field typerì   zParent/Kidsr<
  rk  r`   ÚASz/OffN)FÚOffr¨  )r�  rS  rÃ   r£   ÚPDF_WIDGET_TYPE_RADIOBUTTONr�  r=   rì   rä  r  rµ   r  r6   r  r8   r›  )r&   r1  Ú	kids_typeÚ
kids_valuer÷  r  s   &     r'   Ú_checkerÚWidget._checkeru#  s÷   € ð �?‰?¤%¨¨1£+Ô-ÜÐ-Ó.Ð.ð �?‰?œe×?Ñ?Ô?ÀD×DTÑDTÐ\jÔDjÔovÐw{ð  ~F÷  pGò  pGð —+‘+×$Ñ$ˆCØ$'×$4Ñ$4°T·Y±YÀÓ$NÑ!ˆIØ˜GÔ#Üœc¤# z°!°BÐ'7×'?Ñ'?ÀÀbÓ'I×'OÑ'OÓ'QÓRÓS�Û!�DØŸy™yÖ(Ø×(Ñ(¨¨t°VÖ<ó "ñ $ñ pGÑDjÑ?r)   c                óx  € V P                   '       g   R# Rp^ pRpV P                   P                  4       p\        V4       FØ  w  rVVR8X  dK   WE^,
          ,          R,          p\        WE^,
          ,          4      pR;WE&   ;WE^,
          &   WE^,
          &   KV  VR8X  d+   \        WE^,
          ,          4      .pR;WE&   WE^,
          &   K‡  VR8X  g   K�  WE^,
          V  Uu. uF  p\        V4      NK  	  ppR;WE&   ;WE^,
          &   ;WE^,
          &   WE^,
          &   KÚ  	  Wn        W n        W0n        RV n         R# u upi )	z Extract font name, size and color from default appearance string (/DA object).

Equivalent to 'pdf_parse_default_appearance' function in MuPDF's 'pdf-annot.c'.
Nr„  ÚTfr‰	  r`   ÚgÚrgr…  )r˜  r8   rZ  rœ  r”  r•  rý   )r&   rÜ  r7  rf  Údatrg  rE   r  s   &       r'   r  ÚWidget._parse_daŠ#  s)  € ð
 �}�}ˆ}ÙØˆØˆØˆØ�m‰m×!Ñ!Ó#ˆÜ  –~‰GˆAØ�tŒ|Ø˜q�5•z "•~�Ü˜c a¥%�jÓ)�Ø/1Ð1�‘Ð1˜˜q�S™ C¨!­¡HÙØ�sŒ{Ü˜c a¥%�jÓ)Ð+�Ø$&Ð&�‘˜˜q�S™ÙØ�tŽ|Ø),°­U°1©Ó6© A”u˜Q–x©�Ð6Ø:<Ð<�‘Ð<˜˜q�S™Ð< C¨!­¡H¨s°Qµ3©xÙñ &ð ŒØ"ÔØŒØˆŒÙùò 7s   ÃD7c                óê  € V P                   P                  '       g   V P                   P                  '       d   \        R4      hV P                  '       g   \        R4      hV P
                  R8X  d   RV n        \        V P                  4       \        V P                  4       V P                  '       g   RV n	        \        V P                  4       V P                  '       g   ^ V n
        V P                  '       g   ^ V n        V P                  P                  4       R,          V n        V P                  \        P                   \        P"                  \        P$                  39   pV P&                  '       g	   RV n        M(\)        V P&                  4      \*        Jd   \        R4      hV'       g   V P,                  '       g	   RV n        M(\)        V P,                  4      \*        Jd   \        R4      hV'       g   V P.                  '       g	   RV n        M(\)        V P.                  4      \*        Jd   \        R4      hV'       g   V P0                  '       g	   RV n        M(\)        V P0                  4      \*        Jd   \        R	4      hV'       g   V P2                  '       g	   RV n        M(\)        V P2                  4      \*        Jd   \        R
4      hV'       g   V P4                  '       g	   RV n        M(\)        V P4                  4      \*        Jd   \        R4      hV'       g   V P6                  '       g	   RV n        M(\)        V P6                  4      \*        Jd   \        R4      hV P9                  4        R# )z$Validate the class entries.
        zbad rectzfield name missingÚUnnamedN:rx   r™  Nzscript content must be a stringz$script_calc content must be a stringz&script_change content must be a stringz&script_format content must be a stringz&script_stroke content must be a stringz$script_blur content must be a stringz%script_focus content must be a stringr…  )rü   Úis_infiniteÚis_emptyrÃ   r‹  rŒ  r�  rü  r_  rý   r‡  r•  r†  rµ
  r�  r£   ÚPDF_WIDGET_TYPE_BUTTONÚPDF_WIDGET_TYPE_CHECKBOXr¬  r$  rÈ   ræ  rœ  r›  rš  r™  r�  rž  r¯  )r&   Úbtn_types   & r'   Ú	_validateÚWidget._validate©#  s|  € ð �I‰I×!×!Ð!Ø�y‰y×!×!Ð!ä˜ZÓ(Ð(à��ˆÜÐ1Ó2Ð2à×Ñ˜yÔ(Ø#ˆDÔÜ�4×$Ñ$Ô%Ü�4—?‘?Ô#Ø��ˆØ'ˆDŒOÜ�4—?‘?Ô#à× × Ð Ø !ˆDÔà×!×!Ð!Ø!"ˆDÔà ×-Ñ-×3Ñ3Ó5°cÕ:ˆÔð —?‘?Ü×,Ñ,Ü×.Ñ.Ü×1Ñ1ð'ñ ˆð
 �{�{ˆ{ØˆD�KÜ�$—+‘+Ó¤cÓ)ÜÐ>Ó?Ð?÷ ˜4×+×+Ð+Ø#ˆDÕÜ�$×"Ñ"Ó#¬3Ó.ÜÐCÓDÐDç˜4×-×-Ð-Ø!%ˆDÕÜ�$×$Ñ$Ó%¬SÓ0ÜÐEÓFÐFç˜4×-×-Ð-Ø!%ˆDÕÜ�$×$Ñ$Ó%¬SÓ0ÜÐEÓFÐFç˜4×-×-Ð-Ø!%ˆDÕÜ�$×$Ñ$Ó%¬SÓ0ÜÐEÓFÐFç˜4×+×+Ð+Ø#ˆDÕÜ�$×"Ñ"Ó#¬3Ó.ÜÐCÓDÐDç˜4×,×,Ð,Ø $ˆDÕÜ�$×#Ñ#Ó$¬CÓ/ÜÐDÓEÐEà�‰Žr)   c                óz  € V P                   '       g   R# V P                  P                  pV'       g   Q h\        V4      p\        P                  ! W P                   4      p\        P
                  ! V\        R4      4      pVP                  4       '       g   R# VP                  \        R4      V P                  4       VP                  \        R4      4      pVP                  4       '       g   \        R4       R# \        VP                  4       4       F¤  pVP                  V4      pVP                  4       '       g   K,  VP                  4       pW€P                   8X  d   KN  VP                  \        R4      4      p	V	P!                  4       R8X  g   K  VP                  \        R4      V P                  4       K¦  	  R# )	zÝPropagate the field flags.

If this widget has a "/Parent", set its field flags and that of all
its /Kids widgets to the value of the current widget.
Only possible for widgets existing in the PDF.

Returns True or False.
Fr§  ÚFfr@  z0warning: malformed PDF, Parent has no Kids arrayr¶  rZ  T)r  rì   rÎ   r£   rJ  r  r  r…  rP  rŽ  rI  rv   rS  r«  r¬  r  r„  )
r&   r1  ra  Ú
pdf_widgetr§  rB  rg  rC  r  rý  s
   &         r'   Ú_sync_flagsÚWidget._sync_flagsð#  sT  € ð �y�yˆyÙØ�k‰k× Ñ ˆßˆ
ˆsÜ˜sÓ#ˆä×*Ò*¨3·	±	Ó:ˆ
Ü×#Ò# J´¸Ó0BÓCˆØ×!Ñ!×#Ò#Ùð 	×Ñ¤¨£°×0@Ñ0@ÔAð ×"Ñ"¤8¨FÓ#3Ó4ˆØ× Ñ ×"Ò"ÜÐFÔGÙä�t×)Ñ)Ó+Ö,ˆAà×$Ñ$ QÓ'ˆCØ—?‘?×$Ò$ÙØ—>‘>Ó#ˆDØ—y‘yÔ ÙØ×&Ñ&¤x°	Ó':Ó;ˆGØ×&Ñ&Ó(¨HÔ4Ùà× Ñ ¤¨$£°×1AÑ1AÖBñ -ñ r)   c                óÚ  € V P                   R9  d   R# \        V R4      '       d   V P                  P                  pMR# V P                  pRRRR/pVP	                  VR4      pV^ ,          R8X  dZ   . pV^,          ^R pVP                  R4      R,          pV F)  pVP                  VP                  4       ^ ,          4       K+  	  WSR&   V^ ,          R	8X  d‡   . p\        V^,          P                  R
4      ^ ,          4      pVP                  V4      pVP                  R4      R,          pV F)  pVP                  VP                  4       ^ ,          4       K+  	  WSR&   VP	                  VR4      p	V	^ ,          R8X  dZ   . p
V	^,          ^R p	V	P                  R4      R,          pV F)  pV
P                  VP                  4       ^ ,          4       K+  	  W£R&   V	^ ,          R	8X  d‡   . p
\        V	^,          P                  R
4      ^ ,          4      pVP                  V4      p	V	P                  R4      R,          pV F)  pV
P                  VP                  4       ^ ,          4       K+  	  W£R&   V# )zéReturn the on/off state names for button widgets.

A button may have 'normal' or 'pressed down' appearances. While the 'Off'
state is usually called like this, the 'On' state is often given a name
relating to the functional context.
Nrì   rÏ  rÅ  zAP/Nr7   rˆ	  r‰	  r  r³   zAP/D©r†  r   r  )	r�  r=   rì   r  rä  r8   ro   r6   r^  )r&   r1  r  ÚstatesÚAPNÚnstatesÚapntri  ÚnxrefÚAPDÚdstatesÚapdtÚdxrefs   &            r'   Úbutton_statesÚWidget.button_states$  s  € ð �?‰? &Ô(ÙÜ�4˜×"Ò"Ø—+‘+×$Ñ$‰CáØ�y‰yˆØ˜D &¨$Ð/ˆØ×Ñ˜t VÓ,ˆØˆq�6�VÔØˆGØ�a•&˜˜2�,ˆCØ—9‘9˜S“> "Õ%ˆDÛ�Ø—‘˜qŸw™w›y¨�|Ö,ñ à&�8ÑØˆq�6�VÔØˆGÜ˜˜A�Ÿ™ SÓ)¨!Õ,Ó-ˆEØ—/‘/ %Ó(ˆCØ—9‘9˜S“> "Õ%ˆDÛ�Ø—‘˜qŸw™w›y¨�|Ö,ñ à&�8ÑØ×Ñ˜t VÓ,ˆØˆq�6�VÔØˆGØ�a•&˜˜2�,ˆCØ—9‘9˜S“> "Õ%ˆDÛ�Ø—‘˜qŸw™w›y¨�|Ö,ñ à$�6‰NØˆq�6�VÔØˆGÜ˜˜A�Ÿ™ SÓ)¨!Õ,Ó-ˆEØ—/‘/ %Ó(ˆCØ—9‘9˜S“> "Õ%ˆDÛ�Ø—‘˜qŸw™w›y¨�|Ö,ñ à$�6‰NØˆr)   c                	ó.   € V P                   P                  # r+   )Ú_annotr]  r-   s   &r'   r]  ÚWidget.nextN$  s   € à�{‰{×ÑÐr)   c                óä   € V P                   R9  d   R# V P                  4       pVf   \        4       pVP                  4        F  pW,           F  pVR8w  g   K  Vu u # 	  K!  	  \	        R4       R# )ae  Return the "On" value for button widgets.

This is useful for radio buttons mainly. Checkboxes will always return
"Yes". Radio buttons will return the string that is unequal to "Off"
as returned by method button_states().
If the radio button is new / being created, it does not yet have an
"On" value. In this case, a warning is shown and True is returned.
Nr«  z(warning: radio button has no 'On' value.TrÆ  )r�  rÐ  r7   rˆ  rv   )r&   Úbstaterô  rH   s   &   r'   Úon_stateÚWidget.on_stateR$  se   € ð �?‰? &Ô(ÙØ×#Ñ#Ó%ˆØŠ>Ü“VˆFØ—‘–ˆAØ—Y�Y�Ø˜–:Ø”Hó ñ ô 	Ð:Ô;Ùr)   c                óD   € \         P                  V P                  4       R# )z.Reset the field value to its default.
        N)r  Ú_reset_widgetrÓ  r-   s   &r'   r“
  ÚWidget.resetg$  s   € ô 	×Ñ˜DŸK™KÖ(r)   c                ó¤  € V P                  4        V P                  4        RV n        \        V P                  4      ^8X  d   RV P                  ,           pM[\        V P                  4      ^8X  d   RV P                  ,           pM-\        V P                  4      ^8X  d   RV P                  ,           pXP
                  ! V P                  RV P                  RV P                  / V n        V P                  '       d   \        V P                  4       \        P                  V P                  V 4       RV n        V'       d   V P                  4        R# R# )z!Reflect Python object in the PDF.r`   ú!{:g} {:g} {:g} rg /{f:s} {s:g} Tfz{:g} g /{f:s} {s:g} Tfz%{:g} {:g} {:g} {:g} k /{f:s} {s:g} Tfr  rŸ  N)r¾  r§  r˜  r9   rý   rþ  r”  r•  rœ  Úutil_ensure_widget_calcrÓ  r  Ú_save_widgetrÃ  )r&   Ú
sync_flagsr±   s   && r'   rN  ÚWidget.updatel$  sø   € à�‰Ôà×ÑÔð ˆŒÜ�—‘Ó! QÔ&Ø5¸¿¹ÕE‰CÜ�—‘Ó! QÔ&Ø*¨T¯]©]Õ:‰CÜ�—‘Ó! QÔ&Ø9¸D¿M¹MÕIˆCØŸ
š
 D§O¡Oð :°t·~±~ð :Ø&*×&8Ñ&8ñ:ˆŒð ××Ðä# D§K¡KÔ0ô 	×Ñ˜4Ÿ;™;¨Ô-ØˆŒßØ×ÑÖñ r)   )r˜  rü  rˆ  r†  r‡  r’  r‰  r�  rŽ  rŒ  r‹  r�  r‘  r�  r_  r“  rŠ  rü   r$  r�  rœ  r›  rž  rš  r™  rý   r”  r•  r—  r–  r  Nrƒ  )r/   r0   r1   r2   rc  r‘   rï   r§  r¯  r  r¾  rÃ  rÐ  r{  r]  r×  r“
  rN  r3   r,   r)   r'   rZ  rZ  :#  s]   † ñò#òJTòò=ò*ò>EòN+òZ/ðb ñ ó ð òò*)÷
ð r)   rZ  )Ú_extrac                  óÈ   € ] tR tRtR t]R 4       tR t]R 4       t]R 4       t	]R 4       t
]R 4       t]R	 4       t]R
 4       t]R 4       t]R 4       t]R 4       tR.tRtR# )r+  iŽ$  c                	ó   € Wn         R # r+   r$  ©r&   r>  s   &&r'   r‘   ÚOutline.__init__�$  s   € ØŽ	r)   c                ó   € \        V RR4      # )zoutline destination detailsN©rÂ  r-   s   &r'   r8
  ÚOutline.dest“$  s   € ô ˜˜d DÓ)Ð)r)   c                ó   € \        V RV4      # )zW
Like `dest` property but uses `document` to resolve destinations for
kind=LINK_NAMED.
Nrè  )r&   rÉ   s   &&r'   ÚdestinationÚOutline.destination˜$  s   € ô
 ˜˜d HÓ-Ð-r)   c                	óx   € V P                   pVP                  4       pVP                  '       g   R # \        V4      # r+   )rÄ   rÅ  rÌ   r+  )r&   r>  Údown_ols   &  r'   rÅ  ÚOutline.downŸ$  ó0   € à�Y‰YˆØ—'‘'“)ˆØ×!×!Ð!ÙÜ�wÓÐr)   c                	óþ   € \         '       d!   \        P                  ! V P                  4      # V P                  pVP                  '       g   R # TP                  P
                  pTf   R # \        P                  ! T4      # rƒ  )r  râ  ÚOutline_is_externalrÄ   rÌ   r  r£   rÊ  )r&   r>  r  s   &  r'   rÂ  ÚOutline.is_external§$  s[   € ç‹;ô ×-Ò-¨t¯y©yÓ9Ð9Ø�Y‰YˆØ�}�}ˆ}ÙØ�m‰m×ÑˆØŠ;ÙÜ×(Ò(¨Ó-Ð-r)   c                	óD   €  V P                   P                  P                  # rv  )rÄ   rÌ   rA  r-   s   &r'   rA  ÚOutline.is_open¶$  s   € àØ—9‘9×'Ñ'×/Ñ/Ð/r)   c                	óx   € V P                   pVP                  4       pVP                  '       g   R # \        V4      # r+   )rÄ   r]  rÌ   r+  )r&   r>  Únext_ols   &  r'   r]  ÚOutline.next¼$  rð  r)   c                	óX   €  V P                   P                  P                  P                  # rv  )rÄ   rÌ   rÖ   r-   s   &r'   rÖ   ÚOutline.pageÄ$  s!   € àØ—9‘9×'Ñ'×,Ñ,×1Ñ1Ð1r)   c                	óB   € V P                   P                  P                  # r+   )rÄ   rÌ   r¨  r-   s   &r'   r¨  ÚOutline.titleÊ$  s   € à�y‰y×#Ñ#×)Ñ)Ð)r)   c                	ón   € V P                   pVP                  '       g   R # VP                  P                  # r+   )rÄ   rÌ   r  rå  s   & r'   r  ÚOutline.uriÎ$  s'   € à�Y‰YˆØ�}�}ˆ}ÙØ�}‰}× Ñ Ð r)   c                	óB   € V P                   P                  P                  # r+   )rÄ   rÌ   ri  r-   s   &r'   ri  Ú	Outline.xÕ$  ó   € à�y‰y×#Ñ#×%Ñ%Ð%r)   c                	óB   € V P                   P                  P                  # r+   )rÄ   rÌ   rj  r-   s   &r'   rj  Ú	Outline.yÙ$  r  r)   rÄ   r$  N)r/   r0   r1   r2   r‘   r{  r8
  rë  rÅ  rÂ  rA  r]  rÖ   r¨  r  ri  rj  rø  r3   r,   r)   r'   r+  r+  Ž$  sÝ   † òð ñ*ó ð*ò.ð ñ ó ð ð ñ.ó ð.ð ñ#ó ð#ð
 ñ ó ð ð ñ%ó ð%ð
 ñ*ó ð*ð ñ!ó ð!ð ñ&ó ð&ð ñ&ó ð&ð �	„Ir)   r+  c                ó‚  a€ \         P                  ! 4       pWn        Wn        W&n        W6n        V'       d‰   S'       d$   \        S\         P                  4      '       g   Q hM\         P                  ! 4       o ! V3R lR\         P                  4      pV! 4       pVP                  VP                  4       4       W†n        V# )z,
Returns a mupdf.PdfFilterOptions instance.
c                  ó2   <a € ] tR tRtV V3R ltR tRtV ;t# )Ú'_make_PdfFilterOptions.<locals>.Factoryiÿ$  c                	óR   <€ \         SV `  4        V P                  4        SV n        R # r+   )rÇ   r‘   Úuse_virtual_filterÚsopts)r&   Ú	__class__r	  s   &€€r'   r‘   Ú0_make_PdfFilterOptions.<locals>.Factory.__init__ %  s!   ø€ Ü‘Ñ Ô"Ø×'Ñ'Ô)Ø"�–
r)   c           	     	ój   €  \        P                  ! TTTTTT P                  P                  4       4      # ru  )r%   r	  r  r£   Úll_pdf_new_sanitize_filter)r&   Úctxr1  ÚchainÚstruct_parentsÚ	transformr!  s   &&&&&&&r'   ÚfilterÚ._make_PdfFilterOptions.<locals>.Factory.filter%  s9   € Øô ×7Ò7ØØØ&Ø!ØØŸ
™
×+Ñ+Ó-óð r)   )r	  )r/   r0   r1   r2   r‘   r  r3   Ú__classcell__)r
  r	  s   @€r'   ÚFactoryr  ÿ$  s   ù† ö#÷ð r)   r  )r£   ÚPdfFilterOptionsr—  r˜  r™  Ú	no_updater@   ÚPdfSanitizeFilterOptionsÚPdfFilterFactory2Úadd_factoryr  Ú_factory)	r—  r˜  r™  r  rš  r	  rž  r  Úfactorys	   &&&&&f   r'   rœ  rœ  à$  s•   ø€ ô ×$Ò$Ó&€GØ„OØ+ÔØ„Mà!Ôß÷ Ü˜e¤U×%CÑ%C×DÒDÐDÑDä×2Ò2Ó4ˆE÷	”e×-Ñ-ô 	ñ2 “)ˆØ×Ñ˜G×,Ñ,Ó.Ô/Ø"ÔØ€Nr)   c            &      ó–  € ] tR tRtR tR tR tR tERR lt^RRRR^ RR]	P                  ^^ ^ RR3R	 ltR
 tR tR tERR ltR tERR ltERR ltR tR tR tR tR tR tR R ltR tER	R ltERR ltR tR tERR ltR t ERR! lt!R" t"ERR# lt#R$ t$R% t%ERR& lt&R' R( lt'R) R* lt(ERR+ R, llt)R-^R.RR/RR0RR1RR2^ R3RR4RR5]	P                  R6^R7^ R8^ R9RR:R/R; R< llt*ERR= R> llt+R? R@ lt,RA RB lt-RC RD lt.RE RF lt/RG RH lt0ERRI RJ llt1ERRK RL llt2ERRM RN llt3ERRO RP llt4ERRQ RR llt5ERRS RT llt6RU RV lt7RW t8RX t9ERRY lt:ERRZ R[ llt;ERR\ lt<R] t=R^ t>]?R_ 4       t@]?R` 4       tARa tBERRb ltC]?Rc 4       tD]?Rd 4       tERe tFRf Rg ltGRh tHRi Rj ltI]?Rk Rl l4       tJERRm Rn lltKERRo Rp lltLERRq Rr lltMERRs Rt lltNERRu Rv lltOERRw Rx lltPERRy Rz lltQERR{ R| lltRERR} R~ lltSERR R€ lltTERR� R‚ lltUERRƒ ltVR„ tW]?R… 4       tX]?R† 4       tY]?R‡ 4       tZERRˆ lt[ERR‰ lt\RŠ t]ERR‹ lt^ERRŒ R� llt_ERRŽ R� llt`ERR� R‘ lltaR’ tbR“ R” ltcR•]dR–RR—RR˜RR™RRšR /R› Rœ llteR� tfER Rž RŸ lltgERR  lthERR¡ ltiERR¢ ltjR£ R¤ ltkER!R¥ ltlERR¦ R§ lltmR¨ tnR© toRª tpR« tqR¬ trER	R­ R® lltsR¯ ttR° tuER"R² ltvR³RR´^ RµRR8^ R¶^ R6^R·R R¸R R¹R/	Rº R» lltwR™ER
R¼RR½^ R¾R R¿RR¶^ R·R RÀRR8^ RÁRRÂ^ RÃ^ /RÄ ltxERRÅ RÆ lltyR-^RÇRR.R±RÈRRÉ^ RÊ^ RËRRÌRR2RÍRÎ^RÏ^ R8^ RÐRR·R RÑ^RÒ^R¶^ /RÓ RÔ lltzR7^ R2RÍRËRRÊ^ RÕ^RÒ^RÌRRÈRR.R±R-^RÇRRÎ^RÐRR¶^ R·R RÏ^ R8^ RÉ^ RÑ^/RÖ R× llt{]?RØ 4       t|]?RÙ 4       t}ERRÚ lt~RÛ RÜ ltRÝ t€RÞ t�]?Rß 4       t‚]?Rà 4       tƒRá t„Râ t…Rã t†R¼RRÀRRÁR/Rä Rå llt‡]?Ræ 4       tˆ]?Rç Rè l4       t‰Ré tŠR˜RRêRRëRRìR/Rí Rî llt‹Rï tŒRð t�Rñ tŽRò t�ERRó lt�Rô t‘Rõ t’Rö t“ER#R÷ Rø llt”]?Rù 4       t•]?Rú 4       t–Rû Rü lt—ERRý lt˜Rþ t™ER$Rÿ ER  lltš]?ER 4       t›]?! ]BERER7      tœRt�ERtžR# (%  rÒ   i%  c                	óÔ  € \        V\        P                  \        P                  34      '       g   Q R V 24       hWn        RV n        RV n        RV n        \        4       V n	        W n
        VP                  '       de   \        V\        P                  4      '       d(   VP                  P                  P                  V n        R# VP                  P                  V n        R# RV n        R# )z	page is: TNr`   )r@   r£   rÔ   rÓ   rÄ   rõ   Ú
last_pointÚ	draw_contr7   rX  rì   rÌ   rÇ   r]  )r&   rÖ   rÉ   s   &&&r'   r‘   ÚPage.__init__ %  s    € Ü˜$¤§¡¬u¯}©}Ð =×>Ò>ÐRÀ)ÈDÈ6Ð@RÓRÐ>ØŒ	ØˆŒØˆŒØˆŒÜ›6ˆÔØŒØ�?�?ˆ?Ü˜4¤§¡×/Ò/Ø"Ÿo™o×3Ñ3×:Ñ:�–à"Ÿo™o×4Ñ4�–àˆDŽKr)   c                	ó"   € V P                  4       # r+   )rò   r-   s   &r'   rï   ÚPage.__repr__0%  s   € Ø�|‰|‹~Ðr)   c                	óð  € \        V R R4      p\        V P                  P                  \        P
                  4      '       d,   V P                  P                  P                  P                  pM V P                  P                  P                  pV'       d]   V P                  P                  pV P                  P                  e   RpVR8X  d   RpRV RV RV P                  P                  R R	2pV# RV 2pV# )
rì   Nr–  r`   znew PDFr¡  z of <z, doc# rH  Ú>)rî   r@   rÄ   rÌ   r£   Úpdf_pagerÇ   r]  rì   r   r   rÆ  )r&   rì   r]  ri  rI   s   &    r'   rò   ÚPage.__str__3%  sÏ   € ä˜˜x¨Ó.ˆÜ�d—i‘i×*Ñ*¬E¯N©N×;Ò;Ø—Y‘Y×)Ñ)×/Ñ/×6Ñ6‰Fà—Y‘Y×)Ñ)×0Ñ0ˆFçØ—‘× Ñ ˆAØ�{‰{×!Ñ!Ò-Ø�Ø�BŒwØ�Ø˜&˜  q c¨°·±×1FÑ1FÀqÐ0IÈÐKˆCð ˆ
ð ˜&˜Ð"ˆCØˆ
r)   c                	ó¬  € \         '       d-   \        P                  ! V P                  \	        V4      4      pV# V P                  4       p\        P                  ! V\        P                  4      pV'       d½   \	        V4      p\        P                  ! V4      p\        P                  ! VP                  VP                  VP                  VP                  ,           VP                  ,
          VP                  VP                  ,           VP                   ,
          4      p\        P"                  ! W%4       \        P$                  ! V4       \'        VR 4       V# ©rÓ  )r  r   Ú_add_caret_annotrÄ   ÚJM_point_from_pyÚ	_pdf_pager£   Úpdf_create_annotrJ  Úpdf_annot_rectrq  ri  rj  r´  rµ  r¶  r·  ré  rW  ÚJM_add_annot_id)r&   rn  rß   rÖ   r²  r$  s   &&    r'   r*  ÚPage._add_caret_annotF%  sÞ   € ß‹;Ü×*Ò*¨D¯I©IÔ7GÈÓ7NÓOˆEð ˆð —>‘>Ó#ˆDÜ×*Ò*¨4´×1FÑ1FÓGˆEßÜ$ UÓ+�Ü×(Ò(¨Ó/�Ü—L’L §¡ a§c¡c¨1¯3©3°·±­:¸¿¹Õ+<¸a¿c¹cÀAÇDÁD½jÈ1Ï4É4Õ>OÓP�Ü×(Ò(¨Ô2Ü×"Ò" 5Ô)Ü˜E 3Ô'Øˆr)   Nc                	ó²  € V P                  4       pV'       d   TMTpV'       d   TMTp	\        V4      p
\        V4      pVP                  '       g   \	        \
        4      h\        P                  ! V\        P                  4      p\        P                  ! V4      p\        P                  ! V
P                  V
P                  V
P                  VP                  ,           VP                  ,
          V
P                  VP                  ,           VP                   ,
          4      p\        P"                  ! WÍ4       \        P$                  p\        P&                  ! WÎ4       V'       d   \        P(                  ! WÆ4       \+        VP-                  4       W³W‰^4      p\        P.                  ! \        P0                  ! V4      \3        R4      V4       \        P4                  ! \        P0                  ! V4      \3        R4      V4       \        P6                  ! V4       \        P"                  ! WÍ4       \        P&                  ! WÎ4       \9        VR4       \;        V4      # )r™  r¶  rS  rÓ  )r,  r+  r.  rÌ   r¿  r/  r£   r-  rL  r.  Úfz_make_rectri  rj  r´  rµ  r¶  r·  ré  ÚPDF_ANNOT_IS_PRINTr£  Úpdf_set_annot_icon_namer·  r1  rU  r  r  r¯  rW  r/  râ   )r&   rn  r4  rj   rW  rÊ  ÚiconrÖ   ÚufrH  r²  Úfilebufrß   r$  rÐ  r  s   &&&&&&&         r'   Ú_add_file_annotÚPage._add_file_annotU%  s‹  € Ø�~‰~Óˆß#‰Y¨ˆß‰D˜hˆÜ˜UÓ#ˆÜ$ WÓ-ˆØ×!×!Ð!Üœ^Ó,Ð,Ü×&Ò& t¬U×-LÑ-LÓMˆÜ× Ò  Ó'ˆÜ×Ò˜qŸs™s A§C¡C¨¯©¨q¯t©t­°a·d±dÕ):¸A¿C¹CÀ!Ç$Á$½JÈÏÉÕ<MÓNˆÜ× Ò  Ô*Ü×(Ñ(ˆÜ×!Ò! %Ô/çÜ×)Ò)¨%Ô6ä˜DŸH™H›J¨¸2À!ÓDˆÜ×Òœ5×.Ò.¨uÓ5´xÀ³~ÀsÔKÜ×&Ò&¤u×':Ò':¸5Ó'AÄ8ÈJÓCWÐYaÔbÜ×Ò˜uÔ%Ü× Ò  Ô*Ü×!Ò! %Ô/Ü˜˜sÔ#Ü�U‹|Ðr)   Fc                	ó  € R V 2pV P                  4       pV'       d   V'       g   \        R4      hV'       d   V'       g   Tp\        V4      w  pp\        V4      w  pp\        V4      p\        P
                  ! V4      '       g   \        P                  ! V4      '       d   \        \        4      h\        P                  ! V\        P                  4      p\        P                  ! V4      pV'       g   \        P                  ! VV4       MJ\        P                  ! V\        R4      V4       V'       d"   \        P                  ! V\        R4      V4       \        P                  ! VV4       V^ 8  d   VR,          pK  VR8¼  d   VR,          pK  V^ 8w  d"   \        P                  ! V\        R4      V4       \        P                   ! VV4       V^ 8”  d   \        P"                  ! VVRV 4       \        P$                  ! VV4       \        P&                  ! VV4       V	'       d*   V	 F#  p\        P(                  ! V\+        V4      4       K%  	  V
'       dn   \        P,                  ! V\        R4      \        R4      4       \        P.                  ! VV4       \1        V
4      p\2        P4                  ! V\7        V
4      V4       V'       g   \9        VVVWC4       \        P:                  ! V4       \=        VR	4       \?        V4      pV# )
zï<?xml version="1.0"?>
            <body xmlns="http://www.w3.org/1999/xtml"
            xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"
            xfa:contentType="text/html" xfa:APIVersion="Acrobat:8.0.0" xfa:spec="2.4">
            r  r  ÚDSrí  r;  Nrò  ÚFreeTextCalloutrÓ  ) r,  rÃ   rB  r  r£   rç  ræ  rè  r-  rK  r  r­  r¯  r  ré  rP  Úpdf_set_annot_quaddingrQ  Úpdf_set_annot_border_widthrÖ  Úpdf_add_annot_border_dash_itemrœ  rU  Úpdf_set_annot_callout_styler9   r   ÚJM_set_annot_callout_linerµ   r  rW  r/  râ   )r&   rü   r   rÿ   rþ   rý   r_  rü  r‡  rŠ  ÚcalloutÚline_endr]  r  r`  Úrichtextr‰  r¦   rÖ   rc  rd  Úntcolr5  r$  rß   r&  rH  Úpoint_countr  s   &&&&&&&&&&&&&&&&&            r'   Ú_add_freetext_annotÚPage._add_freetext_annotp%  sA  € ð$ð ˆFð	ˆð
 �~‰~Óˆß§ÜÐLÓMÐMß§
Ø%ˆJÜ+¨JÓ7‰ˆˆtÜ+¨JÓ7‰ˆˆtÜ˜DÓ!ˆÜ×$Ò$ Q×'Ò'¬5×+AÒ+AÀ!×+DÒ+DÜœlÓ+Ð+Ü×&Ò& t¬U×-FÑ-FÓGˆÜ×'Ò'¨Ó.ˆ	÷ Ü×(Ò(¨°Õ5ä×*Ò*¨9´X¸d³^ÀRÔHßÜ×.Ò.¨y¼À$»ÈÔOä× Ò  ¨Ô*à�qŒjØ�c�MŠFØ˜ŒmØ�c�MŠFØ�QŒ;Ü×"Ò" 9¬h°xÓ.@À&ÔIä×$Ò$ U¨EÔ2à�1Œ9Ü×%Ò% e¨T°&°5¨\Ô:ä×(Ò(¨°Ô=Ü×#Ò# E¨7Ô3ßÛ�Ü×4Ò4°U¼EÀ!»HÖEñ ÷ Ü×Ò˜y¬(°4«.¼(ÐCTÓ:UÔVÜ×-Ò-¨e°XÔ>Ü˜g›,ˆKÜ×+Ò+¨E´5¸³>À;ÔO÷ Ü˜U E¨4°ÔDä×Ò˜uÔ%Ü˜˜sÔ#Ü�E‹lˆØˆ
r)   c                	ó²  € \        V P                  4      p\        V4      '       g   \        \        4      h\
        P                  ! 4       p\
        P                  ! V\
        P                  ! ^ 4      V4       \
        P                  ! V4      p\
        P                  ! V\
        P                  4      p\
        P                  ! V4      p\        V4      p\
        P                  ! VP                  4       V4      p\!        V4       EF  p	W,          p
\        V
4      p\
        P                  ! VP                  4       ^V,          4      p\!        V4       F›  pW­,          p\        V4      '       d   \#        V4      ^8w  d   \        \        4      h\
        P$                  ! \'        V4      V4      p\
        P(                  ! WÏP*                  4       \
        P(                  ! WÏP,                  4       K�  	  \
        P.                  ! WŒ4       EK  	  \
        P0                  ! V\3        R4      V4       \
        P4                  ! V4       \7        VR4       \9        V4      # )rx   rc  rÓ  )rÚ   rÄ   ÚPySequence_CheckrÃ   ÚMSG_BAD_ARG_INK_ANNOTr£   r|  rd  rq  r*  r-  rM  r  r9   rR  r1  rS  ÚPySequence_Sizerh  r+  rT  ri  rj  rK  rU  r  rW  r/  râ   )r&   r´   rÖ   ró  Úinv_ctmrß   r&  Ún0ÚinklistrŒ  ÚsublistÚn1r“  rg  r²  rn  s   &&              r'   Ú_add_ink_annotÚPage._add_ink_annotÀ%  sŸ  € Ü˜DŸI™IÓ&ˆÜ ×%Ò%ÜÔ3Ó4Ð4Ü�nŠnÓˆÜ× Ò  ¤u§|¢|°A£¸Ô<Ü×(Ò(¨Ó-ˆÜ×&Ò& t¬U×-@Ñ-@ÓAˆÜ×'Ò'¨Ó.ˆ	Ü�‹YˆÜ×%Ò% d§h¡h£j°"Ó5ˆä�r—ˆAØ•gˆGÜ�W“ˆBÜ×(Ò(¨¯©«°Q¸µVÓ<ˆFä˜2–Y�Ø•J�Ü'¨×*Ò*¬o¸aÓ.@ÀAÔ.EÜ$Ô&;Ó<Ð<Ü×0Ò0Ô1AÀ!Ó1DÀgÓN�Ü×)Ò)¨&·'±'Ô:Ü×)Ò)¨&·'±'Ö:ñ ô × Ò  ×1ñ ô 	×Ò˜9¤h¨yÓ&9¸7ÔCÜ×Ò˜uÔ%Ü˜˜sÔ#Ü�U‹|Ðr)   c                	óH  € V P                  4       p\        P                  ! V\        P                  4      p\	        V4      p\	        V4      p\        P
                  ! WEV4       \        P                  ! V4       \        VR 4       VP                  '       g   Q h\        V4      # r)  )
r,  r£   r-  rE  r+  Úpdf_set_annot_linerW  r/  rÌ   râ   )r&   rJ  rK  rÖ   rß   r   rI  s   &&&    r'   Ú_add_line_annotÚPage._add_line_annotà%  s~   € Ø�~‰~ÓˆÜ×&Ò& t¬U×-AÑ-AÓBˆÜ˜RÓ ˆÜ˜RÓ ˆÜ× Ò  ¨1Ô-Ü×Ò˜uÔ%Ü˜˜sÔ#Ø××ÐÐÐÜ�U‹|Ðr)   c                	óx  € V P                  4       p\        V4      ^8  d   \        \        4      h\        P
                  ! W24      pV FC  p\        V4      ^8w  d   \        \        4      h\        V4      p\        P                  ! WF4       KE  	  \        P                  ! V4       \        VR4       \        V4      # )r†  rÓ  )r,  r9   rÃ   ÚMSG_BAD_ARG_POINTSr£   r-  rL  r+  Úpdf_add_annot_vertexrW  r/  râ   )r&   rI  r0  rÖ   rß   r²  rn  s   &&&    r'   Ú_add_multilineÚPage._add_multilineë%  s”   € Ø�~‰~ÓˆÜˆv‹;˜Œ?ÜÔ0Ó1Ð1Ü×&Ò& tÓ8ˆÛˆAÜ Ó" aÔ'Ü Ô"4Ó5Ð5Ü$ QÓ'ˆEÜ×&Ò& uÖ4ñ	 ô 	×Ò˜uÔ%Ü˜˜sÔ#Ü�U‹|Ðr)   c                	ó`  € V P                  4       p. ROp^ p	\        P                  ! V\        P                  4      p
\	        V4      p\        P
                  ! V4      p\        P                  ! W¬4       V'       d—   \        V4      w  r˜\        P                  ! VP                  4       V	4      p\        V	4       F   p\        P                  ! WØV,          4       K"  	  \        P                  ! \        P                  ! V
4      \        R4      V4       V'       dµ   V'       g   Q h\        P                  ! \        P                  ! V
4      R\        P                   ! V4      4       \        P"                  ! \        P                  ! V
4      \        R4      V4       \        P$                  ! \        P                  ! V
4      \        R4      V4       \        P&                  ! V
4       \)        V
R4       \        P*                  ! V
P,                  4      p
\        P.                  ! V
4      p
\1        V
4      # )r™  r:  rú   ÚDArû   rÓ  )r™  r™  r™  rx   )r,  r£   r-  r  ÚJM_quad_from_pyÚfz_rect_from_quadré  rB  rR  r1  rS  rT  rU  r  r  r°  r±  r¯  rP  rW  r/  Úll_pdf_keep_annotrÌ   rä   râ   )r&   rM  r   Úda_strr  r   rý   rÖ   rd  rc  rß   Úqr$  rp  rg  s   &&&&&&&        r'   Ú_add_redact_annotÚPage._add_redact_annotú%  sƒ  € Ø�~‰~ÓˆÚˆØˆÜ×&Ò& t¬U×-CÑ-CÓDˆÜ˜DÓ!ˆÜ×#Ò# AÓ&ˆä× Ò  Ô*ßÜ/°Ó5‰KˆEÜ×%Ò% d§h¡h£j°%Ó8ˆCÜ˜5–\�Ü×)Ò)¨#°A­wÖ7ñ "ä×Òœu×2Ò2°5Ó9¼8ÀD»>È3ÔOßßˆM�6Ü×ÒÜ×'Ò'¨Ó.Ø!Ü×-Ò-¨dÓ3ôô
 ×*Ò*¬5×+>Ò+>¸uÓ+EÄxÐPTÃ~ÐW]Ô^Ü×"Ò"¤5×#6Ò#6°uÓ#=¼xÈ»}ÈeÔTÜ×Ò˜uÔ%Ü˜˜sÔ#Ü×'Ò'¨×(8Ñ(8Ó9ˆÜ—’ Ó&ˆÜ�U‹|Ðr)   c                	ó   € V P                  4       p\        V4      p\        P                  ! V4      '       g   \        P                  ! V4      '       d   \        \        4      h\        P                  ! W24      p\        P                  ! WT4       \        P                  ! V4       \        VR 4       VP                  '       g   Q h\        V4      # r)  )r,  r  r£   rç  ræ  rÃ   rè  r-  ré  rW  r/  rÌ   râ   )r&   rü   r0  rÖ   r$  rß   s   &&&   r'   Ú_add_square_or_circleÚPage._add_square_or_circle&  s–   € Ø�~‰~ÓˆÜ˜DÓ!ˆÜ×$Ò$ Q×'Ò'¬5×+AÒ+AÀ!×+DÒ+DÜœlÓ+Ð+Ü×&Ò& tÓ8ˆÜ× Ò  Ô*Ü×Ò˜uÔ%Ü˜˜sÔ#Ø××ÐÐÐÜ�U‹|Ðr)   c                	óf  € \        V4      p\        V4      p\        P                  ! V4      '       g   \        P                  ! V4      '       d   \        \        4      hV P                  4       p. ROp\        V4      pRpRpV\        V4      9   d
   WR,          pM»\        V\        4      '       d   VP                  4       pM”\        V\        4      '       d&   \        P                  ! V4      P!                  4       pMY\        V\"        \$        34      '       d   TpM:\        V\&        P(                  4      '       d   VP+                  4       pM	V^ ,          p\        P,                  ! V\        P.                  4      p	V'       Edš   \        P0                  ! V4      p
\        P2                  ! V
4      pVP5                  4       VP7                  4       rÜ\9        VP:                  V,          VP<                  V,          4      pWÎ,          pWÞ,          pVP>                  VP@                  ,           ^,          pVPB                  V^,          ,
          pVPD                  V^,          ,
          pVV,           pVV,           p\        PF                  ! VVVV4      p\        PH                  ! W“4       \        PJ                  ! W›4       \        PL                  ! \        PN                  ! V	4      \Q        R4      \        PR                  ! R4      4       \        PT                  ! V	R4       Mj\        PH                  ! W“4       \        PL                  ! \        PN                  ! V	4      \Q        R4      \Q        V4      4       \        PT                  ! W˜4       \        PV                  ! V	4       \Y        V	R4       \[        V	4      # )ÚApprovedNr*  Ú
ImageStampzImage StamprÓ  )rj  ÚAsIsÚConfidentialÚDepartmentalÚExperimentalÚExpiredÚFinalÚ
ForCommentÚForPublicReleaseÚNotApprovedÚNotForPublicReleaseÚSoldÚ	TopSecretÚDraft).r+  r  r£   rç  ræ  rÃ   rè  r,  r9   rS  r@   rì  rè  ræ  r»  r¼  Ú
read_bytesr  r©  r;   rª  rÄ  r-  rN  rå  Úfz_new_image_from_bufferr   r"  r÷  rˆ  r3  r*  r+  ri  rj  r2  ré  Úpdf_set_annot_stamp_imagerU  r  r  rå  r­  rW  r/  râ   )r&   rü   Ústampr$  rÖ   Ústamp_idrG   rÓ  r   rß   Úfzbuffr2  r   r"  Úscalerˆ  r3  r¼  rµ  r·  r´  r¶  s   &&&                   r'   Ú_add_stamp_annotÚPage._add_stamp_annot$&  s•  € Ü�D‹zˆÜ˜DÓ!ˆÜ×$Ò$ Q×'Ò'¬5×+AÒ+AÀ!×+DÒ+DÜœ\Ó*Ð*Ø�~‰~Óˆòˆô  �‹MˆØˆØˆØ”E˜!“HÔØ•?‰DÜ˜œv×&Ò&Ø—-‘-“/‰CÜ˜œs×#Ò#Ü—,’,˜uÓ%×0Ñ0Ó2‰CÜ˜¤¤yÐ1×2Ò2Ø‰CÜ˜œrŸz™z×*Ò*Ø—.‘.Ó"‰Cà˜A•;ˆDä×&Ò& t¬U×-BÑ-BÓCˆßˆ3Ü×9Ò9¸#Ó>ˆFÜ×0Ò0°Ó8ˆCð —5‘5“7˜CŸE™E›GˆqÜ˜Ÿ
™
 Q�¨¯©°a­Ó8ˆEØ•IˆEØ•YˆFð —g‘g §¡Õ'¨1Õ,ˆFØ—‘˜E A�IÕ%ˆBØ—‘˜F Q�JÕ&ˆBØ�e•ˆBØ�f•ˆBÜ×"Ò" 2 r¨2¨rÓ2ˆAÜ×$Ò$ UÔ.Ü×+Ò+¨EÔ7Ü×Òœu×2Ò2°5Ó9¼8ÀFÓ;KÌU×M_ÒM_Ð`lÓMmÔnÜ×(Ò(¨°Õ>ä×$Ò$ UÔ.Ü×Òœu×2Ò2°5Ó9¼8ÀFÓ;KÌXÐVZË^Ô\Ü×(Ò(¨Ô5Ü×Ò˜uÔ%Ü˜˜sÔ#Ü�U‹|Ðr)   c                	ó¦  € V P                  4       p\        V4      p\        P                  ! V\        P                  4      p\        P
                  ! V4      p\        P                  ! VP                  VP                  VP                  VP                  ,           VP                  ,
          VP                  VP                  ,           VP                  ,
          4      p\        P                  ! Wg4       \        P                  ! Wb4       V'       d   \        P                  ! Wc4       \        P                   ! V4       \#        VR 4       \%        V4      # r)  )r,  r+  r£   r-  rO  r.  r2  ri  rj  r´  rµ  r¶  r·  ré  r­  r4  rW  r/  râ   )r&   rn  r   r5  rÖ   r²  rß   r$  s   &&&&    r'   Ú_add_text_annotÚPage._add_text_annoth&  s×   € Ø�~‰~ÓˆÜ˜eÓ$ˆÜ×&Ò& t¬U×-AÑ-AÓBˆÜ× Ò  Ó'ˆÜ×Ò˜qŸs™s A§C¡C¨¯©¨q¯t©t­°a·d±dÕ):¸A¿C¹CÀ!Ç$Á$½JÈÏÉÕ<MÓNˆÜ× Ò  Ô*Ü×$Ò$ UÔ1ßÜ×)Ò)¨%Ô6Ü×Ò˜uÔ%Ü˜˜sÔ#Ü�U‹|Ðr)   c                	óú   € \        V 4       V P                  P                  '       g   \        R 4      h\	        WV4      pV'       g   R# \
        P                  ! V 4      Vn        W0P                  \        V4      &   V# )r�  N)	ro  rì   rƒ  rÃ   ÚPage__add_text_markerr  r   rX  rY  )r&   rž
  r0  r  s   &&& r'   Ú_add_text_markerÚPage._add_text_markerv&  s^   € ä�DÔØ�{‰{×!×!Ð!Ü˜[Ó)Ð)ä# D°Ó<ˆßÙÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!àˆ
r)   c                óâ  € \        V 4       \        '       dA   \        P                  V P                  n        \        P                  ! V P                  V4      # \        V P                  4      p\        V4      pV^8  d   R# R
p\        V\        4      '       g   \        R4      h\        P                  ! VP                  4       \        R4      4      P                   '       g0   \        P"                  ! VP                  4       \        R4      V4       \        P                  ! VP                  4       \        R4      4      pVP                   '       g   Q RV: RVP                   : 24       h\%        V4       F¾  pW,          p\'        V4      pV'       g   \)        RVR R24       K0   \        P*                  ! VP-                  4       \/        VP-                  4       V4      4      p\        P0                  ! VP-                  4       \        P2                  ! V4      ^ 4      p	\        P4                  ! WY4       KÀ  	  R#   \6         d+    \8        '       d   \;        4        \)        RTR R	24        Kø  i ; i)z&Add links from list of object sources.Nzbad 'linklist' argumentr¦  zlcount=z annots.m_internal=zskipping bad link / annot item rH  r   z.
r¨  )ro  r  r   ÚPage_addAnnot_FromStringr
  r+  rÄ   rÚ   r9   r@   rµ   rÃ   r£   r  r  r  rÌ   rX  rS  ÚJM_StrAsCharrv   rY  r1  ræ  r¹  r  rK  rk   r  r{   )
r&   ÚlinklistrÖ   Úlcountrg  r¯  Útxtpyr   rß   r  s
   &&        r'   r+  ÚPage._addAnnot_FromString„&  sÐ  € ä�DÔß‹;Ü27×2PÑ2PˆD�N‰NÔ/ä×1Ò1°4·9±9¸hÓGÐGÜ˜DŸI™IÓ&ˆÜ�X“ˆØ�AŒ:ÙØˆô ˜(¤E×*Ò*ÜÐ7Ó8Ð8Ü×!Ò! 4§8¡8£:¬x¸Ó/AÓB×M×MÐMÜ×$Ò$ d§h¡h£j´(¸8Ó2DÀfÔMÜ×#Ò# T§X¡X£Z´¸(Ó1CÓDˆØ× × Ð ÐC W V¡IÐ-A¨v×/@Ñ/@Ñ.BÐ"CÓCÐ Ü�v–ˆAØ•KˆEÜ Ó&ˆDßÜÐ9¸!¸A¸¸aÐ@ÔAÙðDÜ×,Ò,¨d¯h©h«jÔ:MÈtÏxÉxËzÐ[_Ó:`Óa�Ü×0Ò0°$·(±(³*¼e×>NÒ>NÐPUÓ>VÐXYÓZ�Ü×$Ò$ fÖ6ó øô ô Dß'Ó'¬NÔ,<ÜÐ9¸!¸A¸¸cÐB×CðDús   Æ&BH9È9I.ÉI.É-I.c                	óÂ   € V P                  4       pVP                  4       p\        WCW4      pVP                  '       g   \	        R 4      h\        VR4       \        V4      # )zcannot create widgetr:  )r,  r1  ÚJM_create_widgetrÌ   rÞ   r/  râ   )r&   r�  r‹  rÖ   ra  rß   s   &&&   r'   Ú
_addWidgetÚPage._addWidget¦&  sQ   € Ø�~‰~ÓˆØ�h‰h‹jˆÜ  ¨JÓCˆØ××ÐÜÐ 6Ó7Ð7Ü˜˜sÔ#Ü�U‹|Ðr)   c                	óÌ   € V P                  4       p\        P                  ! 4       p^ Vn        Wn        W%n        W5n        \        P                  ! VP                  4       WE4      pV# ru  )	r,  r£   ÚPdfRedactOptionsÚblack_boxesr   Úimage_methodÚline_artÚpdf_redact_pager1  )r&   r   rŽ
  ÚgraphicsrÖ   rU  Úsuccesss   &&&&   r'   Ú_apply_redactionsÚPage._apply_redactions¯&  sQ   € Ø�~‰~ÓˆÜ×%Ò%Ó'ˆØˆÔØŒ	Ø"ÔØ ŒÜ×'Ò'¨¯©«
°DÓ?ˆØˆr)   c                	óÌ   € V P                  4         V P                  P                  V 4       R V n        RV n        R V n        R V n        R #   \         d    \	        4         L5i ; irZ  )Ú_reset_annot_refsrì   rá  rk   r{   rõ   r]  rÄ   r-   s   &r'   rö   ÚPage._erase¹&  s]   € Ø×ÑÔ ð	Ø�K‰K×$Ñ$ TÔ*ð ˆŒØˆŒØˆŒØˆŽ	øô ô 	ÜÔÙð	ús   ’A ÁA#Á"A#c                ó<  € \        V 4      p\        P                  ! VP                  4       \        P                  4      p\        P                  ! VP                  4       \        P
                  4      p\        V P                  4      p\        P                  ! WBV4      # )a”  Count missing graphic state pushs and pops.

        Returns:
            A pair of integers (push, pop). Push is the number of missing
            PDF "q" commands, pop is the number of "Q" commands.
            A balanced graphics state for the page will be reached if its
            /Contents is prepended with 'push' copies of string "q
"
            and appended with 'pop' copies of "
Q".
        )	rÚ   r£   r  r  r  ÚPDF_ENUM_NAME_ContentsrÎ   rì   Ú pdf_count_q_balance_outparams_fn)r&   rÖ   r%  r¬  ra  s   &    r'   Ú_count_q_balanceÚPage._count_q_balanceÅ&  sy   € ô ˜DÓ!ˆÜ× Ò Ø�H‰H‹JÜ×)Ñ)ó
ˆô ×!Ò!Ø�H‰H‹JÜ×(Ñ(ó
ˆô ˜tŸ{™{Ó+ˆô ×5Ò5°cÀÓEÐEr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rÙ  r®  rs  rù  r,   )rþ  s   "r'   rÿ  ÚPage.__annotate__Ý&  s   € ÷ ñ ¨ð °6ñ r)   c                	ó‚  € Ve   V^ 8X  d   R # V P                   pVP                  VRR7      pRV9   g   RV9   g   \        R4      h/ pV P                  4        F	  w  rVWTV&   K  	  WP	                  4       9   d	   WA,          # ^ pRVR 2pW„P                  4       9   d   V^,          pRVR 2pK%  V P                  W�4       V# )NTr[  ú	/Type/OCGr~  zbad optional content: 'oc'ÚMCrH  )rì   r^  rÃ   Ú_get_resource_propertiesrˆ  r  Ú_set_resource_property)	r&   rÙ  r1  ÚcheckÚpropsr²  ri  rg  Úmcs	   &&       r'   Ú_get_optional_contentÚPage._get_optional_contentÝ&  sÂ   € ØŠ:˜˜qœÙØ�k‰kˆØ—‘ ¨t�Ó4ˆØ˜uÔ$¨¸Ô(=äÐ9Ó:Ð:àˆØ×1Ñ1Ö3‰DˆAØ�!‹Hñ 4à—‘“ÔØ•9ÐØˆØ�!�A�ˆZˆØ—L‘L“NÔ"Ø��FˆAØ�a˜�U�ŠBØ×#Ñ# BÔ+àˆ	r)   c                óX   € V P                  4       p\        VP                  4       4      pV# )z
page list Resource/Properties
)r,  ÚJM_get_resource_propertiesr  )r&   rÖ   r¦   s   &  r'   r«  ÚPage._get_resource_propertiesô&  s%   € ð �~‰~ÓˆÜ'¨¯©«
Ó3ˆØˆ	r)   c                	óx   €  \        P                  ! T P                  YT4      p\        P
                  ! T4      pT# rv  )r  r   Úpage_get_textpagerÄ   r£   r  r  r  Úfz_bound_pagerè  rQ  Ú_globalsr�   Úfz_enable_device_hintsÚFZ_NO_CACHEr@   rÔ   rÓ   rÇ   rÈ   Úfz_run_pagerj  Úfz_close_device)r&   r  rÐ  rî  Úll_tpageÚtpagerÖ   r!  rü   ró  Údevs   &&&&       r'   Ú_get_textpageÚPage._get_textpageü&  s2   € ØÜ×.Ò.¨t¯y©y¸$ÀvÓNˆHÜ×%Ò% hÓ/ˆEØˆLr)   c                	ó  € \         P                  ! 4       pV P                  4       pVP                  4       pT
pTpTp^ p^p^p^p^p^pV^ 8”  d»   \         P                  ! VV^ 4      p\         P
                  ! \         P                  ! V\        R4      \        R4      4      4      p\         P
                  ! \         P                  ! V\        R4      \        R4      4      4      pVV,           ^ 8X  d   \        \        4      h^ p^ p^ p^ pM6V'       d   \        V4      p^ pM V'       d   \         P                  ! V4      p^ pV'       Ed…   VP                  pVP                  4       pVP                  4       p\         P                  ! V4      pTp VP!                  V R4      p!V!e0   T!p\         P                  ! VP                  4       V^ 4      p^ p^ p^ pMûVP#                  4       ^ 8X  d,   \         P$                  ! V\         P&                  ! 4       4      p"M·\         P(                  ! V\         P*                  ! 4       \         P*                  ! 4       \         P,                  ! R4      \         P.                  ! 4       ^4      p#^ V#n        RV#n        \         P$                  ! V#\         P&                  ! 4       4      p$\         P$                  ! VV$4      p"^ p^ pV'       Ed   \         P2                  ! 4       p%\4        '       d   \         P6                  ! V%X4       M@\         P8                  ! V%XP:                  P<                  VP:                  P>                  4       V'       dp   \        V4      p\4        '       d   \         P6                  ! V%V4       M@\         P8                  ! V%VP:                  P<                  VP:                  P>                  4       \         P@                  ! V%4      p\C        V4      p VP!                  V R4      p!V!eª   T!p\         P                  ! VP                  4       V^ 4      p\         P
                  ! \         P                  ! V\        R4      \        R4      4      4      p\         P
                  ! \         P                  ! V\        R4      \        R4      4      4      p^ p^ pM@\         PD                  ! V4      p"V"P                  4       pV"P                  4       pV'       g   ^ pV'       d´   \         PF                  ! X"4      p&V&P:                  '       g   \        R4      hV"PI                  4       p'V"P1                  4       p(\         PJ                  ! V"4      w  p)p*\         PD                  ! V4      p$\         PL                  ! VVV'V(V)V*^^ \O        4       \O        4       V&V$4      p"V'       dJ   \         PP                  ! VX"4      pV	'       d   \S        VVV	4       \         PT                  ! V4      pVVX &   ^pV'       Ed†   \         PV                  ! VPY                  4       \        R4      4      p+V+P:                  '       g0   \         PZ                  ! VPY                  4       \        R4      ^4      p+\         P\                  ! V+\        R4      4      p,V,P:                  '       g"   \         PZ                  ! V+\        R4      ^4      p,\_        VVWWV4      p-\         P`                  ! V,VX4       \         Pb                  ! ^24      p.R	\e        V-Pf                  V-Ph                  V-Pj                  V-Pl                  V-Pn                  V-Pp                  34       R
V R2p/\         Pr                  ! V.V/4       \u        VVPY                  4       V.V4       V'       d   VV3# VR3# )rx   ÚWidthr:  ÚHeightrA  Nz#uncompressed image cannot have maskr<  ÚXObjectú
q
z cm
/z Do
Q
);r£   rF  r,  r1  r¹  r  r  r  rÃ   ÚMSG_IS_NO_IMAGEr.  Úfz_read_filerÄ   r   r"  Úfz_md5_pixmap2r:   rñ  Úfz_new_image_from_pixmapÚFzImageÚfz_convert_pixmapr-  ÚFzDefaultColorspacesÚFzColorParamsrð  ÚFzMd5r¢   Úfz_md5_update_bufferÚfz_md5_updaterÌ   rË  r9   Úfz_md5_final2r  rz  Úfz_compressed_image_bufferÚbpcÚfz_image_resolutionÚ$fz_new_image_from_compressed_buffer2r´   Úpdf_add_imagerÏ  r  r  r  rY  r  Úcalc_image_matrixr°  r0
  r¶   r   rI  rõ  rH  rh  r  Úfz_append_stringÚJM_insert_contents)0r&   rj   Úpixmapr   Úimaskr  Úoverlayr`  Úkeep_proportionrÙ  rˆ  r3  r  rñ  Ú_imgnameÚdigestsÚmaskbufrÖ   ra  r   r"  Úimg_xrefÚ	rc_digestÚdo_process_pixmapÚdo_process_streamÚdo_have_imaskÚdo_have_imageÚdo_have_xrefÚrefÚimgbufÚarg_pixÚdigestÚmd5_pyr  ÚimagerS  ÚmaskÚstateÚcbuf1rÔ  rð  ÚxresÚyresri  Úxobjectr€  ÚnresrŸ  s0   &&&&&&&&&&&&&&&&                                r'   Ú_insert_imageÚPage._insert_image'  sð  € ô
 —.’.Ó"ˆØ�~‰~Óˆð �h‰h‹jˆØˆØˆØˆØˆ	àÐØÐØˆØˆØˆà�!Œ8Ü×(Ò(¨¨d°AÓ6ˆCÜ× Ò ¤%×"5Ò"5°s¼HÀWÓ<MÌxÐX[Ë}Ó"]Ó^ˆAÜ× Ò ¤%×"5Ò"5°s¼HÀXÓ<NÔPXÐY\ÓP]Ó"^Ó_ˆAØ�1�u˜ŒzÜ ¤/Ó2Ð2à !ÐØ !ÐØˆMØ‰M÷ Ü+¨FÓ3�Ø$%Ñ!çÜ"×/Ò/°Ó9�Fà()Ð%çÐð —k‘kˆGØ—	‘	“ˆAØ—	‘	“ˆAÜ×)Ò)¨'Ó2ˆFØˆFØ—;‘;˜v tÓ,ˆDØÒØ�Ü×,Ò,¨T¯X©X«Z¸À1ÓE�à$%Ð!Ø !�Ø !‘à—=‘=“? aÔ'Ü!×:Ò:¸7ÄEÇMÂMÃOÓT‘Eä×0Ò0Ø#Ü!×.Ò.Ó0Ü!×.Ò.Ó0Ü!×6Ò6°tÓ<Ü!×/Ò/Ó1Øó�Bð  !�B”HØ$(�B”MÜ ×9Ò9¸"¼e¿mºm»oÓN�DÜ!×:Ò:¸7ÀDÓI�Eà$%Ð!Ø !�çÐô —K’K“MˆEß‹{Ü×*Ò*¨E°6Õ:ä×#Ò# E¨6×+<Ñ+<×+AÑ+AÀ6×CTÑCT×CXÑCXÔYßÜ,¨UÓ3�ß“;Ü×.Ò.°°wÕ?ä×'Ò'¨¨w×/AÑ/A×/FÑ/FÈ×HZÑHZ×H^ÑH^Ô_Ü×(Ò(¨Ó/ˆFÜ˜6“]ˆFØ—;‘;˜v tÓ,ˆDØÒØ�Ü×,Ò,¨T¯X©X«Z¸À1ÓE�Ü×$Ò$¤e×&9Ò&9¸3ÄÈÓ@QÔS[Ð\_ÓS`Ó&aÓb�Ü×$Ò$¤e×&9Ò&9¸3ÄÈÓ@RÔT\Ð]`ÓTaÓ&bÓc�à !�Ø !‘ä×6Ò6°vÓ>�Ø—G‘G“I�Ø—G‘G“I�ßà$%�Mçô ×4Ò4°eÓ<ˆEØ×#×#Ð#Ü Ð"GÓHÐHØ—)‘)“+ˆCØ×)Ñ)Ó+ˆJÜ×2Ò2°5Ó9‰JˆD�$Ü×1Ò1°'Ó:ˆDÜ×>Ò>ØØØØØØØØÜ“FÜ“FØØóˆE÷ ä×%Ò% c¨5Ó1ˆCßÜ   c¨2Ô.Ü×'Ò'¨Ó,ˆHØ&ˆG�F‰OØˆIçˆ<ä×6Ò6°t·x±x³zÄ8ÈKÓCXÓYˆIØ×'×'Ð'Ü!×3Ò3°D·H±H³JÄÈÓ@UÐWXÓY�	Ü×(Ò(¨´H¸YÓ4GÓHˆGØ×%×%Ð%Ü×1Ò1°)¼XÀiÓ=PÐRSÓT�Ü# A q¨$¸ÓHˆCÜ×Ò ¨°3Ô7Ü×&Ò& rÓ*ˆDØœ	 3§5¡5¨#¯%©%°·±¸¿¹¸s¿u¹uÀcÇeÁeÐ"LÓMÐNÈfÐU]ÐT^Ð^fÐgˆAä×"Ò" 4¨Ô+Ü˜s D§H¡H£J°°gÔ>çØ˜WÐ$Ð$à˜T�>Ð!r)   c                	óð  € V P                  4       pVP                  4       p\        WÂW4WVWxWš4
      p\        P                  ! VP                  4       \        R 4      4      pVP                  4       '       g0   \        P                  ! VP                  4       \        R 4      ^4      p\        P                  ! V\        R4      4      pVP                  '       gQ   \        P                  ! V^4      p\        P                  ! VP                  4       V\        R 4      \        R4      4       \        V^ 4      w  ppV'       g   \        R4      h\        P                  ! VV^ 4      p\        P                   ! WñV4       V# )r<  rã  zcannot insert font)r,  r1  r$  r£   r  r  r  r…  rY  r  rÌ   rZ  rV  rö  rÞ   r¹  r°  )r&   rþ   rä  r%  r&  Ú
set_simplerë  r=  rL  r  ræ  rÖ   ra  r¸   ri  rç  r@  r  Úfont_objs   &&&&&&&&&&&        r'   Ú_insertFontÚPage._insertFontÁ'  s  € Ø�~‰~ÓˆØ�h‰h‹jˆä˜s¨HÀÐRWÐ`hÓsˆä×2Ò2°4·8±8³:¼xÈÓ?TÓUˆ	Ø×$Ñ$×&Ò&Ü×/Ò/°·±³
¼HÀ[Ó<QÐSTÓUˆIÜ×"Ò" 9¬h°vÓ.>Ó?ˆØ××ÐÜ×&Ò& s¨AÓ.ˆEÜ×Ò §¡£
¨E´8¸KÓ3HÌ(ÐSYÓJZÔ[ä˜e QÓ'‰ˆˆ4ßÜÐ 4Ó5Ð5Ü×)Ò)¨#¨t°QÓ7ˆÜ×Ò˜E¨XÔ6Øˆr)   c                	óˆ   € V P                  4       pV^ 8X  d   \        W14      pM\        W24      pV'       d   \        V4      # R# rŒ   )r,  ÚJM_get_annot_by_nameÚJM_get_annot_by_xrefrâ   )r&   r   r  rÖ   rß   s   &&&  r'   Ú_load_annotÚPage._load_annotÖ'  s;   € Ø�~‰~ÓˆØ�1Œ9Ü(¨Ó4‰Eä(¨Ó4ˆEßÜ˜“<Ðñ r)   c           	     	óH   € \        WP                  W#WEV4      p\        V4      # r+   )ÚJM_pixmap_from_pagerÄ   rì  )r&   r1  ró  rô  rñ  r¯  r  rõ  s   &&&&&&& r'   Ú_makePixmapÚPage._makePixmapß'  s    € Ü! #§y¡y°#¸5È$ÓOˆÜ�c‹{Ðr)   c                	ó°  € \         P                  ! \         P                  P                  4      p\        V P                  R R7      pVP
                  '       dX   \         P                  ! VP                  4       V4      p\         P                  ! V4      '       d   \         P                  ! V4      p\         P                  ! V4      '       d   R# \        V4      # )Frß  N)r£   rq  rr  rÚ   rÄ   rÌ   r  r  rI  Úpdf_to_rectrç  rp  )r&   Úboxtyperü   rÖ   r  s   &&   r'   Ú
_other_boxÚPage._other_boxã'  s‹   € Ü�|Š|œUŸ\™\×8Ñ8Ó9ˆÜ˜DŸI™I°Ô6ˆØ�?�?ˆ?Ü×%Ò% t§x¡x£z°7Ó;ˆCÜ×!Ò! #×&Ò&Ü×(Ò(¨Ó-�Ü×$Ò$ d×+Ò+ÙÜ˜tÓ$Ð$r)   Tc                	ó0   € \        V P                  VR 7      # )rß  )rÚ   rÄ   )r&   rÍ   s   &&r'   r,  ÚPage._pdf_pageî'  s   € Ü˜DŸI™I°Ô9Ð9r)   c                ó:   € V P                   P                  4        R# )z,Invalidate / delete all annots of this page.N)rX  rW  r-   s   &r'   rŸ  ÚPage._reset_annot_refsñ'  s   € à×Ñ×ÑÖ r)   c                	ór  € V^8¼  d   V^8¼  d   Vf   R# \        \        \        V^ 4      ^d,          4      4      pV^d8¼  d   ^cp\        \        \        V^ 4      ^d,          4      4      pV^d8¼  d   ^cpRVR VR 2pV'       g   R# \        V P                  4      p\
        P                  ! VP                  4       \        R4      4      pVP                  '       g0   \
        P                  ! VP                  4       \        R4      ^4      p\
        P                  ! V\        R4      4      p	V	P                  '       g"   \
        P                  ! V\        R4      ^4      p	\
        P                  ! V	4      p
\        V
4       F9  p\
        P                  ! W›4      p\
        P                  ! V4      pWÑ8X  g   K7  Vu # 	  \
        P                  ! VP!                  4       ^4      p\
        P"                  ! V\        R4      V4       \
        P"                  ! V\        R4      V4       \
        P$                  ! W‘V4       V# )r™  NÚfitzcaÚ02dr<  r@  r=  r>  )r6   rÿ  r'  rÚ   rÄ   r£   r  r  r  rÌ   rY  r†  rS  rˆ  r„  rZ  r1  r[  r°  )r&   Úgstater=  r>  rŽ  ÚtCAÚtcarÖ   ri  rk  rG   rg  rp  r   Úopas   &&&&&          r'   Ú_set_opacityÚPage._set_opacityõ'  s°  € à�Œ7�r˜Q”w 9Ò#4ÙÜ”%œ˜B › cÕ)Ó*Ó+ˆØ�#Œ:ØˆCÜ”%œ˜B ›
 SÕ(Ó)Ó*ˆØ�#Œ:ØˆCØ˜#˜c˜ 3 s )Ð,ˆçÙÜ˜DŸI™IÓ&ˆÜ×&Ò& t§x¡x£z´8¸KÓ3HÓIˆ	Ø×#×#Ð#Ü×/Ò/°·±³
¼HÀ[Ó<QÐSTÓUˆIÜ×!Ò! )¬X°kÓ-BÓCˆØ��ˆÜ×*Ò*¨9´h¸{Ó6KÈQÓOˆDÜ×Ò˜tÓ$ˆÜ�q–ˆAÜ×'Ò'¨Ó0ˆBÜ×$Ò$ RÓ(ˆDØŽ~Ø’ñ	 ô
 × Ò  §¡£¨QÓ/ˆÜ×Ò ¤X¨d£^°RÔ8Ü×Ò ¤X¨d£^°RÔ8Ü×Ò˜D¨#Ô.Øˆr)   c           
     	óê  € V P                   pVf   \        R4      hVP                  '       g   \        R4      hRpW9  d   \        R4      h\        V4      pV P                  p\        V^ ,          VP
                  V^,          ,
          V^,          VP
                  V^,          ,
          4      pVP                  VP                  u;8:  d$   VP                  u;8  d   VP                  8:  dE   M MAVP                  VP                  u;8:  d$   VP
                  u;8  d   VP
                  8:  g   M \        V R24      hVP                  V P                  VR\        \        V4      4       R24       R # )NrÁ  r�  zbad boxtypez not in MediaBoxr–  r—  )ÚCropBoxÚBleedBoxÚTrimBoxÚArtBox)rì   rÃ   rƒ  r+  rJ  r¶  rµ  r´  r·  r›  r  r¶   rµ   )r&   r  rü   r1  Úvalid_boxesÚmbs   &&&   r'   Ú_set_pageboxÚPage._set_pagebox(  s
  € Ø�k‰kˆØŠ;ÜÐ>Ó?Ð?à�z�zˆzÜ˜[Ó)Ð)àBˆàÔ%Ü˜]Ó+Ð+ä�D‹zˆØ�]‰]ˆÜ�D˜•G˜RŸU™U T¨!¥W�_¨d°1­g°r·u±u¸tÀA½wµÓGˆØ—‘˜Ÿ™Ö3 4§7¡7Ö3¨b¯e©e×3¸¿¹ÀÇÁÖ8[È4Ï7É7Ö8[ÐVX×V[ÑV[Ö8[Ü ˜yÐ(8Ð9Ó:Ð:à×Ñ˜Ÿ™ G¨q´¼5À»;Ó1GÐ0HÈÐ-JÖKr)   c                	óZ   € V P                  4       p\        VP                  4       W4       R # r+   )r,  ÚJM_set_resource_propertyr  )r&   r   r  rÖ   s   &&& r'   r¬  ÚPage._set_resource_property+(  s   € Ø�~‰~ÓˆÜ  §¡£¨TÖ8r)   c	                	ó  € \        V4      p	\        V4      p
Tp\        V P                  4      pVP	                  4       pVP                  4       p\        V4       \        WáWGP                  4      pV'       g   \        P                  ! V4      p\        P                  ! V^4      p\        P                  ! VRV4       \        P                  ! V^4      p\        P                  ! V\        R4      V4       \        P                  ! ^4      p\        P                  ! VR4       \        P                   ! WéV
VV4      pV^ 8”  d"   \#        V\        P$                  ! V4      V4       \        P&                  ! V\        R4      4      pVP(                  '       g"   \        P*                  ! V\        R4      ^4      p\        P,                  ! V\        R4      4      pVP(                  '       g"   \        P*                  ! V\        R4      ^4      p\        P                  ! VVV4       \        P                  ! ^24      p\        P                  ! VR4       \        P                  ! VV4       \        P                  ! VR4       \/        WíVV4       V# )r   ÚfullpagerÅ  z/fullpage Dor<  z q /z Do Q )r  rè  rÚ   rÄ   r  r1  rd  ÚJM_xobject_from_pager£   r  rZ  r°  rU  r  r0
  rÙ  Úpdf_new_xobjectrÏ  rú  r  rÌ   rY  r  rÚ  )r&   Ú
fz_srcpagerÝ  rî  r  rÙ  r  r‰  rß  r¶	  r€  Úrc_xrefr¾  Útpagerefr	  Úxobj1Úsubres1Úsubresr%  Úxobj2ri  rõ  s   &&&&&&&&&             r'   Ú_show_pdf_pageÚPage._show_pdf_page/(  sï  € Ü! $Ó'ˆÜ Ó'ˆØˆÜ˜TŸY™YÓ'ˆØ—9‘9“;ˆØ—‘“ˆÜ˜Ô ô % V¸¿}¹}ÓMˆßÜ×&Ò& uÓ-ˆGô ×$Ò$ V¨QÓ/ˆÜ×Ò˜G Z°Ô7Ü×#Ò# F¨AÓ.ˆÜ×Ò˜6¤8¨IÓ#6¸Ô@ä×!Ò! "Ó%ˆÜ×Ò˜s NÔ3ä×%Ò% f°s¸FÀCÓHˆØ�Œ6Ü˜V¤U×%?Ò%?ÀÓ%FÈÔKô ×2Ò2°8¼XÀkÓ=RÓSˆ	Ø×#×#Ð#Ü×/Ò/°¼À+Ó9NÐPQÓRˆIÜ×#Ò# I¬x¸	Ó/BÓCˆØ× × Ð Ü×,Ò,¨Y¼ÀÓ8KÈQÓOˆFä×Ò˜F H¨eÔ4ô
 ×"Ò" 2Ó&ˆÜ×Ò˜t VÔ,Ü×Ò˜t XÔ.Ü×Ò˜t XÔ.ä˜6¨T°7Ô;Øˆr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rn  rº   rs  râ   r,   )rþ  s   "r'   rÿ  r§  h(  s   € ÷ ñ  Zð °Eñ r)   c                ó   € \        V 4      p V P                  V4      pV^ 8w  d   V P                  V4       \        T4      p\	        Y4       \        TR4      '       g   Q hT#   T^ 8w  d   T P                  T4       i i ; i)zAdd a 'Caret' annotation.rì   )Úannot_preprocessr*  rî  râ   Úannot_postprocessr=   )r&   rn  Úold_rotationrß   s   &&  r'   Úadd_caret_annotÚPage.add_caret_annoth(  s   € ä'¨Ó-ˆð	0Ø×)Ñ)¨%Ó0ˆEà˜qÔ Ø×!Ñ! ,Ô/Ü�u“ˆÜ˜$Ô&Ü˜˜x×(Ò(Ð(Ð(Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !ús   �A" Á"A=c               ó    € V ^8„  d   QhRRRR/# ©r†  rü   r¼   rs  râ   r,   )rþ  s   "r'   rÿ  r§  u(  s   € ÷ 	ñ 	 Yð 	°5ñ 	r)   c                óà   € \        V 4      p V P                  V\        P                  4      pV^ 8w  d   V P	                  V4       \        Y4       T#   T^ 8w  d   T P	                  T4       i i ; i)z*Add a 'Circle' (ellipse, oval) annotation.)r3  rg  r£   rD  rî  r4  ©r&   rü   r5  rß   s   &&  r'   Úadd_circle_annotÚPage.add_circle_annotu(  ók   € ä'¨Ó-ˆð	0Ø×.Ñ.¨t´U×5KÑ5KÓLˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úó   � A ÁA-c               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r†  rn  rº   r4  rË  rj   ræ  rW  rù  rÊ  r5  rs  râ   r,   )rþ  s   "r'   rÿ  r§  €(  sP   € ÷ ñ àðð  ðð ð	ð
 ðð ðð ðð ñr)   c           	     óÎ   € \        V 4      p V P                  VVVVVVR7      pV^ 8w  d   V P                  V4       \        Y4       T#   T^ 8w  d   T P                  T4       i i ; i)z"Add a 'FileAttachment' annotation.)rW  rÊ  r5  )r3  r8  rî  r4  )	r&   rn  r4  rj   rW  rÊ  r5  r5  rß   s	   &&&&&&&  r'   Úadd_file_annotÚPage.add_file_annot€(  s}   € ô (¨Ó-ˆð
	0Ø×(Ñ(¨ØØØ'ØØð )ó ˆEð ˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !ús   �A	 Á	A$rÿ   rþ   rý   r_  rü  r‡  rŠ  rB  rC  r]  r  r`  rD  r‰  c               óT   € V ^8„  d   QhRRRRRRRRR	R
RR
RR
RRRR
RR
RRRRRRRRRR/# )r†  rü   r¼   r   ræ  rÿ   rœ  rþ   rù  rý   rû  r_  rü  r‡  rŠ  rB  rC  r6   r]  r  r`  rs  râ   r,   )rþ  s   "r'   rÿ  r§  ™(  s    € ÷ .ñ .àð.ð ð.ð
 ð.ð ð.ð ð.ð ð.ð !ð.ð  ð.ð ð.ð ð.ð ð.ð ð.ð ð.ð  ð!.ð& ñ'.r)   c               óä   € \        V 4      p V P                  VVVVVVVVV	V
VVVVVVR7      pV^ 8w  d   V P                  V4       \        T T4       T#   T^ 8w  d   T P                  T4       i i ; i)zAdd a 'FreeText' annotation.)rÿ   rþ   rý   r_  rü  r‡  rŠ  rB  rC  r]  r  r`  rD  r‰  )r3  rG  rî  r4  )r&   rü   r   rÿ   rþ   rý   r_  rü  r‡  rŠ  rB  rC  r]  r  r`  rD  r‰  r5  rß   s   &&&$$$$$$$$$$$$$$  r'   Úadd_freetext_annotÚPage.add_freetext_annot™(  sž   € ô, (¨Ó-ˆð	0Ø×,Ñ,ØØØ%Ø%Ø)Ø)Ø!-Ø!-Ø!Ø#Ø%Ø#ØØ!Ø%Øð! -ó ˆEð& ˜qÔ Ø×!Ñ! ,Ô/Ü˜$ Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !ús   �!A ÁA/c               ó   € V ^8„  d   QhRR/# ©r†  rs  râ   r,   )rþ  s   "r'   rÿ  r§  É(  s   € ÷ ñ Ø38ñr)   c                ó€   € Vf   \        WW4R7      pM\        V4      pV P                  V\        P                  4      pV# )zAdd a 'Highlight' annotation.©rÇ  r‡  r  )Úget_highlight_selectionÚCheckMarkerArgr‡  r£   ÚPDF_ANNOT_HIGHLIGHT)r&   rž
  rÇ  r‡  r  rc  rI   s   &&&&&  r'   Úadd_highlight_annotÚPage.add_highlight_annotÉ(  s<   € ð Š=Ü'¨ÀÔP‰Aä˜uÓ%ˆAØ×#Ñ# A¤u×'@Ñ'@ÓAˆØˆ
r)   c               ó    € V ^8„  d   QhRRRR/# )r†  Úhandwritingr´   rs  râ   r,   )rþ  s   "r'   rÿ  r§  Ó(  s   € ÷ ñ ¨ð °%ñ r)   c                óÂ   € \        V 4      p V P                  V4      pV^ 8w  d   V P                  V4       \        Y4       T#   T^ 8w  d   T P                  T4       i i ; i)z^Add a 'Ink' ('handwriting') annotation.

The argument must be a list of lists of point_likes.
)r3  rR  rî  r4  )r&   rR  r5  rß   s   &&  r'   Úadd_ink_annotÚPage.add_ink_annotÓ(  se   € ô
 (¨Ó-ˆð	0Ø×'Ñ'¨Ó4ˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úó   �A ÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r†  rJ  rº   rK  rs  râ   r,   )rþ  s   "r'   rÿ  r§  á(  s!   € ÷ 	ñ 	 ð 	°ð 	Àñ 	r)   c                óÂ   € \        V 4      p V P                  W4      pV^ 8w  d   V P                  V4       \        Y4       T#   T^ 8w  d   T P                  T4       i i ; i)zAdd a 'Line' annotation.)r3  rV  rî  r4  )r&   rJ  rK  r5  rß   s   &&&  r'   Úadd_line_annotÚPage.add_line_annotá(  sc   € ä'¨Ó-ˆð	0Ø×(Ñ(¨Ó0ˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úrV  c               ó    € V ^8„  d   QhRRRR/# ©r†  rI  r´   rs  râ   r,   )rþ  s   "r'   rÿ  r§  ì(  s   € ÷ 	ñ 	¨ð 	°ñ 	r)   c                óà   € \        V 4      p V P                  V\        P                  4      pV^ 8w  d   V P	                  V4       \        Y4       T#   T^ 8w  d   T P	                  T4       i i ; i)zAdd a 'Polygon' annotation.)r3  r[  r£   rG  rî  r4  ©r&   rI  r5  rß   s   &&  r'   Úadd_polygon_annotÚPage.add_polygon_annotì(  sk   € ä'¨Ó-ˆð	0Ø×'Ñ'¨´×0GÑ0GÓHˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úr?  c               ó    € V ^8„  d   QhRRRR/# r\  r,   )rþ  s   "r'   rÿ  r§  ÷(  s   € ÷ 	ñ 	¨ð 	°%ñ 	r)   c                óà   € \        V 4      p V P                  V\        P                  4      pV^ 8w  d   V P	                  V4       \        Y4       T#   T^ 8w  d   T P	                  T4       i i ; i)zAdd a 'PolyLine' annotation.)r3  r[  r£   rF  rî  r4  r^  s   &&  r'   Úadd_polyline_annotÚPage.add_polyline_annot÷(  sk   € ä'¨Ó-ˆð	0Ø×'Ñ'¨´×0IÑ0IÓJˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úr?  c               ó    € V ^8„  d   QhRRRR/# r9  r,   )rþ  s   "r'   rÿ  r§  )  s   € ÷ 	ñ 	 9ð 	°ñ 	r)   c                óà   € \        V 4      p V P                  V\        P                  4      pV^ 8w  d   V P	                  V4       \        Y4       T#   T^ 8w  d   T P	                  T4       i i ; i)z&Add a 'Square' (rectangle) annotation.)r3  rg  r£   rC  rî  r4  r;  s   &&  r'   Úadd_rect_annotÚPage.add_rect_annot)  r>  r?  c               ó8   € V ^8„  d   QhRRRRRRRRRR	R
R	RRRR/# )r†  r   rù  rþ   rÿ   rœ  r  r6   r   rû  rý   rý  rè   rs  râ   r,   )rþ  s   "r'   rÿ  r§  )  s\   € ÷ <ñ <ð ð<ð ð	<ð
 ð<ð ð<ð ð<ð ð<ð ð<ð ñ<r)   c	                ó  € Rp	V'       dæ   \        \        P                  4      P                  V4      '       g¸   \	        V4       \	        V4       V'       g   RpV'       g   ^pV'       g   Rp\        VR4      '       d   WwV3p\        V4      ^8”  d
   VR,          pRp
V
P                  ! VRVRV/ p	Vf   RpV'       d0   \        VR4      '       d   WfV3p\        V4      ^8”  d
   VR,          pMRp\        V 4      p V P                  WV	WVR7      pV^ 8w  d   V P                  V4       \        Y4       T'       d²   TP                  4       P                  4       RR pTw  rïpppTP                  T4       TP                  T4       TP                  T4       TP                  T4       TP                  T4       TP                  R	4       R
P                  T4      pTP!                  T^ 4       T#   T^ 8w  d   T P                  T4       i i ; i)zAdd a 'Redact' annotation.Nr„  r•  ºNr   NrÝ  r  rŸ  )r   rb  r  r   r  r  r…  ©r™  r™  r™  r¨  )rÁ  rJ  Ú
whitespacerÇ
  r�  r=   r9   rþ  r3  rd  rî  r4  r(  r  ro   r  r7  )r&   rM  r   rþ   rÿ   r  r   rý   rý  rb  r±   r5  rß   r>  r@  rA  rB  rC  rD  r'  s   &&&&&&&&&           r'   Úadd_redact_annotÚPage.add_redact_annot)  s×  € ð ˆßœœF×-Ñ-Ó.×9Ñ9¸$×?Ò?Ü�tÔÜ�zÔ"ßØ!�ßØ�ßØ&�
Ü�z ;×/Ò/Ø(°jÐA�
Ü�:‹ Ô"Ø'¨�^�
Ø5ˆCØ—Z’Z ÐD¨xÐD¸8ÑDˆFØŠ|Ø �ßÜ˜4 ×-Ò-Ø ¨Ð-�DÜ�t“9˜q”=Ø �8�DøàˆDä'¨Ó-ˆð	0Ø×*Ñ*¨4À6Ø"ð +ó /ˆEð ˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&÷ Ø—\‘\“^×.Ñ.Ó0°°"Ð5ˆFØ &ÑˆA�2�r˜2Ø�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜$ÔØ—‘˜FÓ#ˆBØ�L‰L˜˜QÔØˆøð# ˜qÔ Ø×!Ñ! ,Õ/ð !ús   Ã>G0 Ç0Hc               ó   € V ^8„  d   QhRR/# rI  r,   )rþ  s   "r'   rÿ  r§  K)  s   € ÷ Bñ Bð ñBr)   c                ó|   € Vf   \        WW4R7      pM\        V4      pV P                  V\        P                  4      # )zAdd a 'Squiggly' annotation.rK  )rL  rM  r‡  r£   ÚPDF_ANNOT_SQUIGGLY©r&   rž
  rÇ  r‡  r  rc  s   &&&&& r'   Úadd_squiggly_annotÚPage.add_squiggly_annotK)  s8   € ð Š=Ü'¨ÀÔP‰Aä˜uÓ%ˆAØ×$Ñ$ Q¬×(@Ñ(@ÓAÐAr)   c               ó    € V ^8„  d   QhRRRR/# r9  r,   )rþ  s   "r'   rÿ  r§  Y)  s   € ÷ 	ñ 	 Ið 	¸5ñ 	r)   c                óÂ   € \        V 4      p V P                  W4      pV^ 8w  d   V P                  V4       \        Y4       T#   T^ 8w  d   T P                  T4       i i ; i)z$Add a ('rubber') 'Stamp' annotation.)r3  r€  rî  r4  )r&   rü   r|  r5  rß   s   &&&  r'   Úadd_stamp_annotÚPage.add_stamp_annotY)  sc   € ä'¨Ó-ˆð	0Ø×)Ñ)¨$Ó6ˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !úrV  c               ó   € V ^8„  d   QhRR/# rI  r,   )rþ  s   "r'   rÿ  r§  d)  s   € ÷ Dñ DÐSXñ Dr)   c                ó|   € Vf   \        WW4R7      pM\        V4      pV P                  V\        P                  4      # )zAdd a 'StrikeOut' annotation.rK  )rL  rM  r‡  r£   ÚPDF_ANNOT_STRIKE_OUTrs  s   &&&&& r'   Úadd_strikeout_annotÚPage.add_strikeout_annotd)  s6   € àŠ=Ü'¨ÀÔP‰Aä˜uÓ%ˆAØ×$Ñ$ Q¬×(BÑ(BÓCÐCr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rn  rº   r   ræ  r5  rs  râ   r,   )rþ  s   "r'   rÿ  r§  l)  s)   € ÷ 	ñ 	 Jð 	°cð 	Àð 	ÐQVñ 	r)   c                óÆ   € \        V 4      p V P                  WVR7      pV^ 8w  d   V P                  V4       \        Y4       T#   T^ 8w  d   T P                  T4       i i ; i)z&Add a 'Text' (sticky note) annotation.)r5  )r3  rƒ  rî  r4  )r&   rn  r   r5  r5  rß   s   &&&&  r'   Úadd_text_annotÚPage.add_text_annotl)  sh   € ä'¨Ó-ˆð	0Ø×(Ñ(¨¸4Ð(Ó@ˆEà˜qÔ Ø×!Ñ! ,Ô/Ü˜$Ô&Øˆøð ˜qÔ Ø×!Ñ! ,Õ/ð !ús   �A ÁA c               ó   € V ^8„  d   QhRR/# rI  r,   )rþ  s   "r'   rÿ  r§  w)  s   € ÷ Cñ CÐSXñ Cr)   c                ó|   € Vf   \        WW4R7      pM\        V4      pV P                  V\        P                  4      # )zAdd a 'Underline' annotation.rK  )rL  rM  r‡  r£   ÚPDF_ANNOT_UNDERLINErs  s   &&&&& r'   Úadd_underline_annotÚPage.add_underline_annotw)  s6   € àŠ=Ü'¨ÀÔP‰Aä˜uÓ%ˆAØ×$Ñ$ Q¬×(AÑ(AÓBÐBr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r\  rZ  rs  râ   r,   )rþ  s   "r'   rÿ  r§  )  s   € ÷ ñ  ð ¨Eñ r)   c                ó®  € \        V 4       V P                  pVP                  '       g   \        R4      hVP	                  4        V P                  VP                  VP                  4      pV'       g   R# RVn        \        P                  ! V 4      Vn        W0P                  \        V4      &   VP                  Vn        W1n        VP                  4        V# )zAdd a 'Widget' (form field).r�  NT)ro  rì   rƒ  rÃ   r¾  r’  r�  r‹  rõ   r  r   rX  rY  rÓ  rN  )r&   r\  r1  rß   s   &&  r'   Ú
add_widgetÚPage.add_widget)  sœ   € ä�DÔØ�k‰kˆØ�z�zˆzÜ˜[Ó)Ð)Ø×ÑÔØ—‘ × 1Ñ 1°6×3DÑ3DÓEˆßÙØˆŒÜ—}’} TÓ*ˆŒØ&+×Ñœ˜E›Ñ#ØŸ™ˆŒØŒØ�‰ŒØˆr)   c                ó|   €  \        V 4       V P                  RR7      pVP                  '       g   . # \        V4      # )z
page get list of annot names
Frß  )ro  r,  rÌ   ÚJM_get_annot_id_list©r&   rÖ   s   & r'   Úannot_namesÚPage.annot_names‘)  s8   € ð 	>Ü�DÔØ�~‰~ uˆ~Ó-ˆØ��ˆØˆIÜ# DÓ)Ð)r)   c                ó   € \        V 4      # )z8
List of xref numbers of annotations, fields and links.
)ÚJM_get_annot_xref_list2r-   s   &r'   r‡  ÚPage.annot_xrefsœ)  s   € ô ' tÓ,Ð,r)   c              #  óø  "  € \         P                  \         P                  \         P                  3p\	        VR4      '       g7   V P                  4        Uu. uF  q3^,          V9  g   K  V^ ,          NK  	  ppMEV P                  4        Uu. uF+  q3^,          V9   g   K  V^,          V9  g   K"  V^ ,          NK-  	  ppV F)  pV P                  V4      pV'       g   K  RVn        Vx € K+  	  R# u upi u upi 5i)zâGenerator over the annotations of a page.

Args:
    types: (list) annotation types to subselect from. If none,
           all annotations are returned. E.g. types=[PDF_ANNOT_LINE]
           will only yield line annotations.
rŒ  TN)r£   rÖ  ÚPDF_ANNOT_POPUPrT  r=   r‡  Ú
load_annotÚ_yielded)r&   ÚtypesÚ
skip_typesr   r‡  r  rß   s   &&     r'   r¯  ÚPage.annots¢)  sÖ   é € ô ×*Ñ*¬E×,AÑ,AÄ5×CYÑCYÐZˆ
Ü�u˜m×,Ò,Ø)-×)9Ñ)9Ô);ÓVÑ); AÀ½tÈ:Ñ?Uœ4˜1˜QŸ4˜4Ñ);ˆKÐVˆKà)-×)9Ñ)9Ô);ÓhÑ); AÀ½tÀu¹}œ4ÐQRÐSTÕQUÐ]gÑQgœ4˜1˜QŸ4˜4Ñ);ˆKÐhÛˆDØ—O‘O DÓ)ˆEç‰uØ#�”Ø”ó  ùò Wùâhùs6   ‚AC:ÁC0Á*C0Á7C:ÂC5Â C5Â0C5Â=C:ÃC:c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r†  rÖ   ú'Page'rŽ
  r6   rš  r   rs  rè   r,   )rþ  s   "r'   rÿ  r§  ¶)  sA   € ÷ mñ mØðmàðmð ðmð ð	mð
 ñmr)   c           
     ó¢  € R p\        V 4       V P                  pVP                  '       g   VP                  '       d   \	        R4      hVP
                  '       g   \	        R4      h. pV P                  \        P                  3R7       F"  pVP                  VP                  4       4       K$  	  V. 8X  d   R# V P                  W1V4      pV'       g   \	        R4      hV P                  4       p	V FË  p
V
R,          pV
R,          pV'       d$   V	P                  V4       V	P                  WÌR	7       R
V
P                  4       9   g   KW  V
R
,          pV
P!                  R^ 4      pV
R,          pV
R,          pV
R,          pV! W½VV4      pRpV^ 8  g   K¢  V^8¼  g   K«  V	P#                  VVVVVVR7      pVR,          pK4  	  V	P%                  4        R# )aÌ  Apply the redaction annotations of the page.

Args:
    page: the PDF page.
    images:
          0 - ignore images
          1 - remove all overlapping images
          2 - blank out overlapping image parts
          3 - remove image unless invisible
    graphics:
          0 - ignore graphics
          1 - remove graphics if contained in rectangle
          2 - remove all overlapping graphics
    text:
          0 - remove text
          1 - ignore text
c                óò  € V'       d   V P                   \        8:  d   V #  \        WV4      pTR,          pT P                   p\        P                  ! YF,          4      T,          pYpP                  8¼  d   T # T pT P                  P                  T P                  P                  ,           T,
          R,          p	Y˜n        T#   \        \        P
                  3 d    \        '       d   \        4        T u # i ; i)a   Calculate minimal sub-rectangle for the overlay text.

Notes:
    Because 'insert_textbox' supports no vertical text centering,
    we calculate an approximate number of lines here and return a
    sub-rect with smaller height, which should still be sufficient.
Args:
    annot_rect: the annotation rectangle
    new_text: the text to insert.
    font: the fontname. Must be one of the CJK or Base-14 set, else
        the rectangle is returned unchanged.
    fsize: the fontsize
Returns:
    A rectangle to use instead of the annot rectangle.
ç333333ó?ç      à?)rˆ  r8  Úget_text_lengthrÃ   r£   ÚFzErrorBaser  r{   rá  Úceilr3  r*  rj  Úblr·  )
Ú
annot_rectÚnew_textrÜ  r7  Ú
text_widthÚline_heightrç  r"  r$  rj  s
   &&&&      r'   Úcenter_rectÚ*Page.apply_redactions.<locals>.center_rectÎ)  sÊ   € ÷  ˜z×/Ñ/´7Ô:Ø!Ð!ð"Ü,¨X¸UÓC�
ð
   #�+ˆKØ×$Ñ$ˆEÜ—	’	˜*Õ,Ó-°Õ;ˆAØ×%Ñ%Ô%Ø!Ð!ØˆAØ—‘—‘ :§=¡=§?¡?Õ2°QÕ6¸#Õ=ˆAØŒDØˆHøô ¤× 1Ñ 1Ð2ô "ß'Ó'Ü"Ô$Ø!Ò!ð"ús   ¡C  Ã &C6Ã'C6Ã5C6rÞ  r�  )r˜  FzError applying redactions.rü   r   )r   rp  r   r  rþ   rÿ   rý   )rþ   rÿ   rp  r  r   Tr¨  )ro  rì   r«  rÂ   rÃ   rƒ  r¯  r£   r  ro   r  rœ  Ú	new_shapeÚ	draw_rectÚfinishrˆ  r:   Úinsert_textboxÚcommit)rÖ   rŽ
  rš  r   r©  r1  Úredact_annotsrß   r¦   ÚshapeÚredactr¥  r   r¦  r  r6  r7  rp  Útrects   &&&&               r'   r•
  ÚPage.apply_redactions¶)  s«  € ò0 	ôD 	�DÔØ�k‰kˆØ××Ð˜sŸ}Ÿ}˜}ÜÐ;Ó<Ð<Ø�z�zˆzÜ˜[Ó)Ð)àˆØ—[‘[Ü×)Ñ)Ð+ð !ö 
ˆEð × Ñ  ×!9Ñ!9Ó!;Ö<ñ	
ð ˜BÔÙà×#Ñ# D°(Ó;ˆßÜÐ9Ó:Ð:ð —‘Ó ˆÛ#ˆFØ �ˆJØ˜&•>ˆDßØ—‘ 
Ô+Ø—‘ $�Ô3Ø˜Ÿ™›Ö&Ø! &�>�ØŸ
™
 7¨AÓ.�Ø˜zÕ*�Ø˜zÕ*�Ø˜|Õ,�á# J¸%ÀÓG�à�Ø˜1–f ¨!¦à×-Ñ-ØØ Ø!&Ø!&Ø#Ø#ð .ó �Bð ˜S•L’Eñ5 $ð6 	�‰ŒÙr)   c                óø   € VR9  d   \        R4      h\        V P                  4      p\        P                  ! 4       pWn        \        P                  ! V4      p\        P                  ! W P                  V4       R# )zJConvert colorspaces of objects on the page.

Valid values are 1, 3 and 4.
z!components must be one of 1, 3, 4Nr˜  )	rÃ   rÎ   rì   r£   Úpdf_recolor_optionsÚnum_compÚPdfRecolorOptionsÚpdf_recolor_pager]  )r&   r*
  ÚpdfdocÚroptÚroptss   &&   r'   r
  ÚPage.recolor%*  s]   € ð
 ˜YÔ&ÜÐ@ÓAÐAÜ! $§+¡+Ó.ˆÜ×(Ò(Ó*ˆØ"ŒÜ×'Ò'¨Ó-ˆÜ×Ò˜v§{¡{°EÖ:r)   c                ó,  € \        V4      pVP                  '       g#   W P                  ,          P                  '       d   \	        R4      hW P
                  ,          p\        V 4      p\        V4      p\        P                  ! W44       \        V4       R# )z-Clip away page content outside the rectangle.z"rect must not be infinite or emptyN)r+  r¹  rü   rº  rÃ   rt  rÚ   r  r£   Úpdf_clip_pagerž  )r&   rü   r  râ  Úpclips   &&   r'   Úclip_to_rectÚPage.clip_to_rect2*  sm   € ä�D‹zˆØ××Ð §y¡yÕ 0×:×:Ð:ÜÐAÓBÐBØ×*Ñ*Õ*ˆÜ˜tÓ$ˆÜ Ó%ˆÜ×Ò˜GÔ+Ü˜Ö!r)   c                ód   € V P                   e   R# \        '       g   R# \        V 4      pWn         R# )z!Try to access layout information.N)Úlayout_informationr”   )r&   Úlayout_infos   & r'   Ú
get_layoutÚPage.get_layout=*  s+   € ð ×"Ñ"Ò.áç‹{áä! $Ó'ˆØ"-Ör)   c                óô   € V P                  R4      pVf   V P                  # V P                  p\        V^ ,          VP                  V^,          ,
          V^,          VP                  V^,          ,
          4      # )z
The ArtBoxr  ©r	  r¶	  rJ  r+  r¶  ©r&   rü   r  s   &  r'   ÚartboxÚPage.artboxK*  s[   € ð �‰˜xÓ(ˆØŠ<Ø—<‘<ÐØ�]‰]ˆÜ�D˜•G˜RŸU™U T¨!¥W�_¨d°1­g°r·u±u¸tÀA½wµÓGÐGr)   c                óô   € V P                  R4      pVf   V P                  # V P                  p\        V^ ,          VP                  V^,          ,
          V^,          VP                  V^,          ,
          4      # )zThe BleedBoxr  rÉ  rÊ  s   &  r'   ÚbleedboxÚPage.bleedboxT*  s[   € ð �‰˜zÓ*ˆØŠ<Ø—<‘<ÐØ�]‰]ˆÜ�D˜•G˜RŸU™U T¨!¥W�_¨d°1­g°r·u±u¸tÀA½wµÓGÐGr)   c                óÖ  € \        V 4       \        V P                  4      p\        P                  ! V4      p\        V4      pVP                  '       d–   V P                  P                  '       dz   V P                  pVP                  VP                  rTV P                  R9  d   YTrT\        ^ ^ WE4      p\        P                  RR7      P                  4       R,          p\!        V4       V# )zGet page rectangle.F)r“
  ©rx   é´   r¨  )ro  r×   rÄ   r£   r·  r+  r¹  rì   rƒ  r¶	  rˆ  r3  ru  r  Úmupdf_warningsr  rv   )r&   rÖ   r  Úcbr   r"  rž   s   &      r'   ÚboundÚ
Page.bound]*  s­   € ä�DÔÜ˜4Ÿ9™9Ó%ˆÜ×!Ò! $Ó'ˆÜ�3‹iˆà�?�?ˆ?˜tŸ{™{×1×1Ð1Ø—‘ˆBØ—8‘8˜RŸY™YˆqØ�}‰} HÔ,Ø�1Ü�q˜!˜QÓ"ˆCÜ×&Ñ&¨UÐ&Ó3×>Ñ>Ó@ÀÕDˆCÜ�CŒLàˆ
r)   c                	ó  € V'       g#   V P                   '       g   V P                  4        \        V P                  R R7      pVP                  '       g   R# \        ^VR7      p\        P                  ! VP                  4       W#4       R# )Frß  N)r—  rš  )	Ú
is_wrappedÚwrap_contentsrÚ   rÄ   rÌ   rœ  r£   Úpdf_filter_page_contentsr1  )r&   rš  rÖ   rž  s   &&  r'   rŸ  ÚPage.clean_contentso*  sW   € ß §§ Ø×ÑÔ Ü˜TŸY™Y°Ô7ˆØ��ˆÙÜ(°¸XÔFˆÜ×&Ò&¨¯©«
°DÖBr)   c                óî   € \        V 4       V P                  RR7      pVP                  '       g"   \        P                  ! V P
                  4      pM\        VP                  4       4      p\        V4      pV# )zThe CropBox.Frß  )	ro  r,  rÌ   r£   r·  rÄ   rµ	  r  r+  )r&   rÖ   r  s   &  r'   r¶	  ÚPage.cropboxx*  sW   € ô 	�DÔØ�~‰~ uˆ~Ó-ˆØ��ˆÜ×%Ò% d§i¡iÓ0‰Cä˜TŸX™X›ZÓ(ˆCÜ�3‹iˆàˆ
r)   c                	ó.   € V P                   P                  # r+   )r¶	  r*  r-   s   &r'   Úcropbox_positionÚPage.cropbox_position…*  s   € à�|‰|�‰Ðr)   c                ó   € \        V 4       \        V4       V P                  4       p \        VP                  4      pV'       g   M"\        P
                  ! W#P                  4       KA  \        P                  ! VP                  4      p\        P
                  ! W!P                  4       \        V4      pV'       dD   RVn        \        P                  ! V 4      Vn        WUP                  P                  \        V4      &   VP                  4        V# )z!Delete annot and return next one.T)ro  r,  r©  rÄ   r£   rª  rU  râ   rõ   r  r   rì   rX  rY  rö   )r&   rß   rÖ   r®  Ú	nextannotr  s   &&    r'   Údelete_annotÚPage.delete_annot‰*  sµ   € ä�DÔÜ�EÔà�~‰~ÓˆØä)¨%¯*©*Ó5ˆIßØÜ×"Ò" 4¯©Ö8Ü×(Ò(¨¯©Ó4ˆ	Ü×Ò˜t§Z¡ZÔ0Ü�IÓˆçØˆCŒKÜ Ÿš tÓ,ˆCŒJØ.1�J‰J×"Ñ"¤2 c£7Ñ+Ø�‰ŒØˆ
r)   c               ó    € V ^8„  d   QhRRRR/# ©r†  rÖ   rœ  r  r6   r,   )rþ  s   "r'   rÿ  r§   *  s   € ÷ -ñ -˜6ð -¨ñ -r)   c                ól   € \        \        R^4      pVP                  4        V P                  WR7       R# )z¥Delete the image referred to by xef.

Actually replaces by a small transparent Pixmap using method Page.replace_image.

Args:
    xref: xref of the image to delete.
)rÛ  N©rx   rx   r™  r™  )rì  rã  Ú
clear_withÚreplace_image)rÖ   r  rõ  s   && r'   Údelete_imageÚPage.delete_image *  s-   € ô ”V˜\¨1Ó-ˆØ�‰ÔØ×Ñ˜4ÐÖ,r)   c                óf  a a€ \        S 4       \        S\        4      '       g   R# VV 3R lp\        S P                  RR7      pVP
                  '       g   V! 4       # S\        ,          pV^8  d   V! 4       # \        P                  ! VP                  4       \        R4      4      pVP
                  '       g   V! 4       # \        P                  ! V4      pV^ 8X  d   V! 4       # ^ p\        V4       F5  p\        P                  ! \        P                  ! WX4      4      pWG8X  g   K5   M	  WG8w  d   V! 4       # \        P                  ! VX4       \        P                   ! VP#                  4       V4       \        P$                  ! VP                  4       \        R4      V4       \'        V4       V! 4       # )zDelete a Link.Nc                 óÐ   <€ SR ,          ^ 8X  d   R#  SR,          p SP                   V ,          pVP                  4        R#   \         d    \        ^8”  d   \	        4         R# i ; i)r  NrY  )rX  rö   rk   r  r{   )ÚlinkidÚlinkobjÚlinkdictr&   s     €€r'   ÚfinishedÚ"Page.delete_link.<locals>.finished³*  sY   ø€ Ø˜Õ 1Ô$¡fðØ! $��Ø×*Ñ*¨6Õ2�Ø—‘Ö øÜô ä'¨!Ô+´Ô0@Úðús   “,A Á A%Á$A%Frß  r¦  )ro  r@   r7   rÚ   rÄ   rÌ   r  r£   r  r  r  r«  rS  r  r¬  r­  rõ  r1  rU  rž  )	r&   rñ  rò  rÖ   r  r¯  rÆ  Úoxrefrg  s	   ff       r'   r”
  ÚPage.delete_link­*  sD  ù€ ä�DÔÜ˜8¤T×*Ò*Ùö		ô ˜DŸI™I°Ô6ˆØ��ˆÙ“:ÐØœÕ%ˆØ�!Œ8Ù“:ÐÜ×#Ò# T§X¡X£Z´¸(Ó1CÓDˆØ× × Ð Ù“:ÐÜ×"Ò" FÓ+ˆØ�1Œ9Ù“:ÐØˆÜ˜–ˆAÜ×$Ò$¤e×&9Ò&9¸6Ó&EÓFˆEØŽ}Ùñ ð
 Œ=Ù“:ÐÜ×Ò ¨Ô*Ü×Ò §¡£¨TÔ2Ü×Ò˜DŸH™H›J¬°Ó(:¸FÔCÜ˜$Ôá‹zÐr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rœ  r\  rZ  rs  r,   )rþ  s   "r'   rÿ  r§  Ù*  s!   € ÷ ñ ˜Fð ¨Fð °vñ r)   c                ó"  € \        V 4       \        VRR4      pVf   \        R4      hVP                  pV P	                  V4       RVP
                  n        \        VP                  P                  4       4      pV F  pVP                  V K  	  V# )z0Delete widget from page and return the next one.rÓ  Nzbad type: widget)
ro  rî   rÃ   r]  rã  rÓ  rì   r´   ró  rˆ  )rÖ   r\  rß   Ú
nextwidgetÚkeylistr�  s   &&    r'   Údelete_widgetÚPage.delete_widgetÙ*  s   € ä�DÔÜ˜ ¨$Ó/ˆØŠ=ÜÐ/Ó0Ð0Ø—[‘[ˆ
Ø×Ñ˜%Ô Ø#ˆ�‰ÔÜ�v—‘×+Ñ+Ó-Ó.ˆÛˆCØ—‘ Ò$ñ àÐr)   c               ó   € V ^8„  d   QhRR/# ©r†  rs  r  r,   )rþ  s   "r'   rÿ  r§  è*  s   € ÷ 8ñ 8 6ñ 8r)   c                óJ  € \         '       d*   \        \        P                  ! V P                  4      4      # V P                  RR7      pVP                  '       g8   \        \        P                  ! \        P                  P                  4      4      # \        \        V4      4      # )zReflects page de-rotation.Frß  )r  r  r   ÚPage_derotate_matrixrÄ   r,  rÌ   r£   rq  ÚUNITre  )r&   râ  s   & r'   ru  ÚPage.derotation_matrixç*  sn   € ÷ ‹;Üœ%×4Ò4°d·i±iÓ@ÓAÐAØ—.‘.¨%�.Ó0ˆØ×!×!Ð!Üœ%Ÿ,š,¤u§|¡|×'8Ñ'8Ó9Ó:Ð:ÜÔ-¨gÓ6Ó7Ð7r)   c          $     ó`   € V ^8„  d   QhRRRRRRRRRRRR	R
R	RRRRRRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rJ  rº   rK  Úp3Úp4rp  rû  r   rŠ  rù  rˆ  rœ  r-  Ú	closePathrè   ÚlineCapr6   ÚlineJoinrÝ  Ústroke_opacityÚfill_opacityrÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  ñ*  s¼   € ÷ %ñ %Øð%àð%ð ð%ð ð	%ð
 ð%ð ð%ð ð%ð ð%ð ð%ð ð%ð ð%ð ð%ð ð%ð ð%ð "ð%ð   ð!%ð" ð#%ð$ ñ%%r)   c                óð   € V P                  4       pVP                  \        V4      \        V4      \        V4      \        V4      4      pVP                  VVVVVVV	V
VVVR7       VP	                  V4       V# )zODraw a general cubic Bezier curve from p1 to p4 using control points p2 and p3.©rp  r   rŠ  rˆ  r  r  r-  r  r  r	  rÙ  )r«  Údraw_bezierr)  r­  r¯  )rÖ   rJ  rK  r  r  rp  r   rŠ  rˆ  r-  r  r  r  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&&&&&  r'   r  ÚPage.draw_bezierñ*  sy   € ð( �n‰nÓˆØ�O‰OœE "›I¤u¨R£y´%¸³)¼UÀ2»YÓGˆØ�
‰
ØØØØØØ!ØØ#Ø-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óT   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  r¼  rº   Úradiusrœ  rp  rû  r   r-  rŠ  rù  rˆ  r  r6   r  rÝ  rè   r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  +  sž   € ÷  ñ  Øð àð ð ð ð ð	 ð
 ð ð ð ð ð ð ð ð ð ð ð ð ð ð "ð ð  ð ð ð ð ñ r)   c                ó´   € V P                  4       pVP                  \        V4      V4      pVP                  VVVVVV	VVVVR7
       VP	                  V
4       V# )ú*Draw a circle given its center and radius.©
rp  r   rŠ  rˆ  r  r  r-  r  r	  rÙ  )r«  Údraw_circler)  r­  r¯  )rÖ   r¼  r  rp  r   r-  rŠ  rˆ  r  r  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&&  r'   r  ÚPage.draw_circle+  sf   € ð" �n‰nÓˆØ�O‰OœE &›M¨6Ó2ˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7ÔØˆr)   c          "     ó\   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rJ  rº   rK  r  rp  rû  r   rŠ  rù  rˆ  rœ  r-  r  rè   r  r6   r  rÝ  r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  :+  s²   € ÷ $ñ $Øð$àð$ð ð$ð ð	$ð
 ð$ð ð$ð ð$ð ð$ð ð$ð ð$ð ð$ð ð$ð ð$ð "ð$ð  ð$ð  ð!$ð" ñ#$r)   c                óÜ   € V P                  4       pVP                  \        V4      \        V4      \        V4      4      pVP                  VVVVV
VVV	VVVR7       VP	                  V4       V# )zdDraw a special Bezier curve from p1 to p3, generating control points on lines p1 to p2 and p2 to p3.r  )r«  Ú
draw_curver)  r­  r¯  )rÖ   rJ  rK  r  rp  r   rŠ  rˆ  r-  r  r  r  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&&&&  r'   r  ÚPage.draw_curve:+  ss   € ð& �n‰nÓˆØ�N‰Nœ5 ›9¤e¨B£i´°r³Ó;ˆØ�
‰
ØØØØØØ!ØØ#Ø-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óL   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rJ  rº   rK  rp  rû  rŠ  rù  rˆ  rœ  r  r6   r  rÝ  rè   r-  r  r	  rs  r)  r,   )rþ  s   "r'   rÿ  r§  `+  sŠ   € ÷  ñ  Øð àð ð ð ð ð	 ð
 ð ð ð ð ð ð ð ð ð ð ð ð "ð ð  ð ð ñ r)   c                óÆ   € V P                  4       pVP                  \        V4      \        V4      4      pVP                  VVVRVVV	V
VVR7
       VP	                  V4       V# )z&Draw a line from point p1 to point p2.F©
rp  rŠ  rˆ  r  r  r  r-  r  r	  rÙ  )r«  Ú	draw_liner)  r­  r¯  )rÖ   rJ  rK  rp  rŠ  rˆ  r  r  rÝ  r-  r  r	  rÙ  r2  r²  s   &&&&&&&&&&&&&  r'   r  ÚPage.draw_line`+  sj   € ð  �n‰nÓˆØ�M‰Mœ% ›)¤U¨2£YÓ/ˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óP   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rü   z"typing.Union[rect_like, quad_like]rp  rû  r   rŠ  rù  r-  rˆ  rœ  r  r6   r  rÝ  rè   r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  ‚+  s”   € ÷  ñ  Øð à4ð ð ð ð ð	 ð
 ð ð ð ð ð ð ð ð ð ð ð ð "ð ð  ð ð ð ð ñ r)   c                ó    € V P                  4       pVP                  V4      pVP                  VVVVVVVV
VVR7
       VP                  V	4       V# )z4Draw an oval given its containing rectangle or quad.r  )r«  Ú	draw_ovalr­  r¯  )rÖ   rü   rp  r   rŠ  r-  rˆ  r  r  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&  r'   r   ÚPage.draw_oval‚+  s`   € ð  �n‰nÓˆØ�M‰M˜$ÓˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óT   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rI  r´   rp  rû  r   rŠ  rù  rˆ  rœ  r-  r  r6   r  rÝ  rè   r  r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  ¤+  sž   € ÷ "ñ "Øð"àð"ð ð"ð ð	"ð
 ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð "ð"ð  ð"ð ð"ð ñ"r)   c                ó¢   € V P                  4       pVP                  V4      pVP                  VVVVVVVV
VVVR7       VP                  V	4       V# )z&Draw multiple connected line segments.r  )r«  Údraw_polyliner­  r¯  )rÖ   rI  rp  r   rŠ  rˆ  r-  r  r  rÝ  r  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&&  r'   r$  ÚPage.draw_polyline¤+  se   € ð" �n‰nÓˆØ×Ñ˜fÓ%ˆØ�
‰
ØØØØØØ!ØØ#Ø-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óP   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rM  r»   rp  rû  r   rŠ  rù  rˆ  rœ  r  r6   r  r-  rÝ  rè   r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  È+  s”   € ÷  ñ  Øð àð ð ð ð ð	 ð
 ð ð ð ð ð ð ð ð ð ð ð ð "ð ð  ð ð ð ð ñ r)   c                ó²   € V P                  4       pVP                  \        V4      4      pVP                  VVVVVVVV
VVR7
       VP	                  V	4       V# )zDraw a quadrilateral.r  )r«  Ú	draw_quadÚQuadr­  r¯  )rÖ   rM  rp  r   rŠ  rˆ  r  r  r-  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&  r'   r(  ÚPage.draw_quadÈ+  sd   € ð  �n‰nÓˆØ�M‰Mœ$˜t›*Ó%ˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óP   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rü   r¼   rp  rû  r   rŠ  rù  rˆ  rœ  r  r6   r  r-  rÝ  rè   r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  ê+  s”   € ÷ #ñ #Øð#àð#ð ð#ð ð	#ð
 ð#ð ð#ð ð#ð ð#ð ð#ð ð#ð "ð#ð  ð#ð ð#ð ñ#r)   c                ó¶   € V P                  4       pVP                  \        V4      VR7      pVP                  VVVVVVVV
VVR7
       VP	                  V	4       V# )z7
Draw a rectangle. See Shape class method for details.
)r  r  )r«  r¬  r+  r­  r¯  )rÖ   rü   rp  r   rŠ  rˆ  r  r  r-  rÝ  r  r	  rÙ  r  r2  rû   s   &&&&&&&&&&&&&&  r'   r¬  ÚPage.draw_rectê+  sh   € ð& �n‰nÓˆØ�M‰Mœ$˜t›*¨VˆMÓ4ˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c          $     ó`   € V ^8„  d   QhRRRRRRRRRR	R
R	RRRRRR	RRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  r¼  rº   rn  Úbetarœ  rp  rû  r   rŠ  rù  Ú
fullSectorrè   r-  rˆ  r  r  r6   r  rÝ  r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  ,  s¼   € ÷ ,ñ ,Øð,àð,ð ð,ð ð	,ð
 ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð ð,ð "ð,ð   ð!,ð" ð#,ð$ ñ%,r)   c                óÌ   € V P                  4       pVP                  \        V4      \        V4      W7R7      pVP                  VVVV	VVVV
VVVR7       VP	                  V4       V# )zïDraw a circle sector given circle center, one arc end point and the angle of the arc.

Parameters:
    center -- center of circle
    point -- arc end point
    beta -- angle of arc (degrees)
    fullSector -- connect arc ends with center
©r0  r  )r«  Údraw_sectorr)  r­  r¯  )rÖ   r¼  rn  r/  rp  r   rŠ  r0  r-  rˆ  r  r  r  rÝ  r  r	  rÙ  r2  rû   s   &&&&&&&&&&&&&&&&&  r'   r3  ÚPage.draw_sector,  sq   € ð6 �n‰nÓˆØ�O‰OœE &›M¬5°«<¸ˆOÓUˆØ�
‰
ØØØØØØ!ØØ#Ø-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óT   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRR	RRRRRRRR/# ©r†  rÖ   rœ  rJ  rº   rK  Úbreadthrœ  rp  rû  rŠ  rù  rˆ  r  r6   r  rÝ  rè   r-  r  r	  rÙ  rs  r)  r,   )rþ  s   "r'   rÿ  r§  =,  óž   € ÷ !ñ !Øð!àð!ð ð!ð ð	!ð
 ð!ð ð!ð ð!ð ð!ð ð!ð ð!ð ð!ð "ð!ð  ð!ð ð!ð ñ!r)   c                óÊ   € V P                  4       pVP                  \        V4      \        V4      VR7      pVP                  VVVRVVV
VVVR7
       VP	                  V	4       V# )z/Draw a squiggly line from point p1 to point p2.©r7  Fr  )r«  Údraw_squiggler)  r­  r¯  ©rÖ   rJ  rK  r7  rp  rŠ  rˆ  r  r  rÝ  r-  r  r	  rÙ  r2  r²  s   &&&&&&&&&&&&&&  r'   r;  ÚPage.draw_squiggle=,  sq   € ð" �n‰nÓˆØ×Ñœe B›i¬¨r«¸GÐÓDˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c               óT   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRR	RRRRRRRR/# r6  r,   )rþ  s   "r'   rÿ  r§  `,  r8  r)   c                óÊ   € V P                  4       pVP                  \        V4      \        V4      VR7      pVP                  VVVRVVV
VVVR7
       VP	                  V	4       V# )z-Draw a zigzag line from point p1 to point p2.r:  Fr  )r«  Údraw_zigzagr)  r­  r¯  r<  s   &&&&&&&&&&&&&&  r'   r@  ÚPage.draw_zigzag`,  sn   € ð" �n‰nÓˆØ�O‰OœE "›I¤u¨R£y¸'ˆOÓBˆØ�
‰
ØØØØØØ!ØØ-Ø)Øð 	ô 	ð 	�
‰
�7Ôàˆr)   c                	ót  € V P                   pVP                   p\        V\        P                  4      '       g   Q h\        P                  ! 4       pW&n        \        V4      p\        P                  ! WV4      p\        P                  ! WHV\        P                  ! 4       4       \        P                  ! V4       R # r+   )rÄ   r@   r£   r  r  rÐ  rè  rJ  r»  rj  r¼  )	r&   r¾  rÐ  rî  rÖ   rT  r!  ró  r¿  s	   &&&&     r'   Úextend_textpageÚPage.extend_textpageƒ,  s   € Ø�y‰yˆØ�Z‰ZˆÜ˜2œu×0Ñ0×1Ò1Ð1Ð1Ü×&Ò&Ó(ˆØŒÜ Ó'ˆÜ�nŠn˜RÓ)ˆÜ×Ò˜4 c¬5¯>ª>Ó+;Ô<Ü×Ò˜sÖ#r)   c                	ó0   € \         P                  ! V 3/ VB # r+   )ÚtableÚfind_tables)r&   r  s   &,r'   rG  ÚPage.find_tablesŽ,  s   € Ü× Ò  Ñ0¨Ñ0Ð0r)   c                óD  € \        V 4       V P                  RR7      pVP                  '       g   R# \        P                  ! V4      pVP                  '       g   R# \        V4      pRVn        \        P                  ! V 4      Vn	        W0P                  \        V4      &   V# )zFirst annotation.Frß  NT)ro  r,  rÌ   r£   Úpdf_first_annotrâ   rõ   r  r   rì   rX  rY  )r&   rÖ   rß   r  s   &   r'   Úfirst_annotÚPage.first_annot‘,  s~   € ô 	�DÔØ�~‰~ uˆ~Ó-ˆØ��ˆÙÜ×%Ò% dÓ+ˆØ××ÐÙÜ�E‹lˆØˆŒÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!Øˆ
r)   c                ó"   € V P                  4       # )z
First link on page
)Ú
load_linksr-   s   &r'   Ú
first_linkÚPage.first_link¡,  s   € ð
 �‰Ó Ð r)   c                óŠ  € \        V 4       ^ pV P                  RR7      pVP                  '       g   R# \        P                  ! V4      pVP                  '       g   R# \        V4      pRVn        \        P                  ! V 4      Vn	        W0P                  \        V4      &   \        4       p\        P                  W44       TpV# )zFirst widget/field.Frß  NT)ro  r,  rÌ   r£   Úpdf_first_widgetrâ   rõ   r  r   rì   rX  rY  rZ  r  r[  )r&   rß   rÖ   r  r\  s   &    r'   Úfirst_widgetÚPage.first_widget¨,  s�   € ô 	�DÔØˆØ�~‰~ uˆ~Ó-ˆØ��ˆÙÜ×&Ò& tÓ,ˆØ××ÐÙÜ�E‹lˆØˆŒÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!Ü“ˆÜ×Ñ˜3Ô'ØˆØˆ
r)   c                	ó†  € \        V 4       V P                  pV^ 8w  d   V P                  ^ 4       V P                  p. pV'       d   RMRp\	        WE4      p\
        P                  ! W6\
        P                  ! 4       \
        P                  ! 4       4       \
        P                  ! V4       V^ 8w  d   V P                  V4       V# )rx   TF)
ro  ru  rî  rÄ   ÚJM_new_bbox_devicer£   r»  r|  rj  r¼  )r&   Úlayersr5  rÖ   r¦   Ú
inc_layersr¿  s   &&     r'   Úget_bboxlogÚPage.get_bboxlog¼,  s“   € Ü�DÔØ—}‘}ˆØ˜1ÔØ×Ñ˜aÔ Ø�y‰yˆØˆß#‘T¨ˆ
Ü  "Ó1ˆÜ×Ò˜4¤e§n¢nÓ&6¼¿ºÓ8HÔIÜ×Ò˜sÔ#à˜1ÔØ×Ñ˜lÔ+Øˆ	r)   c                ó$  € \        V 4       V P                  pV^ 8w  d   V P                  ^ 4       V P                  p\	        V\
        P                  4      '       d   \
        P                  ! V4      p\	        V\
        P                  4      '       g   Q RV P                  : 24       hV'       d   RMRp\
        P                  ! V4      p \        P                  ! YQY#4      pT^ 8w  d   T P                  T4       \        T4      '       g   Te   R# T# )z3Extract vector graphics ("line art") from the page.z
self.this=TFN)ro  ru  rî  rÄ   r@   r£   rÓ   rÔ   r·  r  r   Úget_cdrawingsr´   ÚcallableÚJM_new_lineart_device_Devicer|  r¶  Úptmr»  rj  r¼  )
r&   ÚextendedÚcallbackÚmethodr5  rÖ   ÚclipsÚprectr¦   r¿  s
   &&&&      r'   r\  ÚPage.get_cdrawingsÌ,  sÕ   € ä�DÔØ—}‘}ˆØ˜1ÔØ×Ñ˜aÔ Ø�y‰yˆÜ�dœEŸM™M×*Ò*ä—<’< Ó%ˆDÜ˜$¤§¡×-Ò-Ð>°*°$·)±)±¨Ó>Ð-ß ‘ eˆÜ×#Ò# DÓ)ˆØÜ×$Ò$ T°XÓFˆBð ˜1ÔØ×Ñ˜lÔ+Ü�H×Ò Ò!3ÙØˆ	r)   c                ó,  € \        V 4       . p\        V P                  4      pVP                  4       p\        P
                  ! V\        P                  4      p\        P                  ! V4      '       dh   \        P                  ! V4      p\        V4       F@  p\        P                  ! WF4      p\        P                  ! V4      pVP                  V4       KB  	  V# VP                  '       d(   \        P                  ! V4      pVP                  V4       V# )zGet xrefs of /Contents objects.)ro  rÚ   rÄ   r  r£   r  r¢  rI  r«  rS  r¬  r  ro   rÌ   )	r&   rI   rÖ   r  rK  rG   rg  Úicontr  s	   &        r'   r–
  ÚPage.get_contentsë,  sÑ   € ä�DÔØˆÜ˜DŸI™IÓ&ˆØ�h‰h‹jˆÜ×%Ò% c¬5×+GÑ+GÓHˆÜ×Ò˜h×'Ò'Ü×#Ò# HÓ-ˆAÜ˜1–X�Ü×+Ò+¨HÓ8�Ü×'Ò'¨Ó.�Ø—
‘
˜4Ö ñ ð ˆ
ð × × Ð Ü×#Ò# HÓ-ˆDØ�J‰J˜ÔØˆ
r)   c                óÀ   € \        V 4       V'       d"   \        P                  ! V P                  4      pM \        P                  ! V P                  4      p\        V4      # )zd
Make a DisplayList from the page for Pixmap generation.

Include (default) or exclude annotations.
)ro  r£   Úfz_new_display_list_from_pagerÄ   Ú&fz_new_display_list_from_page_contentsrX  )r&   r¯  r  s   && r'   Úget_displaylistÚPage.get_displaylistý,  sA   € ô 	�DÔßÜ×4Ò4°T·Y±YÓ?‰Bä×=Ò=¸d¿i¹iÓHˆBÜ˜2‹Ðr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r`  rè   rs  r´   r,   )rþ  s   "r'   rÿ  r§  
-  s   € ÷ |ñ | Tð |°Dñ |r)   c                óö  € RpV P                  VR7      p\        \        V4      4       EFF  pW4,          pVR,          P                  R4      '       g   \	        VR,          4      VR&   M\	        VR,          4      VR&   VR,          R8w  d¶   VR,          p. pV F   pV^ ,          p	VR,          p
V	R	8X  d,   R	\	        V
^ ,          4      P                  4       V
^,          3pMHV	R
8X  d   R
\        V
^ ,          4      3pM,\        V	.V
 Uu. uF  p\        V4      NK  	  up,           4      pVP                  V4       K¢  	  WuR&   VR,          R9   d   V F  pVP                  V4      W[&   K  	  WSX&   EKI  	  V# u upi )a  Retrieve vector graphics. The extended version includes clips.

Note:
For greater comfort, this method converts point-likes, rect-likes, quad-likes
of the C version to respective Point / Rect / Quad objects.
It also adds default items that are missing in original path types.
)r`  rÈ   r  rü   Úscissorrx  rD   r‰	  rw  Úqu)
r  r   rp  rˆ  r  r  rŠ  r  r	  Úeven_odd)r  rŸ  )r\  rS  r9   r5   r+  Ú	normalizer)  rµ   r)  ro   r:   Úobject)r&   r`  Úallkeysr  rg  ÚnpathrD   ÚnewitemsrE   ÚcmdÚrestrô  ÚDrawpathÚDrawpathlistÚget_linearts   &&             r'   Úget_drawingsÚPage.get_drawings
-  s]  € ðˆð × Ñ ¨(Ð Ó3ˆÜ”s˜3“x—ˆAØ•FˆEØ˜•=×+Ñ+¨F×3Ò3Ü $ U¨6¥]Ó 3��f’ä#'¨¨iÕ(8Ó#9��iÑ Ø�V�}˜gÔ%Ø˜g��Ø�Û!�DØ˜q�'�CØ �8�DØ˜tœØ $¤d¨4°­7£m×&=Ñ&=Ó&?ÀÀaÅÐI™Ø œØ $¤d¨4°­7£mÐ4™ä$ c UÁÓ-EÁ¸1¬e°A®hÁÑ-EÕ%EÓF˜Ø—O‘O DÖ)ñ "ð "*�g‘Ø�V�} 
Ô*Û �AØ$Ÿy™y¨›|�E“Hñ !ð �ŒFñ1 !ð2 ˆ
ùò .Fs   ÄE6c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rÖ   rœ  Úhashesrè   r÷  rs  r´   r,   )rþ  s   "r'   rÿ  r§  È-  s0   € ÷ 'ñ 'Øð'àð'ð ð'ð ñ	'r)   c                óv  € V P                   pV'       d   VP                  '       d   RpVP                  '       g   Rp\        V RR4      pV'       d   V'       g   V# V'       g8   V P                  \        R7      pVP                  VR7      p?V'       d   W@n        V'       d   VP                  '       g   V# V P                  4       p/ pV F&  pV^ ,          p	\        W94      p
W—V
P                  &   ?
K(  	  \        \        V4      4       F,  pWK,          pVP                  VR,          ^ 4      p	W˜R&   W„V&   K.  	  V# )	z¿Extract image information only from a pymupdf.TextPage.

Args:
    hashes: (bool) include MD5 hash for each image.
    xrefs: (bool) try to find the xref for each image. Sets hashes to true.
TFÚ_image_infoN)rÐ  ©r€  rì  r  )rì   rƒ  rî   r$  ÚTEXT_PRESERVE_IMAGESÚextractIMGINFOr‚  Ú
get_imagesrì  rì  rS  r9   r:   )rÖ   r€  r÷  r1  ÚimginforT  Úimglistrà  rE   r  rõ  rg  s   &&&         r'   Úget_image_infoÚPage.get_image_infoÈ-  s  € ð �k‰kˆß�S—Z—Z�ZØˆFØ�z�zˆzØˆEÜ˜$ ¨tÓ4ˆßŸ5ØˆNßØ×"Ñ"Ô)=Ð"Ó>ˆBØ×'Ñ'¨vÐ'Ó6ˆGØßØ#*Ô ß˜CŸJŸJ˜JØˆNØ—/‘/Ó#ˆØˆÛˆDØ˜•7ˆDÜ˜Ó#ˆCØ"&�C—J‘JÑÚñ	 ô
 ”s˜7“|Ö$ˆAØ•:ˆDØ—;‘;˜t H�~¨qÓ1ˆDØ�‰LØ�A‹Jñ	 %ð
 ˆr)   c               ó    € V ^8„  d   QhRRRR/# ©r†  rÖ   rœ  rs  r´   r,   )rþ  s   "r'   rÿ  r§  ñ-  s   € ÷ "ñ "˜fð "Àñ "r)   c                óÒ  € \        V4      \        \        39   d   V^ ,          pM�\        V4      \        J d   TpMkV P	                  4        Uu. uF  qD^,          V8X  g   K  VNK  	  ppV. 8X  d   \        R4      h\        V4      ^8w  d   \        R4      hV^ ,          ^ ,          p\        V P                  V4      pVP                  p?V P                  RR7      pV'       g3   V U	u. uF$  q™R,          V8X  g   K  \        V	R,          4      NK&  	  p
p	V
# V U	u. uF7  p	V	R,          V8X  g   K  \        V	R,          4      \        V	R,          4      3NK9  	  p
p	V
# u upi u up	i u up	i )ay  Return list of image positions on a page.

Args:
    name: (str, list, int) image identification. May be reference name, an
          item of the page's image list or an xref.
    transform: (bool) whether to also return the transformation matrix.
Returns:
    A list of pymupdf.Rect objects or tuples of (pymupdf.Rect, pymupdf.Matrix)
    for all image locations on the page.
úbad image namezmultiple image names foundTrƒ  rì  r6  r  )rÈ   r´   rµ   r6   r†  rÃ   r9   rì  rì   rì  r‰  r+  r  )rÖ   r   r  r  rg  rˆ  rõ  rì  ÚinfosÚimÚbboxess   &&&        r'   Úget_image_rectsÚPage.get_image_rectsñ-  sN  € ô �‹:œ$¤˜Ô&Ø˜•7‰DÜ�$‹Zœ3ÓØ‰Dà"&§/¡/Ô"3ÓDÑ"3˜Q¸µt¸t±|—q�qÑ"3ˆGÐDØ˜"Œ}Ü Ð!1Ó2Ð2Ü�W“ Ô"Ü Ð!=Ó>Ð>Ø˜1•:˜a•=ˆDÜ�T—[‘[ $Ó'ˆØ—‘ˆØØ×#Ñ#¨4Ð#Ó0ˆßÙ16ÓQ±¨2¸X½,È&Ñ:PÔ&”d˜2˜f�:Ö&±ˆFÐQð ˆñ  óá�BØ�h•< 6Ñ)ô <”�b˜•jÓ!¤6¨"¨[­/Ó#:Ó;Ùð ð ð
 ˆùò% Eùò Rùòs$   ÁEÁ!EÃ'EÃ;EÄE$Ä.(E$c                ó¬   € V P                   P                  4       pV'       g   R# VP                  4        \        P                  ! V P
                  V4      # )z‹Return the label for this PDF page.

Args:
    page: page object.
Returns:
    The label (str) of the page. Errors return an empty string.
r`   )rì   rþ  rÂ  r  r   r]  )rÖ   r`  s   & r'   Ú	get_labelÚPage.get_label.  s<   € ð —‘×-Ñ-Ó/ˆßÙØ�‰ŒÜ×"Ò" 4§;¡;°Ó7Ð7r)   c               ó    € V ^8„  d   QhRRRR/# rŒ  r,   )rþ  s   "r'   rÿ  r§  %.  s   € ÷ ñ ˜ð  4ñ r)   c                óN  € \        V 4       V P                  p. pV'       d@   \        P                  ! WP                  4      pVP                  V4       VP                  pKG  V. 8w  d¹   V P                  P                  '       d�   \        V 4       Uu. uF#  pV^,          \        P                  8X  g   K!  VNK%  	  pp\        V4      \        V4      8X  dL   \        \        V4      4       F3  pWV,          ^ ,          W&,          R&   WV,          ^,          W&,          R&   K5  	  V# u upi )zfCreate a list of all links contained in a PDF page.

Notes:
    see PyMuPDF ducmentation for details.
r  rY  )ro  rO  r  rÄ  rì   ro   r]  rƒ  r’  r£   rÖ  r9   rS  )rÖ   Úlnr5  Únlri  Ú	linkxrefsrg  s   &      r'   r)  ÚPage.get_links%.  sð   € ô 	�DÔØ�_‰_ˆØˆßÜ×"Ò" 2§{¡{Ó3ˆBØ�L‰L˜ÔØ—‘ŠBØ�BŒ;˜4Ÿ;™;×-×-Ð-ô ,¨DÔ1óá1ð  !ð ˜•tœu×3Ñ3Ñ3÷ ˜á1ð ð ô
 �9‹~¤ U£Ô+Üœs 9›~Ö.�AØ'0¥|°A¥�E•H˜VÑ$Ø%.¥\°!¥_�E•H˜T“Nñ /ð ˆùòs   ÂD"Â4D"rî  rï  rð  r  rñ  r¯  c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RR
RR/# )r†  rÖ   rœ  rî  r¹   rð  r+  r  r¼   rñ  rè   r¯  rs  r§  r,   )rþ  s   "r'   rÿ  r§  ?.  sP   € ÷ )ñ )Øð)ð $ð)ð
 'ð)ð  ð)ð ð)ð ð)ð ñ)r)   c               ó¬  € Vf   \         pV'       d   V^H,          p\        Ww4      p\        V4      \        J d?   VP	                  4       R8X  d   \
        pM"VP	                  4       R8X  d   \        pM\         pVP                  R9  d   \        R4      hV P                  VR7      pVP                  WWTR7      p	RpV'       d   V	P                  W"4       V	# )a�  Create pixmap of page.

Keyword args:
    matrix: Matrix for transformation (default: Identity).
    dpi: desired dots per inch. If given, matrix is ignored.
    colorspace: (str/Colorspace) cmyk, rgb, gray - case ignored, default csRGB.
    clip: (irect-like) restrict rendering to this area.
    alpha: (bool) whether to include alpha channel
    annots: (bool) whether to also render annotations
Nr6  r8  zunsupported colorspace)r¯  )rî  rð  rñ  r  r˜  )rä  r  rÈ   ræ  rµ
  rã  rå  rG   rÃ   rl  rö  rí  )
rÖ   rî  rï  rð  r  rñ  r¯  r  r  rõ  s
   &$$$$$$   r'   rö  ÚPage.get_pixmap?.  s¹   € ð( ÒÜˆJßØ˜•8ˆDÜ˜DÓ'ˆFä�
ÓœsÓ"Ø×ÑÓ! VÔ+Ü#‘
Ø×!Ñ!Ó# vÔ-Ü#‘
ä"�
Ø�<‰<˜yÔ(ÜÐ5Ó6Ð6à×!Ñ!¨Ð!Ó0ˆØ�m‰m 6ÈˆmÓYˆØˆßØ�K‰K˜Ô!Øˆ
r)   c           	     óø  € V P                   pV^ 8X  d   \        # V P                  pV^Z8X  dO   \        ^^ ^ ^VP                  VP
                  ,
          VP                  ,
          VP                  ,
          ^ 4      pM‡VR8X  dO   \        ^^ ^ ^^ VP
                  VP                  ,
          VP                  ,
          VP                  ,
          4      pM2\        ^^ ^ ^RVP                  ,          RVP                  ,          4      pW0P                  ,          p\        \        V4      4      R,           pVP                  R4      p\        P                  WR4      pVR9   d/   Vw  rxršW‚n        Wrn        W¢n        W’n        V P                  V4       V P                  ^ 4       V( pV P!                  4        F'  pVP"                  V,          pVP%                  V4       K)  	  V P'                  4        F:  pVR,          V,          pV P)                  V4       WÍR&    V P+                  V4       K<  	  V P/                  4        F,  pVP"                  V,          pWÎn        VP1                  4        K.  	  V#   \,         d     KŽ  i ; i)z;Set page rotation to 0 while maintaining visual appearance.é  z cm rS  Fr  r  ©éZ   r¡  )ru  r©  rJ  r  r¶  r´  rµ  r·  ru  r¶   rµ   r  r  Ú_insert_contentsÚset_mediaboxrî  r¯  rü   rê  r)  r”
  Úinsert_linkrk   rš  rN  )r&   ry  r  Úmat0r€  rx  r@  rµ  r·  r´  r¶  rß   r$  rÉ  r\  s   &              r'   Úremove_rotationÚPage.remove_rotationj.  s  € à�m‰mˆØ�!Œ8ÜÐð �]‰]ˆà�"Œ9ä˜!˜Q  1 b§e¡e¨b¯e©e¥m°b·e±eÕ&;¸b¿e¹eÕ&CÀQÓG‰DØ�CŒZä˜!˜Q  1 a¨¯©°·±­¸¿¹Õ)>ÀÇÁÕ)FÓG‰Dä˜!˜Q  1 b¨2¯5©5¥j°"°r·u±uµ*Ó=ˆDð ×+Ñ+Õ+ˆÜœ˜c›
Ó# fÕ,ˆØ�j‰j˜Ó ˆÜ×"Ñ" 4¨eÓ4ˆð �)ÔØ‰NˆB�BØŒEØŒEØŒEØŒEØ×Ñ˜bÔ!à×Ñ˜!ÔØˆdˆà—[‘[–]ˆEØ—
‘
˜SÕ ˆAà�N‰N˜1Öñ #ð —N‘NÖ$ˆDØ�V•˜sÕ"ˆAØ×Ñ˜TÔ"Ø�‰LðØ× Ñ  Ö&ñ %ð —l‘l–nˆFØ—‘˜cÕ!ˆAØŒKØ�M‰MŽOñ %ð ˆ
øô ô Úðús   ÈI*É*I9É8I9c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  Úx_tolerancerœ  Úy_toleranceÚfinal_filterrè   rs  r´   r,   )rþ  s   "r'   rÿ  r§   .  s:   € ÷ aRñ aRØ5:ðaRØMRðaRàðaRð 
ñaRr)   c                ój  aa€ \        V 4       V P                  pVe   \        V4      pVoVoVf   V P                  4       pVV3R lpV Uu. uF–  p VR,          P                  VP                  8¼  g   K(  VR,          P
                  VP
                  8:  g   KL  VR,          P                  VP                  8¼  g   Kp  VR,          P                  VP                  8:  g   K”  VNK˜  	  p	p\        V	 Uu. uF  qˆR,          NK  	  upR R7      p
. pV
'       d·   V
^ ,          5pRpV'       dv   Rp\        \        V
4      ^,
          ^ R	4       FP  pV! W®,          V4      '       g   K  WÊV,          P                  ,          pWÊV,          P                  ,          pW® RpKR  	  K}  VP                  V4       V
^  \        \        V
4      R R7      p
K¾  \        \        V4      R R7      pV'       g   V# V Uu. uF*  qÌP                  S8”  g   K  VP                   S8”  g   K(  VNK,  	  up# u upi u upi u upi )
aJ  Join rectangles of neighboring vector graphic items.

Args:
    clip: optional rect-like to restrict the page area to consider.
    drawings: (optional) output of a previous "get_drawings()".
    x_tolerance: horizontal neighborhood threshold.
    y_tolerance: vertical neighborhood threshold.

Notes:
    Vector graphics (also called line-art or drawings) usually consist
    of independent items like rectangles, lines or curves to jointly
    form table grid lines or bar, line, pie charts and similar.
    This method identifies rectangles wrapping these disparate items.

Returns:
    A list of Rect items, each wrapping line-art items that are close
    enough to be considered forming a common vector graphic.
    Only "significant" rectangles will be returned, i.e. having both,
    width and height larger than the tolerance values.
c                óÞ  <€ V P                   V P                  8”  d   V P                  V P                   3MV P                   V P                  3w  r#V P                  V P                  8”  d   V P                  V P                  3MV P                  V P                  3w  rEVP                   VP                  8”  d   VP                  VP                   3MVP                   VP                  3w  rgVP                  VP                  8”  d   VP                  VP                  3MVP                  VP                  3w  r‰ W6S
,
          8  g(   W'S
,           8”  g   WXS,
          8  g   WIS,           8”  d   R# R# )zÇDetect whether r1, r2 are "neighbors".

Items r1, r2 are called neighbors if the minimum distance between
their points is less-equal delta.

Both parameters must be (potentially invalid) rectangles.
FT©r´  rµ  r¶  r·  )Úr1Úr2Úrr1_x0Úrr1_x1Úrr1_y0Úrr1_y1Úrr2_x0Úrr2_x1Úrr2_y0Úrr2_y1Údelta_xÚdelta_ys   &&        €€r'   Úare_neighborsÚ,Page.cluster_drawings.<locals>.are_neighborsÁ.  sú   ø€ ð 02¯u©u°r·u±u¬}˜bŸe™e R§U¡U™^À2Ç5Á5È"Ï%É%À.‰NˆFØ/1¯u©u°r·u±u¬}˜bŸe™e R§U¡U™^À2Ç5Á5È"Ï%É%À.‰NˆFØ/1¯u©u°r·u±u¬}˜bŸe™e R§U¡U™^À2Ç5Á5È"Ï%É%À.‰NˆFØ/1¯u©u°r·u±u¬}˜bŸe™e R§U¡U™^À2Ç5Á5È"Ï%É%À.‰NˆFàØ WÕ,Ô,Ø WÕ,Ô,Ø WÕ,Ô,Ø WÕ,Ô,ñ ñ r)   rü   c                ó2   € V P                   V P                  3# r+   ©r¶  rµ  ©r$  s   &r'   rê
  Ú'Page.cluster_drawings.<locals>.<lambda>ç.  s   € À1Ç4Á4ÈÏÉÁ,r)   r  TFc                ó2   € V P                   V P                  3# r+   rÀ  rÁ  s   &r'   rê
  rÂ  ü.  s   € ¸¿¹¸a¿d¹d±|r)   c                ó2   € V P                   V P                  3# r+   rÀ  rÁ  s   &r'   rê
  rÂ  þ.  s   € ¸!¿$¹$ÀÇÁ¹r)   r¨  )ro  rü   r+  r}  rµ  r´  r·  r¶  r�  rS  r9   r*  r+  ro   rÁ  rˆ  r3  )r&   r  Údrawingsr«  r¬  r­  Úparear½  r²  ÚpathsÚprectsÚ	new_rectsr$  Úrepeatrg  r»  r¼  s   &&&&&&         @@r'   Úcluster_drawingsÚPage.cluster_drawings .  sì  ù€ ô0 	�DÔØ—	‘	ˆØÒÜ˜“JˆEØˆØˆØÒØ×(Ñ(Ó*ˆHö	ñ: ó
á�ØØ�&•	—‘ §¡Ñ(ô ð �&•	—‘ §¡Ñ(ô	 ð
 �&•	—‘ §¡Ñ(ô ð �&•	—‘ §¡Ñ(÷ ˆAÙð 	ð 
ô ©EÓ2©E q˜6Ÿ˜©EÑ2Ñ8NÔOˆàˆ	÷
 Ø˜•�
ˆAØˆFßØ�Üœs 6›{¨Q�°°2Ö6�AÙ$ V¥Y°×2Ô2Ø A�YŸ\™\Õ)˜Ø A�YŸ\™\Õ)˜Ø"˜IØ!%šó 7ð ×Ñ˜QÔØ�q�	ÜœC ›KÑ-CÔDŠFäœ3˜y›>Ñ/EÔFˆ	ßØÐÙ$ÓQ™9�a¯©°'Ñ(9”¸a¿h¹hÈÑ>P—�™9ÑQÐQùòK
ùò 3ùò4 Rs6   Á%H&Á6H&ÂH&Â>H&Ã"H&Ã3H+Ç3H0È
H0ÈH0c                óf   € \        V 4       V P                  P                  V P                  VR7      # )z)List of fonts defined in the page object.rv  )ro  rì   r”  r]  ©r&   r‘  s   &&r'   Ú	get_fontsÚPage.get_fonts/  s(   € ä�DÔØ�{‰{×)Ñ)¨$¯+©+¸DÐ)ÓAÐAr)   c           	     ó4  € \        V 4       V P                  pVP                  '       g   VP                  '       d   \	        R4      h\        ^^RR4      p\        4       pV'       d   WE3pMTp\        V4      \        \        39   d)   \        VR,          4      \        J g   \	        R4      hTpMuVP                  V P                  R4       Uu. uF  q�V^,          8X  g   K  VNK  	  p	p\        V	4      ^8X  d   V	^ ,          pM!V	. 8X  d   \	        R4      h\	        RV R24      hVR,          p
V
^ 8w  g	   V'       d    V P                  WrR7      ^ ,          # V P#                  4       p\%        V4      p\'        V4      '       g   V# V Fê  pV^ ,          VR	,          8w  d   K  \)        V^,          4      pVP*                  pV^ 8X  d   Tp TpV# \        \-        VP.                  VP0                  4      4      p\3        VP.                  VP4                  ,
          4      p\3        VP6                  VP4                  ,
          4      p\        ^V,          ^ ^ ^V,          ^ ^ 4      pVV,          ( pVV3p TpV# 	  TpV# u upi   \         d    \!        4        Tu # i ; i)
zÒGet rectangle occupied by image 'name'.

'name' is either an item of the image list, or the referencing
name string - elem[7] of the resp. item.
Option 'transform' also returns the image transformation matrix.
rÞ  z!need item of full page image listTrŽ  zfound multiple images named 'r‡  )r  r¨  éýÿÿÿ)ro  rì   rÂ   r«  rÃ   r+  r  rÈ   r´   rµ   r6   r™  r]  r9   r’  rk   r{   r,  ÚJM_image_reporterrè   r)  rü   Úutil_hor_matrixÚllÚlrr,  rû  Úur)r&   r   r  r1  Úinf_rectÚnull_matr¦   rE   rg  rˆ  r  r&  r  rH   rc  r6  Úhmr"  r   Úm0r‹  s   &&&                  r'   Úget_image_bboxÚPage.get_image_bbox/  sU  € ô 	�DÔØ�k‰kˆØ�=�=ˆ=˜C×,×,Ð,ÜÐ;Ó<Ð<ä˜˜1˜b "Ó%ˆÜ“8ˆßØÐ%‰BàˆBä�‹:œ$¤˜Ô&Ü˜˜R�“>¤SÓ(Ü Ð!DÓEÐEØ‰Dà"%×"5Ñ"5°d·k±kÀ4Ô"HÓYÑ"H˜QÐTUÐVWÕTXÉL—q�qÑ"HˆGÐYÜ�7‹|˜qÔ Ø˜q•z‘Ø˜B”Ü Ð!1Ó2Ð2ä Ð#@ÀÀÀbÐ!IÓJÐJØ�B�xˆØ�1Œ9Ÿ	ð Ø×+Ñ+¨DÐ+ÓFÀqÕIÐIð —>‘>Ó#ˆÜ Ó)ˆä�C�yŠyØˆIãˆAØ��t�t˜B•xÔÙÜ�Q�q•T“
ˆAØ—6‘6ˆDØ˜AŒ~Ø�Øð ˆàˆ
ô œ¨¯©¨a¯d©dÓ3Ó4ˆBÜ�A—D‘D˜1Ÿ4™4•KÓ ˆAÜ�A—D‘D˜1Ÿ4™4•KÓ ˆAÜ˜˜A�˜q ! Q¨¥U¨A¨qÓ1ˆBØ�r•'�
ˆAØ˜�ˆBØØˆàˆ
ñ% ð  ˆàˆ
ùòM Zøô ô  ÜÔ Ø’ð ús   ÃI8Ã!I8Ä=I= É=JÊJc                óf   € \        V 4       V P                  P                  V P                  VR7      # )z*List of images defined in the page object.rv  )ro  rì   r™  r]  rÎ  s   &&r'   r†  ÚPage.get_imagesH/  s(   € ä�DÔØ�{‰{×*Ñ*¨4¯;©;¸TÐ*ÓBÐBr)   c               ó   € V ^8„  d   QhRR/# rê  r,   )rþ  s   "r'   rÿ  r§  M/  s   € ÷ ñ ˜dñ r)   c                óÈ   € . pV P                  4        FK  w  r#V P                  P                  VRR7      pRV9   d   RpMRV9   d   RpMK8  VP                  W#V34       KM  	  V# )z¨Get OCGs and OCMDs used in the page's contents.

Returns:
    List of items (name, xref, type), where type is one of "ocg" / "ocmd",
    and name is the property name.
Tr[  r©  r†  r~  Úocmd)r«  rì   r^  ro   )r&   r¦   Úpnamer  r   Úoctypes   &     r'   Úget_oc_itemsÚPage.get_oc_itemsM/  sl   € ð ˆØ×8Ñ8Ö:‰KˆEØ—;‘;×*Ñ*¨4¸DÐ*ÓAˆDØ˜dÔ"Ø‘Ø Ô%Ø‘áØ�I‰I�u FÐ+Ö,ñ ;ð ˆ	r)   c                ó´  € \        V 4       \        P                  ! V P                  4      p\	        V4      pTpV^8X  d   \        P
                  M\        P                  p\        P                  ! WT4      p\        P                  ! R4      p\        P                  ! V4      p\        P                  ! VVP                  VP                  ,
          VP                  VP                  ,
          V^4      p	\        P                  ! V P                  W”\        P                   ! 4       4       \        P"                  ! V	4       VP%                  4        \'        V4      p
V
# )zMake SVG image from page.é   )ro  r£   r·  rÄ   rè  ÚFZ_SVG_TEXT_AS_PATHÚFZ_SVG_TEXT_AS_TEXTrà  r0
  r1
  Úfz_new_svg_devicer´  rµ  r¶  r·  r»  rj  r¼  rE	  rÙ  )r&   rî  Útext_as_pathrJ  ró  ÚtboundsÚtext_optionr%  rF	  r¿  r   s   &&&        r'   Úget_svg_imageÚPage.get_svg_image`/  sö   € ä�DÔÜ×&Ò& t§y¡yÓ1ˆÜ Ó'ˆØˆØ3?À1Ô3D”e×/Ò/Ì%×JcÑJcˆÜ×)Ò)¨'Ó7ˆä×!Ò! $Ó'ˆÜ�nŠn˜SÓ!ˆÜ×%Ò%ØØ—
‘
˜7Ÿ:™:Õ%Ø—
‘
˜7Ÿ:™:Õ%ØØóˆô 	×Ò˜$Ÿ)™) S¬u¯~ª~Ó/?Ô@Ü×Ò˜cÔ"Ø×ÑÔÜ% cÓ*ˆØˆr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rÒ   rü   r¼   rs  ræ  r,   )rþ  s   "r'   rÿ  r§  x/  s&   € ÷ ñ Øðàðð ñ	r)   c                	ó˜   € TpVf   V P                  4       pM\        VR4      V 8w  d   \        R4      hVP                  V4      pVf   ?V# )Nrì   únot a textpage of this page)r$  rî   rÃ   ÚextractTextbox)rÖ   rü   r¯  rT  r¦   s   &&&  r'   r  ÚPage.get_textboxx/  sU   € ð
 ˆØŠ:Ø×"Ñ"Ó$‰BÜ�R˜Ó" dÔ*ÜÐ:Ó;Ð;Ø×Ñ˜tÓ$ˆØÒØØˆ	r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   r
  r  s   &*,r'   r  ÚPage.get_text‡/  r  r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   )r  Úget_text_blocksr  s   &*,r'   rù  ÚPage.get_text_blocksŠ/  s   € Ü×$Ò$ TÐ;¨DÒ;°FÑ;Ð;r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   )r  Úget_text_selectionr  s   &*,r'   rü  ÚPage.get_text_selection�/  s   € Ü×'Ò'¨Ð>¨tÒ>°vÑ>Ð>r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   )r  Úget_text_wordsr  s   &*,r'   rÿ  ÚPage.get_text_words�/  s   € Ü×#Ò# DÐ:¨4Ò:°6Ñ:Ð:r)   c                	ó6   € \         P                  ! V .VO5/ VB # r+   )r  Úget_textpage_ocrr  s   &*,r'   r  ÚPage.get_textpage_ocr“/  s   € Ü×%Ò% dÐ<¨TÒ<°VÑ<Ð<r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r  r¼   rÐ  r6   rs  r°  r,   )rþ  s   "r'   rÿ  r§  –/  s"   € ÷ ñ  ð ¸#ð ÐS]ñ r)   c                	ód  € \        V 4       Vf   \        ^^4      pV P                  pV^ 8w  d   V P                  ^ 4        V P	                  WVR7      pV^ 8w  d   V P                  V4       \        T4      p\        P                  ! T 4      Tn        T#   T^ 8w  d   T P                  T4       i i ; i)N)rÐ  rî  )	ro  r  ru  rî  rÀ  r  r  r   rì   )r&   r  rÐ  rî  r5  r¯  s   &&&&  r'   r$  ÚPage.get_textpage–/  s§   € Ü�DÔØŠ>Ü˜A˜q“\ˆFØ—}‘}ˆØ˜1ÔØ×Ñ˜aÔ ð	0Ø×)Ñ)¨$ÀFÐ)ÓKˆHà˜qÔ Ø×!Ñ! ,Ô/Ü˜HÓ%ˆÜ!Ÿ-š-¨Ó-ˆŒØˆøð	 ˜qÔ Ø×!Ñ! ,Õ/ð !ús   ÁB ÂB/c                	ó  € \        V 4       V P                  pV^ 8w  d   V P                  ^ 4       V P                  p. p \
        P                  ! T4      p\        P                  ! T4      p\        P                  ! ^^ ^ R^ TP                  4      Tn        \        P                  ! Y$\        P                  ! 4       \        P                  ! 4       4       \        P                  ! T4       T^ 8w  d   T P                  T4       T# )rx   r¨  )ro  ru  rî  rÄ   r  r   ÚJM_new_texttrace_devicer£   r·  r|  r¶  r_  r»  rj  r¼  )r&   r5  rÖ   r¦   r¿  rd  s   &     r'   r‹  ÚPage.get_texttrace¦/  sÃ   € ä�DÔØ—}‘}ˆØ˜1ÔØ×Ñ˜aÔ Ø�y‰yˆØˆØÜ×/Ò/°Ó3ˆCô ×#Ò# DÓ)ˆÜ—.’.  A q¨"¨a°·±Ó:ˆŒÜ×Ò˜$¤U§^¢^Ó%5´u·~²~Ó7GÔHÜ×Ò˜cÔ"à˜1ÔØ×Ñ˜lÔ+Øˆ	r)   c                ób   € \        V 4       V P                  P                  V P                  4      # )z,List of xobjects defined in the page object.)ro  rì   r·  r]  r-   s   &r'   Úget_xobjectsÚPage.get_xobjects»/  s#   € ä�DÔØ�{‰{×,Ñ,¨T¯[©[Ó9Ð9r)   rñ  c                	ó¬  € V P                   pVf   \        R4      h^ pVP                  R4      '       d
   VR,          p\        P	                  V4      p	V	\        4       8w  d   \        RV	 24      h\        W4      p
V
e0   V
^ ,          p\        W{4      '       d   V# VP                  V4       V# \        P                  VP                  4       R 4      p^ pR	p. R
Op. ROp VP                  V4      p^ pV^ 8  d    VP                  V4      p^pVP                  4       \         P#                  4       9   d   ^ R IpVP'                  V4      p?Ve_   \)        V4      \*        J d   TpMJ\-        VR4      '       d   \+        V4      pM,\-        VR4      '       d   VP.                  pM\        R4      hR pV P1                  WVW4VW]Wn4
      pV'       g   V# V^ ,          pV^,          p\        W{4      '       d   V# VP                  VVR7       V#   \         d    \        ^8”  d   \        4         EL9i ; i  \         d    \        ^8”  d   \        4         ELEi ; i)NrÁ  rˆ	  r‰	  zbad fontname chars r§  r   zbad fontfile)r7  r¨  )r  r  r  r  )r  úchina-ssújapan-súkorea-s)rì   rÃ   r5   rÜ  rÝ  rÁ  Ú	CheckFontrK  rU  r"  r:   rç  r  rk   r  r{   r  rˆ  r   r!  rÈ   ræ  r=   r   rû  )r&   rþ   r%  r&  rù  r=  r  r1  rë  Ú	inv_charsrÜ  r  rä  rL  Ú
CJK_numberÚ
CJK_list_nÚ
CJK_list_sr   Úfontfile_strr  r7  s   &&&&&&&              r'   Úinsert_fontÚPage.insert_fontÀ/  s=  € à�k‰kˆØŠ;ÜÐ>Ó?Ð?Øˆà×Ñ˜s×#Ò#Ø •|ˆHÜ&×3Ñ3°HÓ=ˆ	Øœ›ÔÜÐ2°9°+Ð>Ó?Ð?ä˜Ó(ˆØÒØ˜•7ˆDÜ˜S×'Ò'Ø�à×Ñ Ô%ØˆKô !×$Ñ$ X§^¡^Ó%5°tÓ<ˆàˆØˆ
Ú=ˆ
ÚCˆ
ð	Ø#×)Ñ)¨(Ó3ˆJØˆEð ˜Œ>ðØ'×-Ñ-¨hÓ7�
Ø�ð �>‰>ÓÔ3×8Ñ8Ó:Ô:Û Ø&×-Ñ-¨hÓ7ˆJØð ÒÜ�H‹~¤Ó$Ø'‘Ü˜ :×.Ò.Ü" 8›}‘Ü˜ 6×*Ò*Ø'Ÿ}™}‘ä  Ó0Ð0àˆLØ×Ñ˜x°¸zÐWZØ$¨XóCˆ÷ ØˆJà�1�vˆØ�q•6ˆä˜×#Ò#ØˆKð 	×Ñ˜D¨8ÐÔ4Øˆøô[ ô 	ä# aÔ'¬NÔ,<Úð	ûô ô ä'¨!Ô+´Ô0@Úðús$   ÃH Ã:H/ È H,È+H,È/ IÉIÚcssÚ	scale_lowÚarchiverÙ  rÝ  Ú_scale_word_widthÚ_verbosec               ó   € V ^8„  d   QhRR/# )r†  rs  rµ   r,   )rþ  s   "r'   rÿ  r§  0  s   € ÷ Q#ñ Q#ð 
ñQ#r)   c       	   	     óÚ  a€ V^Z,          ^ 8X  g   \        R4      hV^ 8  d   VR,          pK  VR8¼  d   VR,          pK  ^ Tu;8:  d   ^8:  g   M \        R4      hVf   Rp\        V4      pVR9   d$   \        ^ ^ VP                  VP                  4      pM"\        ^ ^ VP                  VP                  4      pRV,           p\	        V\
        4      '       d   \        W-VR7      pM$\	        V\        4      '       d   TpM\        R4      hV^ 8X  d   RM^V,          pTP                  T^TV
'       d   \        P                  M^ VR	7      oSP                  '       g   ^SP                  ,          pRV3# \        SP                  4      Sn        SP                  P                  SP                  P                  3R8X  g   Q hSP                  P                  SP                  P                  3R8X  g   Q h^SP                  ,          pVV8¼  g   Q R
V: RV: 24       h\!        SP                  P"                  SP                  P"                  ,
          V,          ^ 4      pV3R lpVP%                  V4      p^ Tu;8:  d   ^8  dJ   M MFV^ ,          pVP'                  WˆR7      pRV R2p\(        P+                  VVP-                  4       ^ 4       V P/                  VV^ WgV	R7       SP                  P0                  SP                  P2                  ,           ^,          V,          pVP0                  VP2                  ,           ^,          p\5        V^ ^ VVP6                  ) VP8                  ) 4      \5        V) 4      ,          \5        ^^ ^ ^VP6                  VP8                  4      ,          pV^ ,          P;                  4        F)  pVR;;,          V,          uu&   V P=                  V4       K+  	  VV3# )a³  Insert text with optional HTML tags and stylings into a rectangle.

Args:
    rect: (rect-like) rectangle into which the text should be placed.
    text: (str) text with optional HTML tags and stylings.
    css: (str) CSS styling commands.
    scale_low: (float) force-fit content by scaling it down. Must be in
        range [0, 1]. If 1, no scaling will take place. If 0, arbitrary
        down-scaling is acceptable. A value of 0.1 would mean that content
        may be scaled down by at most 90%.
    archive: Archive object pointing to locations of used fonts or images
    rotate: (int) rotate the text in the box by a multiple of 90 degrees.
    oc: (int) the xref of an OCG / OCMD (Optional Content).
    opacity: (float) set opacity of inserted content.
    overlay: (bool) put text on top of page content.
    _scale_word_width: internal, for testing only.
    _verbose: internal, for testing only.
Returns:
    A tuple of floats (spare_height, scale).
    spare_height:
        The height of the remaining space in <rect> below the
        text, or -1 if we failed to fit.
    scale:
        The scaling required; `0 < scale <= 1`.
        Will be less than `scale_low` if we failed to fit.
zbad rotation anglerí  z'scale_low' must be in [0, 1]Nr`   zbody {margin:1px;})ÚhtmlÚuser_cssr  z"'text' must be a string or a Story)Ú	scale_minÚ	scale_maxrÐ  r5  z
scale_low=z scale=c                 ó6   <€ SP                   SP                   R 3# r+   r  )r  Úfits   *€r'   Úrect_functionÚ*Page.insert_htmlbox.<locals>.rect_functionz0  s   ø€ Ø—8‘8˜SŸX™X tÐ+Ð+r)   ©r=  r>  rˆ	  ú gs
)r`  rÙ  rÝ  r  r¢  r¨  rã	  )rÃ   r+  r3  rˆ  r@   ræ  ÚStoryÚ	fit_scaler£   ÚFZ_PLACE_STORY_FLAG_NO_OVERFLOWÚ
big_enoughÚ	parameterÚfilledrü   rµ  r·  r'  r¶  Úwrite_with_linksr  r  r¤  r  Úshow_pdf_pager*  r+  r  ri  rj  r)  r¦  )rÖ   rü   r   r  r  r  r`  rÙ  r]  rÝ  r  r  Ú	temp_rectÚmycssÚstoryÚrect_scale_maxr  Úspare_heightr&  r1  r¾  rj  rŸ  Úmp1Úmp2r€  rÉ  r%  s   &&&$$$$$$$$$               @r'   Úinsert_htmlboxÚPage.insert_htmlbox0  sK  ø€ ðT ˜�{˜aÔÜÐ1Ó2Ð2Ø�qŒjØ�c�MŠFØ˜ŒmØ�c�MŠFà�IÖ" Ö"ÜÐ<Ó=Ð=àŠ;ØˆCä�D‹zˆØ�YÔÜ˜Q  4§;¡;°·
±
Ó;‰Iä˜Q  4§:¡:¨t¯{©{Ó;ˆIð % sÕ*ˆô �dœC× Ò Ü˜t¸WÔE‰EÜ˜œe×$Ò$Ø‰EäÐAÓBÐBð "+¨a¤™°Q¸µ]ˆà�o‰oØØØ(ß?P”e×;Ò;ÐVWØ ð ó ˆð �~�~ˆ~Ø˜Ÿ™Õ%ˆEØ˜�;Ðô ˜#Ÿ*™*Ó%ˆŒ
Ø—‘—‘˜SŸX™XŸ[™[Ð)¨VÔ3Ð3Ð3Ø—
‘
—‘˜sŸz™zŸ}™}Ð-°Ô7Ð7Ð7à�C—M‘MÕ!ˆØ˜	Ô!Ð; j i¡\°°5±(Ð#;Ó;Ð!ä˜CŸH™HŸK™K¨#¯*©*¯-©-Õ7¸5Õ@À!ÓDˆõ	,ð ×$Ñ$ ]Ó3ˆð �Ö˜!×Ø˜•FˆEà×%Ñ%¨Ð%Ó=ˆDØ�D�6˜�ˆAÜ×"Ñ" 5¨!¯(©(«*°aÔ8ð 	×Ñ˜4  a°ÀwÐÔOð �x‰x�{‰{˜SŸX™XŸ[™[Õ(¨AÕ-°Õ5ˆð �w‰w˜Ÿ™Õ  AÕ%ˆô �5˜!˜Q ¨¯© v°·±¨vÓ6Ü�f�W‹oõä�Q˜˜1˜a §¡¨¯©Ó.õ/ð 	ð ˜•F×$Ñ$Ö&ˆDØ��L˜CÕ‹LØ×Ñ˜TÖ"ñ 'ð ˜UÐ"Ð"r)   rj   r3  rÞ  rï  rÛ  r   rˆ  r  c               ó$  € \        V 4       V P                  pVP                  '       g   \        R4      hV^ 8X  d<   \	        V4      \	        V4      ,           \	        V	4      ,           ^8w  d   \        R4      hV'       d]   \        V4      \        J d   MH\        VR4      '       d   \        V4      pM*\        VR4      '       d   VP                  pM\        R4      hV'       d5   \        P                  P                  V4      '       g   \        RV R24      hV'       d5   \        V4      \        \        \        P                   39  d   \        R4      hV	'       d   \        V	4      \"        Jd   \        R	4      hV'       d   V'       g   V'       g   \        R
4      hV'       d5   \        V4      \        \        \        P                   39  d   \        R4      hV
^ 8  d   V
R,          p
K  V
R8¼  d   V
R,          p
K  V
R9  d   \        R4      h\%        V4      pVP&                  '       g   VP(                  '       d   \        R4      hWðP*                  ( ,          pVP-                  V P.                  4       Uu. uF  pV^,          NK  	  ppTVP1                  V P.                  4       Uu. uF  pV^,          NK  	  up,          pTVP3                  V P.                  4       Uu. uF  pV^,          NK  	  up,          pRp^ pVR,           pVV9   d   V^,          pV\        V4      ,           pK$  V'       d   V P5                  4        VP6                  pV P9                  VV	VVVVVVV
VVVVVVR7      w  ppVe   VVn        V# u upi u upi u upi )aË  Insert an image for display in a rectangle.

Args:
    rect: (rect_like) position of image on the page.
    alpha: (int, optional) set to 0 if image has no transparency.
    filename: (str, Path, file object) image filename.
    height: (int)
    keep_proportion: (bool) keep width / height ratio (default).
    mask: (bytes, optional) image consisting of alpha values to use.
    oc: (int) xref of OCG or OCMD to declare as Optional Content.
    overlay: (bool) put in foreground (default) or background.
    pixmap: (pymupdf.Pixmap) use this as image.
    rotate: (int) rotate by 0, 90, 180 or 270 degrees.
    stream: (bytes) use this as image.
    width: (int)
    xref: (int) use this as image.

'page' and 'rect' are positional, all other parameters are keywords.

If 'xref' is given, that image is used. Other input options are ignored.
Else, exactly one of pixmap, stream or filename must be given.

'alpha=0' for non-transparent images improves performance significantly.
Affects stream and filename only.

Optimum transparent insertions are possible by using filename / stream in
conjunction with a 'mask' image of alpha values.

Returns:
    xref (int) of inserted image. Re-use as argument for multiple insertions.
r�  z4xref=0 needs exactly one of filename, pixmap, streamr§  r   zbad filenamezNo such file: 'rí   z#stream must be bytes-like / BytesIOzpixmap must be a Pixmapz mask requires stream or filenamez!mask must be bytes-like / BytesIOrí  úbad rotate valueú!rect must be finite and not emptyÚfzImgr   )rj   rÛ  r   rÜ  r  rÝ  rÙ  r  r`  rÞ  rˆ  r3  rñ  rß  rà  )rx   r£  rÒ  r¡  )ro  rì   rƒ  rÃ   rè   rÈ   ræ  r=   r   rh   r   r¾  r¿  r  r©  r;   rª  rì  r+  rº  r¹  rt  r™  r]  r·  r”  rÙ  r°  rö  )rÖ   rü   rñ  rj   r3  rÞ  rï  rÙ  rÝ  rÛ  r`  r   rˆ  r  r1  r$  r  rg  ÚilstrG   rß  rà  s   &&$$$$$$$$$$$$        r'   Úinsert_imageÚPage.insert_image¦0  sï  € ô` 	�DÔØ�k‰kˆØ�z�zˆzÜ˜[Ó)Ð)à�1Œ9œ$˜x›.¬4°«<Õ7¼$¸v»,ÕFÈ!ÔKÜÐSÓTÐTçÜ�H‹~¤Ó$ØÜ˜ :×.Ò.Ü˜x›=‘Ü˜ 6×*Ò*Ø#Ÿ=™=‘ä  Ó0Ð0çœBŸG™GŸN™N¨8×4Ò4Ü# o°h°Z¸qÐ$AÓBÐBßœ˜V›¬U´I¼r¿z¹zÐ,JÔJÜÐBÓCÐCßœ˜V›¬FÓ2ÜÐ6Ó7Ð7ßŸ§8ÜÐ?Ó@Ð@ß”D˜“J¤u¬i¼¿¹Ð&DÔDÜÐ@ÓAÐAØ�qŒjØ�c�MŠFØ˜ŒmØ�c�MŠFØÐ*Ô*ÜÐ/Ó0Ð0ä�‹JˆØ�:�:ˆ:˜ŸŸ˜ÜÐ@ÓAÐAØ×.Ñ.Ð.Õ.ˆð "×1Ñ1°$·+±+Ô>Ó?Ñ>˜��!—�Ñ>ˆÐ?Ø˜s×4Ñ4°T·[±[ÔAÓBÑA˜!��1—�ÑAÑBÕBˆØ˜s×1Ñ1°$·+±+Ô>Ó?Ñ>˜!��1—�Ñ>Ñ?Õ?ˆØˆØˆØ�s•7ˆØ˜$ÔØ��FˆAØœ3˜q›6•zŠHçØ×ÑÔ Ø×$Ñ$ˆØ×*Ñ*ØØØØØØØØØØ+ØØØØØð +ó 
‰ˆˆgð" ÒØ!(ˆCÔàˆùòC @ùÚBùÚ?s   É8NÊ*NË#Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r†  rÖ   rœ  r!  r7   r|	  rè   rs  r  r,   )rþ  s   "r'   rÿ  r§  "1  s(   € ÷ ,ñ ,˜&ð , tð ,°4ð ,À4ñ ,r)   c                ó�   € \        V 4       \        P                  ! W4      pVR8X  d   \        R4      hV P	                  V34       R# )z'Insert a new link for the current page.r`   úlink kind not supportedN)ro  r  ÚgetLinkTextrÃ   r+  )rÖ   r!  r|	  rß   s   &&& r'   r¦  ÚPage.insert_link"1  s=   € ä�DÔÜ×!Ò! $Ó,ˆØ�BŒ;ÜÐ6Ó7Ð7Ø×!Ñ! 5 (Ö+r)   rö  r%  rù  r  rp  r   çš™™™™™©?Úmiter_limitÚrender_moder-  r  r	  c          (     óh   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR/# )r†  rÖ   rœ  rn  rº   r   útyping.Union[str, list]rÿ   rœ  rö  rú  rþ   ræ  r%  rù  rù  r6   r  rp  rû  r   r‡  rH  rI  r`  r-  rÝ  rè   r  r	  rÙ  r,   )rþ  s   "r'   rÿ  r§  *1  sÐ   € ÷ /ñ /Øð/àð/ð *ð/ð
 ð/ð !ð/ð ð/ð ð/ð ð/ð ð/ð ð/ð ð/ð  ð/ð ð/ð ð/ð  ð!/ð" ð#/ð$ ð%/ð& "ð'/ð(  ð)/ð* ñ+/r)   c               	óœ   € V P                  4       pVP                  VVVVVVVVV	V
VVVVVVVVR 7      pV^ 8¼  d   VP                  V4       V# ))rÿ   rö  rþ   r%  rù  r  rp  r   r‡  rI  rH  r`  r-  r  r	  rÙ  )r«  rŸ  r¯  )rÖ   rn  r   rÿ   rö  rþ   r%  rù  r  rp  r   r‡  rH  rI  r`  r-  rÝ  r  r	  rÙ  r2  r¦   s   &&&$$$$$$$$$$$$$$$$$  r'   rŸ  ÚPage.insert_text*1  ss   € ð0 �n‰nÓˆØ�_‰_ØØØØ!ØØØ!ØØØØ%Ø#Ø#ØØØ)Ø%Øð% ó 
ˆð( �Œ7Ø�J‰J�wÔØˆ	r)   Ú
expandtabsc          .     ót   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR
RRRRRRRR
RRRR
RRRRRRRRRRRRR R
R!R
/# )"r†  rÖ   rœ  rü   r¼   r3
  rK  r  r6   r‡  rœ  rp  rû  r  rN  r	  r   r%  rù  rþ   ræ  rÿ   rö  rú  rH  r-  rÙ  rÝ  rè   rI  r`  rù  r  rs  r,   )rþ  s   "r'   rÿ  r§  [1  s  € ÷ Fñ FØðFàðFð ,ðFð
 ðFð  ðFð ðFð ðFð ðFð  ðFð ðFð ðFð ðFð ðFð !ðFð  ð!Fð" ð#Fð$ ð%Fð& ð'Fð( ð)Fð* ð+Fð, ð-Fð. "ð/Fð0 ñ1Fr)   c               ó    € V P                  4       pVP                  VVVVVV
VVVV	VVVVVVVVVVR7      pV^ 8¼  d   VP                  V4       V# )a£  Insert text into a given rectangle.

Notes:
    Creates a Shape object, uses its same-named method and commits it.
Parameters:
    rect: (rect-like) area to use for text.
    buffer: text to be inserted
    fontname: a Base-14 font, font name or '/name'
    fontfile: name of a font file
    fontsize: font size
    lineheight: overwrite the font property
    color: RGB color triple
    expandtabs: handles tabulators with string function
    align: left, center, right, justified
    rotate: 0, 90, 180, or 270 degrees
    morph: morph box with a matrix and a fixpoint
    overlay: put text in foreground or background
Returns:
    unused or deficit rectangle area (float)
)rÿ   rö  rþ   r%  rù  r  rp  r   rN  rI  rH  r‡  r  r`  r-  r  r	  rÙ  )r«  r®  r¯  )rÖ   rü   r3
  r  r‡  rp  r  rN  r	  r   r%  rþ   rÿ   rö  rH  r-  rÙ  rÝ  rI  r`  rù  r  r2  r¦   s   &&&$$$$$$$$$$$$$$$$$$$  r'   r®  ÚPage.insert_textbox[1  s|   € ðZ �n‰nÓˆØ×ÑØØØØ!ØØØ!ØØØØ!Ø#Ø#Ø%ØØØØ)Ø%Øð)  ó 
ˆð, �Œ7Ø�J‰J�wÔØˆ	r)   c                ó(   € V P                  4       R8H  # )z3Check if /Contents is in a balanced graphics state.rã	  )r¤  r-   s   &r'   rØ  ÚPage.is_wrapped£1  s   € ð ×$Ñ$Ó&¨&Ñ0Ð0r)   c                ó  € \        V P                  RR7      pVP                  '       g   R# \        P                  ! VP                  4       \        R4      4      pVP                  '       g   R# \        P                  ! V4      # )zPage language.Frß  NÚLang)rÚ   rÄ   rÌ   r£   r  r  r  Úpdf_to_str_buf)r&   râ  rH  s   &  r'   rI  ÚPage.language¨1  s]   € ô ˜tŸy™y°5Ô9ˆØ×!×!Ð!ÙÜ×-Ò-¨g¯k©k«m¼XÀfÓ=MÓNˆØ��ˆÙÜ×#Ò# DÓ)Ð)r)   c              #  óp   "  € V P                  4       pV F  pVe   VR,          V9   g   K  Vx € K  	  R# 5i)zÃGenerator over the links of a page.

Args:
    kinds: (list) link kinds to subselect from. If none,
           all links are returned. E.g. kinds=[LINK_URI]
           will only yield URI links.
Nr  )r)  )r&   ÚkindsÚ	all_linksrÉ  s   &&  r'   r5  Ú
Page.links³1  s2   é € ð —N‘NÓ$ˆ	ÛˆDØŠ}  V¥°Ö 5Ø”ó ùs   ‚%6¬
6c               ó    € V ^8„  d   QhRRRR/# )r†  Úidentztyping.Union[str, int]rs  râ   r,   )rþ  s   "r'   rÿ  r§  À1  s   € ÷ ñ Ð 6ð ¸5ñ r)   c                ó:  € \        V 4       \        V4      \        J d   ^ pTpM#\        V4      \        J d   TpRpM\	        R4      hV P                  W24      pV'       g   V# RVn        \        P                  ! V 4      Vn	        W@P                  \        V4      &   V# )zhLoad an annot by name (/NM key) or xref.

Args:
    ident: identifier, either name (str) or xref (int).
Nz&identifier must be a string or integerT)ro  rÈ   ræ  r6   rÃ   r   rõ   r  r   rì   rX  rY  )r&   r]  r  r   r  s   &&   r'   r–  ÚPage.load_annotÀ1  sŠ   € ô 	�DÔÜ�‹;œ#ÓØˆDØ‰DÜ�%‹[œCÓØˆDØ‰DäÐEÓFÐFØ×Ñ˜tÓ*ˆßØˆJØˆŒÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!Øˆ
r)   c                ó`  € \        V 4       \        P                  ! V P                  4      pVP                  '       g   R# \        V4      pRVn        \        P                  ! V 4      Vn	        WP                  \        V4      &   ^ Vn        RVn        V P                  P                  '       dn   V P                  4       pV Uu. uF"  q3^,          \        P                  8X  g   K   VNK$  	  ppV'       d&   V^ ,          pV^ ,          Vn        V^,          Vn        V# ^ Vn        RVn        V# u upi )zGet first Link.NTr`   )ro  r£   Úfz_load_linksrÄ   rÌ   r   rõ   r  r   rì   rX  rY  r  rƒ  r‡  rÖ  )r&   r  r÷  ri  Úlink_ids   &    r'   rN  ÚPage.load_links×1  sñ   € ä�DÔÜ×!Ò! 4§9¡9Ó-ˆØ�~�~ˆ~ÙÜ�C‹jˆØˆŒÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!ØˆŒØˆŒØ�;‰;××ÐØ×$Ñ$Ó&ˆEÙ %ÓF¡˜1¨1­´×1EÑ1EÑ)E—Q�Q¡ˆEÐFßØ �(�Ø" 1�:�”Ø  ��”ð ˆ
ð ˆCŒHØˆCŒFØˆ
ùò Gs   ÃD+Ã$D+c                ó(  € \        V 4       \        V P                  4      p\        W!4      pTpV'       g   V# RVn        \
        P                  ! V 4      Vn        W@P                  \        V4      &   \        4       p\        P                  WE4       TpV# )zLoad a widget by its xref.T)ro  rÚ   rÄ   ÚJM_get_widget_by_xrefrõ   r  r   rì   rX  rY  rZ  r  r[  )r&   r  rÖ   rß   r  r\  s   &&    r'   Úload_widgetÚPage.load_widgetò1  sw   € ä�DÔä˜DŸI™IÓ&ˆÜ% tÓ2ˆàˆßØˆJØˆŒÜ—]’] 4Ó(ˆŒ
Ø$'×Ñœ˜C›Ñ!Ü“ˆÜ×Ñ˜3Ô'ØˆØˆ
r)   c                óê   € \        V 4       V P                  RR7      pVP                  '       g"   \        P                  ! V P
                  4      pM\        VP                  4       4      p\        V4      # )zThe MediaBox.Frß  )	ro  r,  rÌ   r£   r·  rÄ   ÚJM_mediaboxr  r+  )r&   rÖ   rü   s   &  r'   rJ  ÚPage.mediabox2  sS   € ô 	�DÔØ�~‰~ uˆ~Ó-ˆØ��ˆÜ×&Ò&¨¯	©	Ó2‰Dä §¡£
Ó+ˆDÜ�D‹zÐr)   c                	ój   € \        V P                  P                  V P                  P                  4      # r+   )r)  rJ  r´  r¶  r-   s   &r'   Úmediabox_sizeÚPage.mediabox_size2  s#   € ä�T—]‘]×%Ñ% t§}¡}×'7Ñ'7Ó8Ð8r)   c                	ó   € \        V 4      # r+   )ÚShaper-   s   &r'   r«  ÚPage.new_shape2  ó   € Ü�T‹{Ðr)   c                ó,   € \         P                  V 4      # )z7All /Contents streams concatenated to one bytes object.)r  Ú_get_all_contentsr-   s   &r'   Úread_contentsÚPage.read_contents2  s   € ä×&Ñ& tÓ,Ð,r)   c                ób   € \        V 4       V P                  pVP                  V 4      pW n        R# )z-Refresh page after link/annot/widget updates.N)ro  rì   rï	  rÄ   )r&   r1  rÖ   s   &  r'   ÚrefreshÚPage.refresh!2  s&   € ä�DÔØ�k‰kˆØ�‰˜tÓ$ˆàŽ	r)   c               ó    € V ^8„  d   QhRRRR/# ræ  r,   )rþ  s   "r'   rÿ  r§  )2  s   € ÷ $ ñ $ Øð$ àñ$ r)   c               ó–  € V P                   pVP                  V4      '       g   \        R4      h\        V4      \        V4      ,           \        V4      ,           ^8w  d   \        R4      hV P	                  V P
                  W$VR7      pVP                  Wa4       V P                  4       R,          pVP                  VR4       RV n	        R# )a’  Replace the image referred to by xref.

Replace the image by changing the object definition stored under xref. This
will leave the pages appearance instructions intact, so the new image is
being displayed with the same bbox, rotation etc.
By providing a small fully transparent image, an effect as if the image had
been deleted can be achieved.
A typical use may include replacing large images by a smaller version,
e.g. with a lower resolution or graylevel instead of colored.

Args:
    xref: the xref of the image to replace.
    filename, pixmap, stream: exactly one of these must be provided. The
        meaning being the same as in Page.insert_image.
zxref not an imagez3Exactly one of filename/stream/pixmap must be given)rj   r   rÛ  r+  Nr¨  )
rì   rÎ  rÃ   rè   r@  rü   r¼  r–
  r˜
  r‚  )rÖ   r  rj   rÛ  r   r1  r3  Úlast_contents_xrefs   &&$$$   r'   rê  ÚPage.replace_image)2  s±   € ð. �k‰kˆØ× Ñ  ×&Ò&ÜÐ0Ó1Ð1Ü�‹>œD ›LÕ(¬4°«<Õ7¸1Ô<ÜÐRÓSÐSØ×$Ñ$Ø�I‰I Àð %ó 
ˆð 	�‰�hÔ%Ø!×.Ñ.Ó0°Õ4Ðð 	×ÑÐ,¨dÔ3ØˆÖr)   c                ó„   € \        V 4       \        V P                  ^ R7      pVP                  '       g   ^ # \	        V4      # )zPage rotation.rß  )ro  rÚ   rÄ   rÌ   ÚJM_page_rotationrŽ  s   & r'   ru  ÚPage.rotationO2  s3   € ô 	�DÔÜ˜DŸI™I°Ô2ˆØ��ˆÙÜ Ó%Ð%r)   c               ó   € V ^8„  d   QhRR/# rý  r,   )rþ  s   "r'   rÿ  r§  Y2  s   € ÷ 2ñ 2 ñ 2r)   c                ó>   € \        \        P                  V 4      4      # )zReflects page rotation.)r  r  Ú_rotate_matrixr-   s   &r'   rx  ÚPage.rotation_matrixX2  s   € ô ”e×*Ñ*¨4Ó0Ó1Ð1r)   c                ó®   € \        V 4       \        P                  ! V P                  VP                  \        V4      \        P                  ! 4       4       R# )z-Run page through a device.
dw: DeviceWrapper
N)ro  r£   r»  rÄ   rR  rè  rj  )r&   rk  r‹  s   &&&r'   rm  ÚPage.run]2  s5   € ô 	�DÔÜ×Ò˜$Ÿ)™) R§Y¡YÔ0AÀ!Ó0DÄeÇnÂnÓFVÖWr)   rž
  rÐ  r¯  c               ó   € V ^8„  d   QhRR/# rê  r,   )rþ  s   "r'   rÿ  r§  d2  s   € ÷ 'ñ 'ð ñ'r)   c               ó6  € Vf/   ^ \         ,          \        ,          \        ,          \        ,          pVe   \	        V4      p\        V 4       TpVf   V P                  W$R7      pM\        VR4      V 8w  d   \        R4      hVP                  WR7      pVf   ?V# )aZ  Search for a string on a page.

Args:
    text: string to be searched for
    clip: restrict search to this rectangle
    quads: (bool) return quads instead of rectangles
    flags: bit switches, default: join hyphened words
    textpage: a pre-created pymupdf.TextPage
Returns:
    a list of rectangles or quads, each containing one occurrence.
)r  rÐ  rì   ró  )rž
  )
r 
  r¢
  r¡
  r£
  r+  ro  r$  rî   rÃ   Úsearch)rÖ   r   r  rž
  rÐ  r¯  rT  Úrlists   &&$$$$  r'   r¤
  ÚPage.search_ford2  s¡   € ð( Š=ØÜ"õ#ä*õ+ô *õ*ô %õ	%ˆEð ÒÜ˜“:ˆDä�DÔØˆØŠ:Ø×"Ñ"¨Ð"Ó:‰BÜ�R˜Ó" dÔ*ÜÐ:Ó;Ð;Ø—	‘	˜$�	Ó,ˆØÒØØˆr)   c                ó&   € V P                  RV4      # )zSet the ArtBox.r  ©r  ©r&   rü   s   &&r'   Ú
set_artboxÚPage.set_artbox�2  s   € à× Ñ  ¨4Ó0Ð0r)   c                ó&   € V P                  RV4      # )zSet the BleedBox.r  rŒ  r�  s   &&r'   Úset_bleedboxÚPage.set_bleedbox‘2  s   € à× Ñ  ¨TÓ2Ð2r)   c                ó‚  € \        V 4       V P                  pVP                  '       d   \        R4      hVP                  '       g   \        R4      hV\        ^VP                  4       4      9  d   \        R4      hVP                  V4      '       g   \        R4      hVP                  V P                  RVR R24       R# )	z-Set object at 'xref' as the page's /Contents.r¾   r�  r}  zxref is no streamrS  rH  r�  N)
ro  rì   rÂ   rÃ   rƒ  rS  r„  rº  r›  r  )r&   r  r1  s   && r'   Úset_contentsÚPage.set_contents•2  s˜   € ä�DÔØ�k‰kˆØ�=�=ˆ=ÜÐ.Ó/Ð/Ø�z�zˆzÜ˜[Ó)Ð)Ø”u˜Q §¡Ó 1Ó2Ô2Ü˜ZÓ(Ð(Ø×!Ñ! $×'Ò'ÜÐ0Ó1Ð1Ø×Ñ˜Ÿ™ J°4¸°(¸$°Ö@r)   c                ó&   € V P                  RV4      # )z,Set the CropBox. Will also change Page.rect.r  rŒ  r�  s   &&r'   Úset_cropboxÚPage.set_cropbox£2  ó   € à× Ñ  ¨DÓ1Ð1r)   c                ó�  € \        V 4       \        V P                  4      pV'       g1   \        P                  ! VP                  4       \        R4      4       R# \        P                  ! V4      p\        \        R4      '       g   Q h\        P                  ! VP
                  \        R4      \        P                  ! V4      4       R# )zSet PDF page default language.rU  rD  N)ro  rÚ   rÄ   r£   rH  r  r  rÁ  r=   r¯  rD  )r&   rI  râ  rH  s   &&  r'   rÃ  ÚPage.set_language§2  s…   € ä�DÔÜ˜tŸy™yÓ)ˆßÜ×Ò˜wŸ{™{›}¬h°vÓ.>Ö?ä×5Ò5°hÓ?ˆDÜœ5Ð"A×BÒBÐBÐBÜ×*Ò*Ø—K‘KÜ˜VÓ$Ü×7Ò7¸Ó=ör)   c                ó®  € \        V 4       V P                  4       p\        V4      p\        P                  ! V4      '       g   \        P
                  ! V4      '       d   \        \        4      h\        P                  ! VP                  4       \        R4      V4       \        P                  ! VP                  4       \        R4      4       \        P                  ! VP                  4       \        R4      4       \        P                  ! VP                  4       \        R4      4       \        P                  ! VP                  4       \        R4      4       R# )zSet the MediaBox.ÚMediaBoxr  r  r  r  N)ro  r,  r  r£   ræ  rç  rÃ   rè  r3  r  r  rH  )r&   rü   rÖ   rJ  s   &&  r'   r¥  ÚPage.set_mediabox¶2  sÖ   € ä�DÔØ�~‰~ÓˆÜ" 4Ó(ˆÜ×"Ò" 8×,Ò,Ü×,Ò,¨X×6Ò6äœlÓ+Ð+Ü×Ò §¡£¬X°jÓ-AÀ8ÔLÜ×Ò˜DŸH™H›J¬°Ó(;Ô<Ü×Ò˜DŸH™H›J¬°Ó(:Ô;Ü×Ò˜DŸH™H›J¬°Ó(<Ô=Ü×Ò˜DŸH™H›J¬°Ó(;Ö<r)   c                óº   € \        V 4       \        V P                  4      p\        V4      p\        P
                  ! VP                  4       \        R4      V4       R# )zSet page rotation.r;  N)ro  rÚ   rÄ   ÚJM_norm_rotationr£   rP  r  r  )r&   ru  rÖ   ry  s   &&  r'   rî  ÚPage.set_rotationÅ2  s?   € ä�DÔÜ˜DŸI™IÓ&ˆÜ˜xÓ(ˆÜ×Ò §¡£
¬H°XÓ,>ÀÖDr)   c                ó&   € V P                  RV4      # )zSet the TrimBox.r  rŒ  r�  s   &&r'   Úset_trimboxÚPage.set_trimboxÌ2  r™  r)   c               ó   € V ^8„  d   QhRR/# rÔ  r,   )rþ  s   "r'   rÿ  r§  Ð2  s   € ÷ zñ zð ñzr)   c	                ó�  € RR lp	\        V 4       V P                  p
V
P                  '       d   VP                  '       g   \        R4      hVP                  '       g   VP
                  '       d   \        R4      hV^ 8  d   W2P                  ,          pK  W#,          pWP                  ( ,          pV'       g   VP                  MVP                  V,          pVP                  '       g   VP
                  '       d   \        R4      hWÛP                  ( ,          pV	! WÜWGR7      pV
P                  V P                  4       Uu. uF  qÿ^,          NK  	  ppTV
P                  V P                  4       Uu. uF  qÿ^,          NK  	  up,          pTV
P                  V P                  4       Uu. uF  qÿ^,          NK  	  up,          pRp^ pVR,           pVV9   d   V^,          pV\        V4      ,           pK$  VP                  pV
P                  V8X  d   \        R4      hV
P                  P!                  VR	4      pVf   \#        V
4      pVV
P                  V&   VV3pV
P$                  P!                  V^ 4      pV'       d   V P'                  4        V P)                  VVVVVVVVR
7      pVV
P$                  V&   V# u upi u upi u upi )a  Show page number 'pno' of PDF 'docsrc' in rectangle 'rect'.

Args:
    rect: (rect-like) where to place the source image
    docsrc: (document) source PDF
    pno: (int) source page number
    keep_proportion: (bool) do not change width-height-ratio
    overlay: (bool) put in foreground
    oc: (xref) make visibility dependent on this OCG / OCMD (which must be defined in the target PDF)
    rotate: (int) degrees (multiple of 90)
    clip: (rect-like) part of source page rectangle
Returns:
    xref of inserted object (for reuse)
c           	     ó:  € V P                   V P                  ,           R,          pVP                   VP                  ,           R,          p\        ^^ ^ ^VP                  ) VP                  ) 4      \        V4      ,          pW,          pVP
                  VP
                  ,          pVP                  VP                  ,          p	V'       d   \        W‰4      ;r‰V\        W‰4      ,          pV\        ^^ ^ ^VP                  VP                  4      ,          p\        V4      # )aØ  Calculate transformation matrix from source to target rect.

Notes:
    The product of four matrices in this sequence: (1) translate correct
    source corner to origin, (2) rotate, (3) scale, (4) translate to
    target's top-left corner.
Args:
    sr: source rect in PDF (!) coordinate system
    tr: target rect in PDF coordinate system
    keep: whether to keep source ratio of width to height
    rotate: rotation angle in degrees
Returns:
    Transformation matrix.
ç       @)	r*  r+  r  ri  rj  rˆ  r3  r÷  ÚJM_TUPLE)
ÚsrÚtrrµ  r`  ÚsmpÚtmpr‹  Úsr1ÚfwÚfhs
   &&&&      r'   Úcalc_matrixÚ'Page.show_pdf_page.<locals>.calc_matrixé2  sÎ   € ð  —5‘5˜2Ÿ5™5•= CÕ'ˆCà—5‘5˜2Ÿ5™5•= CÕ'ˆCô �q˜!˜Q  C§E¡E 6¨C¯E©E¨6Ó2´V¸F³^ÕCˆAà•&ˆCà—‘˜CŸI™IÕ%ˆBØ—‘˜SŸZ™ZÕ'ˆBßÜ˜b›+Ð%�à”˜“ÕˆAØ”˜˜1˜a  C§E¡E¨3¯5©5Ó1Õ1ˆAÜ˜A“;Ðr)   r�  r=  z!clip must be finite and not empty)rµ  r`  ÚfzFrmr   z%source document must not equal targetN)rÝ  rî  r  rÙ  r  r‰  rß  )Trx   )ro  rì   rƒ  rÃ   rº  r¹  rv  rt  rü   r·  r]  r™  r”  ræ  rÆ  r®  r:   rù  r¯  rÙ  r/  )rÖ   rü   rü  r{  rÞ  rÝ  rÙ  r`  r  r±  r1  r”  Útar_rectÚsrc_rectrî  rg  r?  rG   rß  ÚisrcÚgmapÚpno_idr  s   &&&&&&&&&              r'   r1  ÚPage.show_pdf_pageÐ2  sj  € ô2 	ôD 	�DÔØ�k‰kˆà�z�zˆz §§ Ü˜[Ó)Ð)à�=�=ˆ=˜D×,×,Ð,ÜÐ@ÓAÐAà�AŒgØ×$Ñ$Õ$ŠCØ•;ˆà×5Ñ5Ð5Õ5ˆç(,�8—=’=°(·-±-À$Õ2FˆØ××Ð × 4× 4Ð 4ÜÐ@ÓAÐAØ×=Ñ=Ð=Õ=ˆá˜X°oÔUˆð "×3Ñ3°D·K±KÔ@ÓAÑ@˜�!—�Ñ@ˆÐAØ˜s×2Ñ2°4·;±;Ô?Ó@Ñ?˜!�1—�Ñ?Ñ@Õ@ˆØ˜s×1Ñ1°$·+±+Ô>Ó?Ñ>˜!�1—�Ñ>Ñ?Õ?ˆð ˆØˆØ�s•7ˆØ˜$ÔØ��FˆAØœ3˜q›6•zŠHà×ÑˆØ�=‰=˜DÔ ÜÐDÓEÐEð �}‰}× Ñ   tÓ,ˆØŠ<Ü˜C“=ˆDØ"&ˆC�M‰M˜$Ñð ˜�ˆØ�~‰~×!Ñ! &¨!Ó,ˆçØ×ÑÔ Ø×"Ñ"ØØØØØØØØð #ó 	
ˆð "&ˆ�‰�vÑàˆùòQ BùÚ@ùÚ?s   ÅJ9Å2J>Æ*Kc                óÖ  € \        V 4       \        P                  ! 4       pV P                  RR7      pVP                  '       g   \        V4      # \        P                  ! \        P                  P                  4      p\        P                  ! W#V4       \        V4      pV P                  R,          ^ 8X  d   \        V4      pV# \        ^^ ^ R^ V P                  P                  4      pV# )zPage transformation matrix.Frß  rí  r¨  )ro  r£   r|  r,  rÌ   r{  rq  rE  rd  ru  r  r¶	  r3  )r&   ró  rÖ   rJ  r  s   &    r'   rt  ÚPage.transformation_matrixL3  s´   € ô 	�DÔä�nŠnÓˆØ�~‰~ uˆ~Ó-ˆØ��ˆÜ$ SÓ)Ð)Ü—<’<¤§¡× 7Ñ 7Ó8ˆÜ× Ò  °Ô5Ü Ó$ˆà�=‰=˜3Õ !Ô#Ü˜“+ˆCð ˆ
ô ˜˜A˜q " a¨¯©×)<Ñ)<Ó=ˆCØˆ
r)   c                óô   € V P                  R4      pVf   V P                  # V P                  p\        V^ ,          VP                  V^,          ,
          V^,          VP                  V^,          ,
          4      # )zThe TrimBoxr  rÉ  rÊ  s   &  r'   ÚtrimboxÚPage.trimbox_3  s[   € ð �‰˜yÓ)ˆØŠ<Ø—<‘<ÐØ�]‰]ˆÜ�D˜•G˜RŸU™U T¨!¥W�_¨d°1­g°r·u±u¸tÀA½wµÓGÐGr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rœ  r!  r7   rs  r  r,   )rþ  s   "r'   rÿ  r§  h3  s&   € ÷ Añ A˜&ð A tð A°ñ Ar)   c                ó´   € \        V 4       \        P                  ! W4      pVR8X  d   \        R4      hV P                  P                  VR,          W R7       R# )z"Update a link on the current page.r`   rD  r  rÕ   N)ro  r  rE  rÃ   rì   r_  )rÖ   r!  rß   s   && r'   Úupdate_linkÚPage.update_linkh3  sH   € ä�DÔÜ×!Ò! $Ó,ˆØ�BŒ;ÜÐ6Ó7Ð7à�‰×!Ñ! # f¥+¨uÐ!Ö@r)   c              #  ó  "  € V P                  4        Uu. uF)  q"^,          \        P                  8X  g   K   V^ ,          NK+  	  ppV F/  pV P                  V4      pVe   VP                  V9   g   K+  Vx € K1  	  R# u upi 5i)z×Generator over the widgets of a page.

Args:
    types: (list) field types to subselect from. If none,
            all fields are returned. E.g. types=[PDF_WIDGET_TYPE_TEXT]
            will only yield text fields.
N)r‡  r£   rT  rf  r�  )r&   r˜  r   Úwidget_xrefsr  r\  s   &&    r'   rš  ÚPage.widgetsq3  st   é € ð '+×&6Ñ&6Ô&8Ó[Ñ&8 ¸a½DÄE×DZÑDZÑ<Zœ˜˜!Ÿ˜Ñ&8ˆÐ[ã ˆDØ×%Ñ% dÓ+ˆFØŠ} × 1Ñ 1°UÖ :Ø”ó !ùò \ùs   ‚B•A=·A=Á*BÁ3Bc                óÔ   € V P                  4       w  rV^ 8”  d    RV,          p\        P                  WR4       V^ 8”  d)   RV,          R,           p\        P                  WR4       R# R# )z,Ensure page is in a balanced graphics state.r  Fs   
Qr  TN)r¤  r  r¤  )r&   ÚpushÚpopÚprependro   s   &    r'   rÙ  ÚPage.wrap_contents‚3  s\   € à×)Ñ)Ó+‰	ˆØ�!Œ8Ø˜t•mˆGÜ×"Ñ" 4°%Ô8Ø�Œ7Ø˜c•\ EÕ)ˆFÜ×"Ñ" 4°Ö6ñ r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rÖ   rœ  rs  r  r,   )rþ  s   "r'   rÿ  r§  Œ3  s   € ÷ 1ñ 1Øð1ð ñ1r)   c	                ó  € \        V \        4      '       g   Q hV'       g   \        R4      h\        V4      \        J d$   V^ 8X  d   Vf   VP                  WWCR7       R# V3pV^ ,          P                  p	\        4       p
V
P                  V P                  P                  V P                  P                  R7      pV F(  pWœP                  ,          p	VP                  WµVR7       K*  	  Vf   T	pV P                  VV
^ VVVV	VR7       Rp
RpR# )a„  Write the text of one or more pymupdf.TextWriter objects.

Args:
    rect: target rectangle. If None, the union of the text writers is used.
    writers: one or more pymupdf.TextWriter objects.
    overlay: put in foreground or background.
    keep_proportion: maintain aspect ratio of rectangle sides.
    rotate: arbitrary rotation angle.
    oc: the xref of an optional content object
z$need at least one pymupdf.TextWriterN)r]  rp  rÝ  r¥	  )r]  rp  )rÝ  rÞ  r`  r  rÙ  )r@   rÒ   rÃ   rÈ   Ú
TextWriterÚ
write_textÚ	text_rectrÁ   rò  rü   rˆ  r3  r1  )rÖ   rü   ÚwritersrÝ  rp  r]  rÞ  r`  rÙ  r  Útextdocr¾  Úwriters   &&&&&&&&&    r'   rÎ  ÚPage.write_textŒ3  s  € ô* ˜$¤×%Ò%Ð%Ð%ßÜÐCÓDÐDÜ�‹=œJÓ&Ø˜Œ{˜tš|Ø×"Ñ" 4ÀÐ"ÔWÙà"˜*�Ø�q�z×#Ñ#ˆÜ“*ˆØ× Ñ  t§y¡y§¡¸t¿y¹y×?OÑ?OÐ ÓPˆÛˆFØ×$Ñ$Õ$ˆDØ×Ñ˜e¸EÐÖBñ ð Š<ØˆDØ×ÑØØØØØ+ØØØð 	ô 		
ð ˆØŠr)   c                ób   € \        V 4       V P                  P                  V P                  4      # r±  r²  r-   s   &r'   r  Ú	Page.xref¿3  r´  r)   zpage rectangle)r1  )rX  r   r  rÄ  r]  rì   rÄ   rõ   rx  rï  ru  r+   )Nrx   Nr¨  )NNNNNr™  rx   r™  rx   rx   rx   rx   r¨  NN)rx   r™  Nr%  )Nr™  r™  N)r™  Nrx   rx   NNNrz  )NNrr  rx   NNT)ÚNote)r†  r™  rx   rv  )ru  NNr™  NFrx   rx   Tr™  r™  rx   )ru  NNNr™  rx   rx   Tr™  r™  rx   )
ru  Nr™  rx   rx   TNr™  r™  rx   )ru  NNr™  Nrx   rx   TFr™  r™  rx   )ru  NNr™  rx   rx   NTr™  r™  rx   )ru  NNr™  rx   rx   NTr™  r™  rx   N)ru  NNTNr™  Frx   rx   Tr™  r™  rx   )r†  ru  Nr™  rx   rx   TNr™  r™  rx   rŒ   rƒ  rò  )NNr   r   T)Nr™  )rñ  NNFrx   rx   )rx   TTrx   rx   N)NNTNNTrx   rx   )Ÿr/   r0   r1   r2   r‘   rï   rò   r*  r8  r£   ÚPDF_ANNOT_LE_OPEN_ARROWrG  rR  rV  r[  rd  rg  r€  rƒ  r‡  r+  r’  rœ  rö   r¤  r°  r«  rÀ  rö  rû  r   r  r	  r,  rŸ  r  r  r¬  r/  r6  r<  rB  rF  rO  rT  rY  r_  rc  rg  rn  rt  rx  r}  r�  r†  rŠ  r�  r‡  r¯  r•
  r
  rÁ  rÆ  r{  rË  rÎ  rÕ  rŸ  r¶	  rß  rã  rë  r”
  rú  ru  r  r  r  r  r   r$  r(  r¬  r3  r;  r@  rC  rG  rK  rO  rS  rY  r\  r–
  rl  r}  r‰  r’  r•  r)  r©  rö  r¨  rË  rÏ  rÜ  r†  rå  rï  r  r  rù  rü  rÿ  r  r$  r‹  r  r  r9  r@  r¦  rŸ  r®  rØ  rI  r5  r–  rN  rf  rJ  rl  r«  rt  rw  rê  ru  rx  rm  r¤
  rŽ  r‘  r”  r—  rÃ  r¥  rî  r£  r1  rt  r½  rÁ  rš  rÙ  rÎ  r  rü   rÄ  r3   r,   r)   r'   rÒ   rÒ   %  s‚  † òò òò&õð< ØØØØØØØØ×2Ñ2ØØØØØô!Nò`ò@	òõò<
õBõHòò DòDòò
òFõ0ò.õõ2j"òXò* õò	%õ:ò!õòBLò*9õ7õrõ	÷ð ð2.ð
  ð.ð #ð.ð !%ð.ð !%ð.ð #'ð.ð "#ð.ð !ð.ð "ð.ð  ×7Ñ7ð.ð ð.ð ð.ð  ð!.ð" ð#.ð$ ÷%.÷`ð õõ	õ	õ	õ	÷<ð <÷|Bð B÷	ð 	÷Dð D÷	ð 	÷Cð Cõò$	*ò-õ÷(mð mõ^;ò	"ò.ð ñHó ðHð ñHó ðHòõ$Cð ñ
ó ð
ð ñó ðòõ.-ò*õXð ô8ó ð8÷%ð %÷N ð  ÷D$ð $÷L ð  ÷D ð  ÷D"ð "÷H ð  ÷D#ð #÷J,ð ,÷\!ð !÷F!ð !õF	$ò1ð ñó ðð ñ!ó ð!ð ñó ðõ&õ ò>õ$÷|ð |÷|'ð '÷R"ð "òH8õ ð4)ð %-ð)ð ð	)ð
 (,ð)ð !%ð)ð "ð)ð "÷)òV4÷laRð aRõFBõ
>õ@Cõ
õ&÷0ð ò5ò<ò?ò;ò=÷ð ò ò*:õ
QðfQ#ð
 ðQ#ð ðQ#ð ðQ#ð ðQ#ð ðQ#ð ðQ#ð ðQ#ð ðQ#ð ÷Q#ðfzñ ð	zð
 ðzð ðzð !ðzð ðzð ðzð ðzð ðzð ðzð ðzð ðzð ôz÷x,ð ,ð/ð
 !ð/ð $(ð/ð #ð/ð  $ð/ð  ð/ð ð/ð !ð/ð  ð/ð #'ð/ð "#ð/ð  !ð/ð  ð!/ð" !ð#/ð$ !ð%/ð& %&ð'/ð( #$ð)/ð* ÷+/ðbFð
 ðFð #'ðFð !ðFð ðFð  ðFð #$ðFð  ðFð  $ðFð #ðFð !ðFð $(ðFð  "#ð!Fð" !ð#Fð$ ð%Fð& !ð'Fð(  !ð)Fð* ð+Fð,  ð-Fð. %&÷/FðP ñ1ó ð1ð ñ*ó ð*õõò.ò6ð$ ñó ðð ñ9ó ð9òò-òð$ ð ð	$ ð
 ð$ ð ÷$ ðL ñ&ó ð&ð ô2ó ð2òXð'ð ð	'ð
 ð'ð ð'ð ÷'òR1ò3òAò2õò=òEò2÷zð zðx ñó ðð$ ñHó ðHõAõò"7÷1ñ 1ðf ò2ó ð2ñ
 �EÑ/Õ0€Dð Õr)   rÒ   c                  ó  € ] tR tRtR tR tR tR tR t]	R 4       t
R4R	 ltR5R
 ltR6R lt]	R 4       tR t]	R 4       tR t]	R 4       tR6R lt]	R 4       t]	R 4       t]	R 4       t]	R 4       tR7R ltR8R ltR tR tR tR t]	R R l4       t]	R 4       tR t ]	R  4       t!R9R! lt"R:R" lt#R;R# lt$R$ t%R% t&R& t'R' t(R( t)]	R) 4       t*]	R* 4       t+R+ t,]	R, 4       t-R- t.]	R. 4       t/]	R/ 4       t0]	R0 4       t1]	R1 4       t2]-t3]t4R2 t5R3t6R# )<rì  iË3  c                óÞ  € RV n         RV n         \        T\        \        P
                  3\        P                  \        P                  \        \        \        34      '       dE   Tw  r#^ p\        P                  ! T\        T4      \        P                  ! ^ 4      T4      pYPn        R# \        T\        \        P
                  3\        P                  \        P                  \        \        \        3\        \         34      '       dD   Tw  r#p\        P                  ! T\        T4      \        P                  ! ^ 4      T4      pYPn        R# \        T\        \        P
                  \#        R4      3\$        \        P&                  34      '       EdK   Tw  r&\)        T\        4      '       d   TP                  pMTf   \        P
                  ! R4      p\)        T\$        4      '       d   TP                  p\        P*                  ! T4      P,                  '       g   \/        R4      hTP,                  '       d]   \        P0                  ! TT\        P
                  ! 4       \        P2                  ! R4      \        P4                  ! 4       ^4      T n        R# \        P6                  ! T4      T n        T P                  P,                  '       g   \9        \:        4      hR# \        T\$        \        P&                  3\$        \        P&                  34      '       dµ   Tw  rg\)        T\$        4      '       d   TP                  p\)        T\$        4      '       d   TP                  pTpTp	TP,                  '       g9   \        P6                  ! T	4      p
T
P,                  '       g   \9        \:        4      hM\        P<                  ! Y‰4      p
Y n        R# \        T\$        \        P&                  3\>        \        3\>        \        3R4      '       g>   \        T\$        \        P&                  3\>        \        3\>        \        34      '       Ed    \A        T4      ^8X  d+   Tw  rkp\        P                  ! \        PB                  4      pMTw  rkrÎ\        T4      p\)        T\$        4      '       d   TP                  MTp\        PD                  ! T4      '       g7   \        PF                  ! YÿPI                  4       TPK                  4       Y¼T4      pMW\        PF                  ! YÿPI                  4       TPK                  4       Y¼\        P                  ! \        PB                  4      4      pYPn        R# \        T\L        \$        \        P&                  34      '       d>   T^ ,          R8X  d0   Tw  pp\)        T\$        4      '       d   TP                  pYPn        R# \        T\$        \        P&                  3\        R34      '       EdÛ   T^ ,          p\A        T4      ^8X  d
   T^,          M^p\)        T\$        4      '       d   TP                  MTp\O        T^ ^4      '       g   \/        R4      h\        P*                  ! T4      pTP,                  '       g   T'       g   \/        R4      h\        P                  ! 4       p\        PP                  ! T4      p\        PR                  ! T4      p\        PT                  ! T4      p\        PV                  ! Y+TTT4      pTP,                  PH                  TP,                  n$        TP,                  PJ                  TP,                  n%        TP,                  PX                  TP,                  n,        TP,                  PZ                  TP,                  n-         \\        P^                  ! TP,                  TP,                  T4       YPn        R# \        T\        P
                  \        3\        \        R\        \         34      '       Ed�   Tw  r+pp$p\)        T\        4      '       d/   TP                  p\)        T\        P
                  4      '       g   Q h\        Pn                  ! T4      pTT,           T,          p%\        P                  ! 4       p\        PV                  ! Y+TTT4      p\)        T$\p        \r        34      '       d#   \        Pt                  ! T$4      p&\A        T$4      pMW\w        T$4      p'T'P,                  '       g   \/        R4      h\        Px                  ! T'4      w  pp(\        Pt                  ! T$4      p&T%T,          T8w  d$   \/        RT: RT: R	T: R
T: RT%: RT: 24      h\        Pz                  ! TP,                  T&4       YPn        R# \        TR4      '       EdÆ   Tw  p)Rp*\}        T)R4      '       d0   T)P                  4       p+T+'       d   \        P€                  ! T+4      p,MÄ\}        T)T*4      '       d,   T)P‚                  p+T+'       d   \        P€                  ! T+4      p,M‡\)        T)\L        4      '       d   \        P€                  ! T)4      p,MZ\w        T)4      p'T'P,                  '       d   T'P,                  P@                  '       g   \/        R4      h\        P„                  ! T'4      p,\        P†                  ! X,\        P                  ! \ˆ        \ˆ        \Š        \Š        4      \        PŒ                  ! T,P�                  4       ^ ^ T,P‘                  4       ^ ^ 4      4      w  r[p\        P’                  ! T,4      w  p-p.T-TP,                  n,        T.TP,                  n-        YPn        R# \        T\”        \        P–                  3\        4      '       Ed    Tw  p/p0\™        T/4      p1\        Pš                  ! T14      p2\O        T0^T2^,
          4      '       g   \/        \œ        4      h\        Pž                  ! T1T0^ 4      p3\        P                   ! T3\£        R4      4      p4\        P¤                  ! T4\£        R4      4      '       g\   \        P¤                  ! T4\£        R4      4      '       g6   \        P¤                  ! T4\£        R4      4      '       g   \/        \¦        4      h\        P¨                  ! T1T34      p,\        P†                  ! T,\        P                  ! \ˆ        \ˆ        \Š        \Š        4      \        PŒ                  ! T,P�                  4       ^ ^ T,P‘                  4       ^ ^ 4      4      w  p5r¼T5T n        R# Rp6T F  p7T6R\#        T74       RT7 R2,          p6K  	  \«        T64      h)aÈ  
Pixmap(colorspace, irect, alpha) - empty pixmap.
Pixmap(colorspace, src) - copy changing colorspace.
Pixmap(src, width, height,[clip]) - scaled copy, float dimensions.
Pixmap(src, alpha=1) - copy and add or drop alpha channel.
Pixmap(filename) - from an image in a file.
Pixmap(image) - from an image in memory (bytes).
Pixmap(colorspace, width, height, samples, alpha) - from samples data.
Pixmap(PDFdoc, xref) - from an image at xref in a PDF document.
Nz"source colorspace must not be NoneÚrawzbad alpha valuez'cannot drop alpha for 'NULL' colorspacezbad samples datazbad samples length w=z h=z alpha=z n=z stride=z size=r   rÈ  úbad image datar¶  r  ÚAlphaÚ
Luminosityz+Unrecognised args for constructing Pixmap:
ú    r€   r#   )VÚ_samples_mvÚ_memory_viewrI  r+  r£   r-  rq  ÚFzIrectÚIRectr+  rµ   Úfz_new_pixmap_with_bboxrK  rë  rÄ   r6   rè   rÈ   rì  ÚFzPixmapr@   Úfz_pixmap_colorspacerÌ   rÃ   rÌ  rÍ  rÎ  Ú fz_new_pixmap_from_alpha_channelrÞ   ÚMSG_PIX_NOALPHAÚ!fz_new_pixmap_from_color_and_maskrœ  r9   Úfz_infinite_irectrL  Úfz_scale_pixmapri  rj  ræ  rÕ  Úfz_pixmap_colorantsÚfz_pixmap_widthÚfz_pixmap_heightÚfz_new_pixmaprò  ró  r   Úpixmap_copyÚfz_pixmap_samples_memoryviewrñ  ÚstriderG   rS  Úfz_samples_setÚfz_samples_getr@  r  r©  r»  r.  rT  Úll_fz_pixmap_copy_rawr=   rò   Úfz_new_image_from_filer   rz  Úfz_get_pixmap_from_imageÚFZ_MIN_INF_RECTÚFZ_MAX_INF_RECTr|  r   r"  rÕ  rÁ   rÅ   rÎ   r·  r¸  r¹  r  r  rö  rÇ  r  rk   )8r&   r  rô  rü   rñ  rS  ÚspixÚmpixÚspmÚmpmrœ  r   r"  r6  r  Úsrc_pixr@  ÚsepsrG   Úsrc_viewÚpm_viewrÉ  ÚtptrÚsptrÚ	pm_strideÚpm_nÚpm_alphaÚ
src_strideÚsrc_nrj  ri  Úpm_iÚsrc_irg  Úsrc_pix_alpharŒ  Úsamplesrñ  Úsamples2r%  rõ  Ú	imagedatar   r6  r2  rò  ró  r1  r  ra  rŸ  ré  rb  rõ  r   Úargs8   &*                                                      r'   r‘   ÚPixmap.__init__Í3  s³	  € ð  ˆÔð
 !ˆÔàô ˜ÜœU×/Ñ/Ð0Ü—‘œuŸ}™}¬e´T¼5ÐA÷ò ð
 ‰HˆBØˆEÜ×.Ò.¨rÔ3CÀDÓ3IÌ5×K^ÒK^Ð_`ÓKaÐchÓiˆBØŽIä˜ÜœU×/Ñ/Ð0Ü—‘œuŸ}™}¬e´T¼5ÐAÜ”d�÷ò ð #‰OˆB�eÜ×.Ò.¨rÔ3CÀDÓ3IÌ5×K^ÒK^Ð_`ÓKaÐchÓiˆBØŽIä˜œz¬5×+=Ñ+=¼tÀD»zÐJÌVÔUZ×UcÑUcÐLd×eÓeà‰HˆBÜ˜"œj×)Ò)Ø—W‘W‘Ø’Ü×'Ò'¨Ó-�Ü˜$¤×'Ò'Ø—y‘y�Ü×-Ò-¨dÓ3×>×>Ð>Ü Ð"FÓGÐGà�}�}ˆ}Ü!×3Ò3ØØÜ×*Ò*Ó,Ü×2Ò2°4Ó8Ü×+Ò+Ó-Øó�–	ô "×BÒBÀDÓI�”	Ø—y‘y×+×+Ð+Ü&¬Ó8Ð8ñ ,ô ˜œv¤u§~¡~Ð6¼ÄÇÁÐ8P×QÒQà‰JˆDÜ˜$¤×'Ò'Ø—y‘y�Ü˜$¤×'Ò'Ø—y‘y�ØˆCØˆCØ—?—?�?Ü×<Ò<¸SÓA�Ø—~—~�~Ü&¬Ó8Ð8ð &ô ×=Ò=¸cÓG�ØŽIä˜¤¬¯©Ð7¼%Ä¸ÌÌsÀ|ÐUY×ZÒZÜ˜œv¤u§~¡~Ð6¼Ä¸ÄuÌcÀl×SÓSä�4‹y˜AŒ~Ø!‘
�˜Ü—}’}¤U×%<Ñ%<Ó=‘à#'Ñ �˜Ü'¨Ó-�ä#-¨d´F×#;Ò#;�d—i’iÀˆGÜ×-Ò-¨d×3Ò3Ü×*Ò*¨7·I±I³KÀÇÁÃÈaÐTXÓY‘ä×*Ò*¨7·I±I³KÀÇÁÃÈaÔTY×TaÒTaÔbg×byÑbyÓTzÓ{�ØŽIä˜œc¤F¬E¯N©NÐ#;×<Ò<ÀÀaÅÈEÔAQà‰EˆAˆrÜ˜"œf×%Ò%Ø—W‘W�ØŽIä˜œv¤u§~¡~Ð6¼¸d¸×DÓDð ˜•7ˆDÜ" 4›y¨Aœ~�D˜–G°1ˆEÜ#-¨d´F×#;Ò#;�d—i’iÀˆGÜ˜E 1 a×(Ò(Ü Ð"3Ó4Ð4Ü×+Ò+¨GÓ4ˆBØ—=—=�=¯Ü Ð"KÓLÐLÜ×&Ò&Ó(ˆDÜ×)Ò)¨'Ó2ˆAÜ×%Ò% gÓ.ˆAÜ×&Ò& wÓ/ˆAÜ×$Ò$ R¨A¨t°UÓ;ˆBØ%×0Ñ0×2Ñ2ˆB�M‰MŒOØ%×0Ñ0×2Ñ2ˆB�M‰MŒOØ!(×!3Ñ!3×!8Ñ!8ˆB�M‰MÔØ!(×!3Ñ!3×!8Ñ!8ˆB�M‰MÔð ô ×!Ò! 2§=¡=°'×2DÑ2DÀaÔHðh ŽIä˜œu×1Ñ1´:Ð>ÄÄSÈ$ÔQTÔVZÐP[×\Ó\à'+Ñ$ˆB�1�g˜uÜ˜"œj×)Ò)Ø—W‘W�Ü! "¤e×&8Ñ&8×9Ò9Ð9Ð9Ü×%Ò% bÓ)ˆAØ˜%•i 1•_ˆFÜ×&Ò&Ó(ˆDÜ×$Ò$ R¨A¨t°UÓ;ˆBä˜7¤U¬IÐ$6×7Ò7ä ×3Ò3°GÓ<�Ü˜7“|‘ä(¨Ó1�Ø—~—~�~Ü$Ð&8Ó9Ð9Ü×1Ò1°#Ó6‘��aÜ ×3Ò3°GÓ<�Ø˜�z˜TÔ!Ü Ð$:¸±t¸4¸Q¹DÀÀ%ÁÈÈ1É$ÈiÐPVÉyÐX_ÐZ^ÑY`Ð"aÓbÐbÜ×'Ò'¨¯©¸ÔAØŽIä˜˜d×#Ó#à‰JˆIØˆDÜ�y )×,Ò,Ø!×)Ñ)Ó+�ßÜ×6Ò6°uÓ=�CøÜ˜ D×)Ò)Ø!Ÿ™�ßÜ×6Ò6°uÓ=�CøÜ˜I¤s×+Ò+Ü×2Ò2°9Ó=‘ä(¨Ó3�Ø—~—~�~¨S¯^©^×-?×-?Ð-?Ü$Ð&6Ó7Ð7Ü×4Ò4°SÓ9�ô
 ×5Ò5ØÜ—M’M¤/´?ÄOÔUdÓeÜ—N’N C§E¡E£G¨Q°°3·5±5³7¸A¸qÓAó‰HˆB�1ô
 ×2Ò2°3Ó7‰JˆD�$Ø!%ˆB�M‰MÔØ!%ˆB�M‰MÔØŽIä˜œx¬×)9Ñ)9Ð:¼C×@Ó@à‰IˆC�Ü" 3Ó'ˆCÜ×(Ò(¨Ó-ˆGÜ˜D ! W¨Q¥Y×/Ò/Ü ¤,Ó/Ð/Ü×(Ò(¨¨d°AÓ6ˆCÜ×&Ò& s¬H°YÓ,?Ó@ˆEÜ×%Ò% e¬X°gÓ->×?Ò?Ü!×-Ò-¨e´X¸gÓ5F×GÒGÜ!×-Ò-¨e´X¸lÓ5K×LÒLä ¤/Ó2Ð2Ü×&Ò& s¨CÓ0ˆCô ×6Ò6ØÜ—M’M¤/´?ÄOÔUdÓeÜ—N’N 3§5¡5£7¨A¨q°#·%±%³'¸1¸aÓ@ó‰IˆC�ð
 ˆDŽIð BˆDÛ�Ø˜$œt C›y˜k¨¨C¨5°Ð3Õ3’ñ ä˜TÓ"Ð"r)   c                	ó   € V P                   # r+   )rÉ  r-   s   &r'   rÖ  ÚPixmap.__len__å4  s   € Ø�y‰yÐr)   c                	óè   € \        V 4      \        J g   R # RpV P                  '       d+   V P                  P                  P                  P
                  pRV RV P                   RV P                   R2# )NrÕ
  zPixmap(z, rí  )rÈ   rì  rð  rÄ   rÌ   r   Úirectrñ  )r&   rð  s   & r'   rï   ÚPixmap.__repr__è4  s]   € Ü�D‹zœVÓ#ÙØˆ
Ø�?�?ˆ?ØŸ™×-Ñ-×8Ñ8×=Ñ=ˆJà˜˜ B t§z¡z l°"°T·Z±Z°LÀÐBÐBr)   c                óš  € V P                   p\        P                  ! V4      VP                  4       ,          p\        P                  ! V4      p\        P
                  ! V4      pV^8X  d   \        P                  ! Wc4       M®V^8X  d   \        P                  ! Wc4       M�V^8X  d   \        P                  ! Wc4       MrV^8X  d   \        P                  ! Wc4       MTV^8X  d   \        P                  ! Wc4       M6V^8X  d   \        P                  ! WcV^ 4       M\        P                  ! Wc4       VP                  4        \        V4      pV# )z
Pixmap._tobytes
)rÄ   r£   Úfz_pixmap_strider"  r0
  r1
  Úfz_write_pixmap_as_pngÚfz_write_pixmap_as_pnmÚfz_write_pixmap_as_pamÚfz_write_pixmap_as_psdÚfz_write_pixmap_as_psÚfz_write_pixmap_as_jpegrE	  r#  )r&   Úformat_Újpg_qualityrS  rÉ  r%  rF	  Úbarrays   &&&     r'   Ú_tobytesÚPixmap._tobytesñ4  sì   € ð �Y‰YˆÜ×%Ò% bÓ)¨B¯D©D«FÕ2ˆÜ×!Ò! $Ó'ˆÜ�nŠn˜SÓ!ˆØ˜Œ\œE×8Ò8¸ÕAØ˜Œ\œE×8Ò8¸ÕAØ˜Œ\œE×8Ò8¸ÕAØ˜Œ\œE×8Ò8¸ÕAØ˜Œ\œE×7Ò7¸Õ@Ø˜Œ\Ü×)Ò)¨#°;ÀÕBä×(Ò(¨Ô1Ø×ÑÔÜ! #Ó&ˆØˆr)   c                	óÀ  € V P                   pV^8X  d   \        P                  ! WA4       R# V^8X  d   \        P                  ! WA4       R# V^8X  d   \        P                  ! WA4       R# V^8X  d   \        P
                  ! WA4       R# V^8X  d   \        P                  ! WA4       R# V^8X  d   \        P                  ! WAV4       R# \        P                  ! WA4       R# r›  )rÄ   r£   Úfz_save_pixmap_as_pngÚfz_save_pixmap_as_pnmÚfz_save_pixmap_as_pamÚfz_save_pixmap_as_psdÚfz_save_pixmap_as_psÚfz_save_pixmap_as_jpeg)r&   rj   r  r  rS  s   &&&& r'   Ú	_writeIMGÚPixmap._writeIMG5  s“   € Ø�Y‰YˆØ˜Œ\œE×7Ò7¸ÖEØ˜Œ\œE×7Ò7¸ÖEØ˜Œ\œE×7Ò7¸ÖEØ˜Œ\œE×7Ò7¸ÖEØ˜Œ\œE×6Ò6°rÖDØ˜Œ\œE×8Ò8¸À{ÖSÜ!×7Ò7¸ÖEr)   c                óB   € \         P                  ! V P                  4      # )z$Indicates presence of alpha channel.)r£   Úfz_pixmap_alpharÄ   r-   s   &r'   rñ  ÚPixmap.alpha5  rB  r)   Nc                óà   € Vf#   \         P                  ! V P                  4       R# Vf$   \         P                  ! V P                  V4       R# \	        V P                  V\        V4      4       R# )z*Fill all color components with same value.N)r£   Úfz_clear_pixmaprÄ   Úfz_clear_pixmap_with_valueÚJM_clear_pixmap_rect_with_valuerK  )r&   r¸   r6  s   &&&r'   ré  ÚPixmap.clear_with5  sH   € àŠ=Ü×!Ò! $§)¡)Ö,ØŠ\Ü×,Ò,¨T¯Y©Y¸Ö>ä+¨D¯I©I°uÔ>NÈtÓ>TÖUr)   c                óZ   € V P                   p\        W24      pV'       g   \        V4      # V# )z
Return count of each color.
)rÄ   ÚJM_color_countr9   )r&   r  r  rS  r¦   s   &&&  r'   Úcolor_countÚPixmap.color_count5  s(   € ð �Y‰YˆÜ˜RÓ&ˆßÜ˜“8ˆOØˆ	r)   c                ó<  € ^ p^ pVe'   V P                   \        V4      9   d   V P                   pV P                  RVR7      P                  4        F  w  rEW%,          pWS8”  g   K  TpTpK  	  V'       g    ^\	        ^ÿ.V P
                  ,          4      3# W2,          X3# )z/Return most frequent color and its usage ratio.T)r  r  )r  r+  r5  rD   r  rG   )r&   r  Ú	allpixelsÚcntÚpixelrÙ  Úmaxpixels   &&     r'   Úcolor_topusageÚPixmap.color_topusage(5  s“   € àˆ	ØˆØÒ §
¡
¬d°4«jÔ 8Ø—:‘:ˆDØ ×,Ñ,°D¸dÐ,ÓC×IÑIÖK‰LˆEØÕˆIØŽ{Ø�Ø ’ñ	 L÷
 Ø”u˜c˜U T§V¡V�^Ó,Ð-Ð-Ø• Ð*Ð*r)   c                ó~   € \        \        P                  ! V P                  4      4      pVP                  R8X  d   R# V# )zPixmap Colorspace.r  N)r+  r£   rå  rÄ   r   )r&   rô  s   & r'   rð  ÚPixmap.colorspace75  s1   € ô œ×2Ò2°4·9±9Ó=Ó>ˆØ�7‰7�fÔÙØˆ	r)   c                óJ  € V P                   pVP                   p\        P                  ! V4      '       g   \        R4      hVP	                  4       VP	                  4       8w  d   \        R4      h\        P
                  ! W4\        V4      \        P                  ! R4      4       R# )zCopy bbox from another Pixmap.z'cannot copy pixmap with NULL colorspacez%source and target alpha must be equalN)rÄ   r£   rå  rÃ   rñ  Úfz_copy_pixmap_rectrK  rÍ  )r&   r4  r6  rS  rý  s   &&&  r'   r8  ÚPixmap.copy?5  su   € à�Y‰YˆØ—(‘(ˆÜ×)Ò)¨'×2Ò2ÜÐGÓHÐHØ�8‰8‹:˜Ÿ™›Ô(ÜÐEÓFÐFÜ×!Ò! "Ô/?ÀÓ/EÄu×GaÒGaÐbfÓGgÖhr)   c                óX   € \         P                  ! V P                  4      p\        V4      # )zMD5 digest of pixmap (bytes).)r£   rÉ  rÄ   r  rk  s   & r'   rì  ÚPixmap.digestI5  s"   € ô ×"Ò" 4§9¡9Ó-ˆÜ�S‹zÐr)   c                ó®   € \         P                  ! V P                  4      '       g   \        R4       R# \         P                  ! V P                  V4       R# )z5Apply correction with some float.
gamma=1 is a no-op.zcolorspace invalid for functionN)r£   rå  rÄ   r  Úfz_gamma_pixmap)r&   Úgammas   &&r'   Ú
gamma_withÚPixmap.gamma_withO5  s9   € ô ×)Ò)¨4¯9©9×5Ò5ÜÐ=Ô>ÙÜ×Ò˜tŸy™y¨%Ö0r)   c                óB   € \         P                  ! V P                  4      # )zThe height.)r£   rí  rÄ   r-   s   &r'   r"  ÚPixmap.hW5  r1  r)   c                ó.  € V P                   p\        P                  ! V4      P                  '       g   \	        R4       R# \        V4      p\        P                  ! V4      '       d   \        P                  ! V4       R# \        P                  ! W#4       R# )z Invert the colors inside a bbox.zignored for stencil pixmapFT)	rÄ   r£   rå  rÌ   r  rK  rL  Úfz_invert_pixmapÚfz_invert_pixmap_rect)r&   r6  rS  r$  s   &&  r'   Úinvert_irectÚPixmap.invert_irect\5  sk   € à�Y‰YˆÜ×)Ò)¨"Ó-×8×8Ð8ÜÐ8Ô9ÙÜ˜TÓ"ˆÜ×%Ò% a×(Ò(Ü×"Ò" 2Ô&ÙÜ×#Ò# BÔ*Ùr)   c                óX   € \         P                  ! V P                  4      p\        V4      # )zPixmap bbox - an IRect object.)r£   Úfz_pixmap_bboxrÄ   ÚJM_py_from_irectrÑ  s   & r'   r  ÚPixmap.irecti5  s#   € ô ×"Ò" 4§9¡9Ó-ˆÜ Ó%Ð%r)   c                óB   € \         P                  ! V P                  4      # )zCheck if pixmap is monochrome.)r£   Úfz_is_pixmap_monochromerÄ   r-   s   &r'   Úis_monochromeÚPixmap.is_monochromeo5  s   € ô ×,Ò,¨d¯i©iÓ8Ð8r)   c                ó  € V P                   pVP                  4       pVP                  4       VP                  4       ,          V,          pR p\	        ^ W24       F)  pV^ 8X  d   V! V^ V4      pK  V! WV4      pVX8w  g   K(   R# 	  R# )z%
Check if pixmap has only one color.
c                ó–   € \        4       p\        V4       F/  pVP                  \        P                  ! WV,           4      4       K1  	  V# r+   )r´   rS  ro   r£   ró  )rS  ÚoffsetrG   rI   rg  s   &&&  r'   Ú_pixmap_read_samplesÚ0Pixmap.is_unicolor.<locals>._pixmap_read_samples|5  s7   € Ü“&ˆCÜ˜1–X�Ø—
‘
œ5×/Ò/°¸1µHÓ=Ö>ñ àˆJr)   FT)rÄ   rG   r   r"  rS  )r&   rS  rG   rÙ  r\  r[  Úsample0Úsamples   &       r'   Úis_unicolorÚPixmap.is_unicolort5  s{   € ð
 �Y‰YˆØ�D‰D‹FˆØ—‘“˜Ÿ™›• !Õ#ˆò	ô
 ˜Q Ö)ˆFØ˜Œ{Ù.°°A°qÓ9’á-¨r¸1Ó=�Ø˜WÖ$Ú ñ *ñ r)   c                ó¬   € \         '       d*   R p\        V4      V P                  n        V P                  # \        P
                  ! V P                  4      # )zThe size of one pixel.c                óB   € \         P                  ! V P                  4      # r+   )r   Úpixmap_nrÄ   r-   s   &r'   Ún2ÚPixmap.n.<locals>.n2‘5  s   € Ü—~’~ d§i¡iÓ0Ð0r)   )r  r{  r
  rG   r£   Úfz_pixmap_componentsrÄ   )r&   re  s   & r'   rG   ÚPixmap.nŠ5  s<   € ÷ ‹;ò1ä'¨›|ˆD�N‰NÔØ—6‘6ˆMÜ×)Ò)¨$¯)©)Ó4Ð4r)   c                ó¾  € \        V4      p\        P                  ! 4       pW%n        V'       d   VP	                  V4       V'       d   VP                  V4       V P                  p\        V\        4      '       d   \        P                  ! Wa^ V4       R# \        V4      p \        P                  ! WvV4       VP                  4        R#   TP                  4        i ; i)z$
Save pixmap as an OCR-ed PDF page.
N)Úget_tessdatar£   ÚFzPdfocrOptionsr¤  Úlanguage_set2Údatadir_set2rÄ   r@   ræ  Úfz_save_pixmap_as_pdfocrrC	  Úfz_write_pixmap_as_pdfocrrE	  )r&   rj   r¤  rI  ÚtessdatarU  rõ  rF	  s   &&&&&   r'   Úpdfocr_saveÚPixmap.pdfocr_save—5  s£   € ô   Ó)ˆÜ×$Ò$Ó&ˆØ ŒßØ×Ñ Ô)ßØ×Ñ˜xÔ(Ø�i‰iˆÜ�h¤×$Ò$Ü×*Ò*¨C¸1¸dÖCä'¨Ó2ˆCð&Ü×/Ò/°¸4Ô@à×#Ñ#Ö%ø�×#Ñ#Õ%ús   Â!C
 Ã
Cc                óx   € \        V4      p^ RIHp V! 4       pV P                  WQW#R7       VP	                  4       # )a^  Save pixmap as an OCR-ed PDF page.

Args:
    compress: (bool) compress, default 1 (True).
    language: (str) language(s) occurring on page, default "eng" (English),
            multiples like "eng+ger" for English and German.
    tessdata: (str) folder name of Tesseract's language support. If None
            we use environment variable TESSDATA_PREFIX or search for
            Tesseract installation.
Notes:
    On failure, make sure Tesseract is installed and you have set
    <tessdata> or environment variable "TESSDATA_PREFIX" to the folder
    containing your Tesseract's language support data.
r«  )r¤  rI  rp  )rj  r;   rª  rq  rÄ  )r&   r¤  rI  rp  rª  r¬  s   &&&&  r'   Úpdfocr_tobytesÚPixmap.pdfocr_tobytes¬5  s7   € ô   Ó)ˆÝÙ‹iˆØ×Ñ˜¸(ÐÔVØ�|‰|‹~Ðr)   c                ó€  €  ^ RI Hp T P                  pT'       g   RpMRTP
                  ^8X  d   T P                  '       g   RMRpM*TP
                  ^8X  d   T P                  '       g   RMRpMRpTP                  Y0P                  T P                  3T P                  4      pT#   \         d    \        R4       h i ; i)z&Create a Pillow Image from the Pixmap.)r  zPIL/Pillow not installedr`  ÚLAr7  ÚRGBAr8  )ÚPILr  rY  rv   rð  rG   rñ  Ú	frombytesrˆ  r3  r  )r&   r  Úcspacer   r2  s   &    r'   Ú	pil_imageÚPixmap.pil_imageÁ5  s™   € ð	Ý!ð
 —‘ˆßØ‰DØ�X‰X˜Œ]Ø"ŸjŸj˜j‘3¨d‰DØ�X‰X˜Œ]Ø $§
§
 
‘5°‰DàˆDà�o‰o˜d§Z¡Z°·±Ð$=¸t¿|¹|ÓLˆØˆ
øô ô 	ÜÐ.Ô/Øð	ús   ‚B% Â%B=c                óª   € V P                  4       pRVP                  4       9  d   V P                  V P                  3VR&   VP                  ! V/ VB  R# )a  Write to image file using Pillow.

An intermediate PIL Image is created, and its "save" method is used
to store the image. See Pillow documentation to learn about the
meaning of possible positional and keyword parameters.
Use this when other output formats are desired.
rï  N)r|  rˆ  rò  ró  r"  )r&   r  r  r2  s   &*, r'   Úpil_saveÚPixmap.pil_saveÖ5  sE   € ð �n‰nÓˆà˜Ÿ™›Ô%Ø!ŸY™Y¨¯	©	Ð2ˆF�5‰Mà�Š�$Ð!˜&Ô!r)   c                óø   € \         P                  ! 4       pV P                  4       pRVP                  4       9  d   V P                  V P
                  3VR&   VP                  ! V.VO5/ VB  VP                  4       # )a  Convert to an image in memory using Pillow.

An intermediate PIL Image is created, and its "save" method is used
to store the image. See Pillow documentation to learn about the
meaning of possible positional or keyword parameters.
Use this when other output formats are desired.
rï  )r;   rª  r|  rˆ  rò  ró  r"  rÄ  )r&   r  r  Ú	bytes_outr2  s   &*,  r'   Úpil_tobytesÚPixmap.pil_tobyteså5  sd   € ô —J’J“Lˆ	Ø�n‰nÓˆà˜Ÿ™›Ô%Ø!ŸY™Y¨¯	©	Ð2ˆF�5‰Mà�Š�Ð,˜TÒ, VÒ,Ø×!Ñ!Ó#Ð#r)   c                ó0  € \         '       d,   \        P                  ! V P                  P                  W4      #  V^ 8  gP   WP                  P                  P
                  8¼  g,   V^ 8  g%   W P                  P                  P                  8¼  d   \        \        \        4       V P                  P                  P                  pV P                  P                  P                  pWB,          W1,          ,           p\        V P                  WUV,            4      pV# )zPGet color tuple of pixel (x, y).
Last item is the alpha if Pixmap.alpha is true.)r  r   Úpixmap_pixelrÄ   rÌ   r   r"  rÁ  ÚMSG_PIXEL_OUTSIDErª	  rG   rñ  rµ   Ú
samples_mv)r&   ri  rj  rG   rñ  rg  rI   s   &&&    r'   r:  ÚPixmap.pixelö5  sÃ   € ÷ ‹;Ü×%Ò% d§i¡i×&:Ñ&:¸AÓAÐAØØ�q”5ØŸ	™	×,Ñ,×.Ñ.Ô.Ø�q”5ØŸ	™	×,Ñ,×.Ñ.Ô.äÔ%Ô'7Ô8Ø�I‰I× Ñ ×"Ñ"ˆØ—‘×%Ñ%×,Ñ,ˆØ�J˜�ÕˆÜ�T—_‘_ a¨1­Ð-Ó.ˆØˆ
r)   c               ó   € V ^8„  d   QhRR/# )r†  rs  r  r,   )rþ  s   "r'   rÿ  ÚPixmap.__annotate__	6  s   € ÷ ñ �uñ r)   c                	ó0   € V P                   p\        V4      # r+   )rˆ  r  )r&   Úmvs   & r'   r  ÚPixmap.samples6  s   € à�_‰_ˆÜ�b‹zÐr)   c                ó€   € V P                   f&   \        P                  ! V P                  4      V n         V P                   # )z
Pixmap samples memoryview.
)rß  r£   rð  rÄ   r-   s   &r'   rˆ  ÚPixmap.samples_mv6  s3   € ð ×ÑÒ#Ü$×AÒAÀ$Ç)Á)ÓLˆDÔØ×ÑÐr)   c                	ób   € V P                   '       d   V P                   P                  4        R # R # r+   ©rß  Úreleaser-   s   &r'   Ú_samples_mv_releaseÚPixmap._samples_mv_release6  ó%   € Ø××ÐØ×Ñ×$Ñ$Ö&ñ r)   c                	óB   € \         P                  ! V P                  4      # r+   )r£   Úfz_pixmap_samples_intrÄ   r-   s   &r'   Úsamples_ptrÚPixmap.samples_ptr6  s   € ä×*Ò*¨4¯9©9Ó5Ð5r)   c                ó  € R^R^R^R^R^R^R^R^R	^R
^/
p\        V4      \        J d   M<\        VR4      '       d   \        V4      pM\        VR4      '       d   VP                  pVf+   \        P
                  P                  V4      w  rVVR,          pVP                  VP                  4       R4      pVf)   \        RV R\        VP                  4       4       24      hV P                  '       d   VR9   d   \        RV R24      hV P                  '       d2   V P                  P                  ^8”  d   VR9   d   \        RV R24      hV^8X  d'   V P                  V P                   V P"                  4       V P%                  WV4      # )zÒOutput as image in format determined by filename extension.

Args:
    output: (str) only use to overrule filename extension. Default is PNG.
            Others are JPEG, JPG, PNM, PGM, PPM, PBM, PAM, PSD, PS.
rå  ÚpnmÚpgmÚppmÚpbmÚpamÚpsdÚpsÚjpgÚjpegr§  r   Nr‰	  úImage format ú not in rí   z' cannot have alphaúunsupported colorspace for '©r†  r  é   ©r™  r†  rš  )rÈ   ræ  r=   r   rh   r   Úsplitextr:   rç  rÃ   rµ   rˆ  rñ  rð  rG   rí  rò  ró  r)  )r&   rj   r4
  r  Úvalid_formatsr@  rå  rë  s   &&&&    r'   r"  ÚPixmap.save"6  sk  € ð �qØ�qØ�qØ�qØ�qØ�qØ�qØ�aØ�qØ˜ðˆô �‹>œSÓ ØÜ�X˜z×*Ò*Ü˜8“}‰HÜ�X˜v×&Ò&Ø—}‘}ˆHØŠ>Ü—W‘W×%Ñ% hÓ/‰FˆAØ˜•WˆFà×Ñ §¡£°Ó5ˆØŠ;Ü˜}¨V¨H°H¼UÀ=×CUÑCUÓCWÓ=XÐ<YÐZÓ[Ð[Ø�:�:ˆ:˜# Ô*Ü˜q  Ð(;Ð<Ó=Ð=Ø�?�?ˆ?˜tŸ™×0Ñ0°1Ô4¸À	Ô9IÜÐ;¸F¸8À1ÐEÓFÐFØ�!Œ8Ø�L‰L˜Ÿ™ D§I¡IÔ.Ø�~‰~˜h¨[Ó9Ð9r)   c                óÔ  € V P                   p^ p^ pVP                  4       ^ 8X  d   \        \        4      h\        P
                  ! V4      p\        P                  ! V4      p	\        P                  ! V4      p
Wš,          V^,           ,          p. ROp. ROp^ p^ pV'       dM   \        V\        \        34      '       d1   \        V4      V8X  d!   \        V4       F  pVV,          VV&   K  	  ^pV'       dM   \        V\        \        34      '       d1   \        V4      V8X  d!   \        V4       F  pVV,          VV&   K  	  ^p\        4       p^ pV'       dV   \        V\        \        34      '       d   Tp\        V4      pMQ R\        T4       24       hVWš,          8  d   \        R4      h \        P                   ! VVVV\        P"                  ! V4      VP$                  VVVV4
       R# )aq  Set alpha channel to values contained in a byte array.
If omitted, set alphas to 255.

Args:
    alphavalues: (bytes) with length (width * height) or 'None'.
    premultiply: (bool, True) premultiply colors with alpha values.
    opaque: (tuple, length colorspace.n) this color receives opacity 0.
    matte: (tuple, length colorspace.n)) preblending background color.
z!unexpected type for alphavalues: zbad alpha valuesN©rx   rx   rx   rx   )rÄ   rñ  rÃ   rç  r£   rë  rì  rí  r@   r´   rµ   r9   rS  r  r©  rÈ   ÚPixmap_set_alpha_helperr»  rÌ   ró  rò  )r&   ÚalphavaluesÚpremultiplyÚopaqueÚmatterõ  rñ  r‹  rG   r   r"  Úbalenr  r  Úzero_outÚbgroundrg  rË  Údata_lenrô  rŒ  Údata_fixÚ	fz_mul255s   &&&&&                  r'   Ú	set_alphaÚPixmap.set_alphaK6  sœ  € ð �i‰iˆØˆØˆØ�9‰9‹;˜!ÔÜœoÓ.Ð.Ü×%Ò% cÓ*ˆÜ×!Ò! #Ó&ˆÜ×"Ò" 3Ó'ˆØ•˜˜1�•ˆÚˆÚˆØˆØˆß”j ¬$´¨×7Ò7¼CÀ»KÈ1Ô<LÜ˜1–X�Ø" 1�I��q“	ñ àˆHß”Z ¬´¨×6Ò6¼3¸u»:È¼?Ü˜1–X�Ø" 1�X�˜“
ñ àˆGÜ‹wˆØˆßô ˜+¬¬yÐ'9×:Ò:Ø"�Ü˜{Ó+‘àQÐ=¼dÀ;Ó>OÐ=PÐQÓQ�qØ˜!�%ÔÜ Ð"4Ó5Ð5Øä×)Ò)ØØØØÜ×,Ò,¨dÓ3Ø—N‘NØØØØör)   c                ó  € R^R^R^R^R^R^R^R^R	^R
^R^R^/pVP                  VP                  4       R4      pVf)   \        RV R\        VP	                  4       4       24      hV P
                  '       d   VR9   d   \        R4      hV P                  '       d2   V P                  P                  ^8”  d   VR9   d   \        RV R24      hV^8X  d'   V P                  V P                  V P                  4       V P                  WB4      pV# )z1
Convert to binary image stream of desired type.
rå  rœ  r�  rž  rŸ  r   ÚtgaÚtpicr¡  r¢  r£  r¤  Nr¥  r¦  z'{output}' cannot have alphar§  rí   r¨  rª  )r:   rç  rÃ   rµ   rˆ  rñ  rð  rG   rí  rò  ró  r   )r&   r4
  r  r¬  rë  r  s   &&&   r'   rè  ÚPixmap.tobytesª6  s  € ð
 �qØ�qØ�qØ�qØ�qØ�qØ�qØ˜Ø�qØ�aØ�qØ˜ðˆð ×Ñ §¡£°Ó5ˆØŠ;Ü˜}¨V¨H°H¼UÀ=×CUÑCUÓCWÓ=XÐ<YÐZÓ[Ð[Ø�:�:ˆ:˜# Ô*ÜÐ;Ó<Ð<Ø�?�?ˆ?˜tŸ™×0Ñ0°1Ô4¸À	Ô9IÜÐ;¸F¸8À1ÐEÓFÐFØ�!Œ8Ø�L‰L˜Ÿ™ D§I¡IÔ.Ø—‘˜sÓ0ˆØˆr)   c                ó^   € V P                   pWP                  n        W#P                  n        R# )z"Set resolution in both dimensions.N)rÄ   rÌ   rò  ró  )r&   rò  ró  rS  s   &&& r'   rí  ÚPixmap.set_dpiÈ6  s   € à�Y‰YˆØ!�‰ÔØ!�‰Ör)   c                ó^   € V P                   pWP                  n        W#P                  n        R# )zSet top-left coordinates.N)rÄ   rÌ   ri  rj  )r&   ri  rj  rS  s   &&& r'   Ú
set_originÚPixmap.set_originÎ6  s   € à�Y‰YˆØ�‰ŒØ�‰Žr)   c                óœ  € \         '       d-   \        P                  ! V P                  P                  WV4      # V P                  p\        V^ VP                  4       ^,
          4      '       d)   \        V^ VP                  4       ^,
          4      '       g   \        \        4      hVP                  4       p\        V4       F-  pW6,          p\        V^ ^ÿ4      '       d   K   \        \        4      h	  \        P                  ! V4      pW‚,          WQ,          ,           p \        T4       F!  pTP#                  Yv,           Y6,          4       K#  	  R# )zSet color of pixel (x, y).N)r  r   Ú	set_pixelrÄ   rÌ   rÕ  r   r"  rÃ   r‡  rG   rS  ÚMSG_BAD_COLOR_SEQr£   r  rà  rˆ  rò  )	r&   ri  rj  rp  rS  rG   rŒ  rg  rñ  s	   &&&&     r'   rÇ  ÚPixmap.set_pixelÔ6  sì   € ç‹;Ü—?’? 4§9¡9×#7Ñ#7¸¸uÓEÐEØ�Y‰YˆÜ˜˜1˜bŸd™d›f q�j×)Ò)´¸!¸QÀÇÁÃÈÅ
×1KÒ1KÜÔ/Ó0Ð0Ø�D‰D‹FˆÜ�q–ˆAØ•ˆAÜ˜A˜q #×&Ô&Ü Ô"3Ó4Ð4ñ ô ×'Ò'¨Ó,ˆØ�J˜�ÕˆØô ˜1–X�Ø×!Ñ! !¥%¨­Ö2ó r)   c                ó   € V P                   pVP                  4       p. p\        V4       F>  pW&,          p\        V^ ^ÿ4      '       g   \	        \
        4      hVP                  V4       K@  	  \        V4      p\        W5V4      p\        V4      pV# )z Set color of all pixels in bbox.)
rÄ   rG   rS  rÕ  rÃ   rÈ  ro   rK  ÚJM_fill_pixmap_rect_with_colorrè   )	r&   r6  rp  rS  rG   rõ  rŒ  rg  r¦   s	   &&&      r'   rê  ÚPixmap.set_rectí6  s|   € à�Y‰YˆØ�D‰D‹FˆØˆÜ�q–ˆAØ•ˆAÜ˜A˜q #×&Ò&Ü Ô"3Ó4Ð4Ø�H‰H�QŽKñ	 ô
   Ó%ˆÜ*¨2°$Ó7ˆÜ�!‹WˆØˆ	r)   c                óž   € V^8  d   \        R4       R# \        P                  ! V P                  V4       RV n        V P                  4        R# )z_Divide width and height by 2**factor.
E.g. factor=1 shrinks to 25% of original size (in place).zignoring shrink factor < 1N)r  r£   Úfz_subsample_pixmaprÄ   rà  r”  )r&   Úfactors   &&r'   ÚshrinkÚPixmap.shrinkü6  s?   € ð �AŒ:ÜÐ8Ô9ÙÜ×!Ò! 4§9¡9¨fÔ5à ˆÔØ× Ñ Ö"r)   c                óB   € \         P                  ! V P                  4      # )zPixmap size.)r£   Úfz_pixmap_sizerÄ   r-   s   &r'   rÉ  ÚPixmap.size7  s   € ô ×$Ò$ d§i¡iÓ0Ð0r)   c                ó6   € V P                   P                  4       # )z%Length of one image line (width * n).)rÄ   rñ  r-   s   &r'   rñ  ÚPixmap.stride7  s   € ð �y‰y×ÑÓ!Ð!r)   c                ó¸   € V P                   '       d   V P                   P                  ^8”  d   \        R4       R# \        P                  ! V P
                  W4      # )z/Tint colors with modifiers for black and white.z(warning: colorspace invalid for functionN)rð  rG   rv   r£   Úfz_tint_pixmaprÄ   )r&   ÚblackÚwhites   &&&r'   Ú	tint_withÚPixmap.tint_with7  s?   € à��ˆ $§/¡/×"3Ñ"3°aÔ"7ÜÐ>Ô?ÙÜ×#Ò# T§Y¡Y°Ó=Ð=r)   c                óB   € \         P                  ! V P                  4      # )z
The width.)r£   rì  rÄ   r-   s   &r'   r   ÚPixmap.w7  rB  r)   c                ó  € VP                   '       g   \        R4      h\        V4      pVP                  VP                  VP
                  VP                  .p\        P                  ! V P                  WRV4      p\        V4      # )z!Return pixmap from a warped quad.zquad must be convex)Ú	is_convexrÃ   r_  rû  r×  rÖ  rÕ  r£   Úfz_warp_pixmaprÄ   rì  )r&   rM  rˆ  r3  rc  rI  rœ  s   &&&&   r'   ÚwarpÚPixmap.warp7  s`   € à�~�~ˆ~¤ZÐ0EÓ%FÐFÜ˜DÓ!ˆØ—4‘4˜Ÿ™˜qŸt™t Q§T¡TÐ*ˆÜ×"Ò" D§I¡I¨v¸fÓEˆÜ�s‹|Ðr)   c                óB   € \         P                  ! V P                  4      # )zx component of Pixmap origin.)r£   Úfz_pixmap_xrÄ   r-   s   &r'   ri  ÚPixmap.x%7  ó   € ô × Ò  §¡Ó+Ð+r)   c                ó6   € V P                   P                  4       # )zResolution in x direction.)rÄ   rò  r-   s   &r'   rò  ÚPixmap.xres*7  ó   € ð �y‰y�~‰~ÓÐr)   c                óB   € \         P                  ! V P                  4      # )zy component of Pixmap origin.)r£   Úfz_pixmap_yrÄ   r-   s   &r'   rj  ÚPixmap.y/7  rç  r)   c                ó6   € V P                   P                  4       # )zResolution in y direction.)rÄ   ró  r-   s   &r'   ró  ÚPixmap.yres47  rê  r)   c                	ób   € V P                   '       d   V P                   P                  4        R # R # r+   r’  r-   s   &r'   r[  ÚPixmap.__del__<7  r–  r)   )rà  rß  rÄ   r<  rŒ   r+   )r™  NN)TÚengN)Né_   )Nr™  NN)rå  ró  )7r/   r0   r1   r2   r‘   rÖ  rï   r   r)  r{  rñ  ré  r5  r<  rð  r8  rì  rH  r"  rO  r  rW  r`  rG   rq  rt  r|  r  rƒ  r:  r  rˆ  r”  r™  r"  r»  rè  rí  rÄ  rÇ  rê  rÐ  rÉ  rñ  rÛ  r   râ  ri  rò  rj  ró  rˆ  r3  r[  r3   r,   r)   r'   rì  rì  Ë3  s  † òV#òpòCòò*Fð ñ0ó ð0ôVôô+ð ñó ðòið ñó ðò
1ð ñ1ó ð1ôð ñ&ó ð&ð
 ñ9ó ð9ð ñó ðð* ñ
5ó ð
5ô&ô*ò*ò*"ò$ò"ð$ ôó ðð ñ
 ó ð
 ò'ð ñ6ó ð6ô':ôR]ô~ò<"òò3ò2ò	#ð ñ1ó ð1ð ñ"ó ð"ò>ð ñ0ó ð0òð ñ,ó ð,ð ñ ó ð ð ñ,ó ð,ð ñ ó ð ð €EØ€Fö'r)   rì  c                  ó¶   € ] tR tRtR tR tR tR tR tR t	RR	R
R	/R lt
R tR tR tR tR tR tR tR tR t]R 4       tR tR t]R 4       t]t]tRtR	# )r)  iA7  c                	ó¨   € \         P                  ! V P                  V P                  ,          V P                  V P                  ,          ,           4      # r+   )rá  râ  ri  rj  r-   s   &r'   rå  ÚPoint.__abs__C7  s.   € Ü�yŠy˜Ÿ™ $§&¡&�¨4¯6©6°D·F±F­?Õ:Ó;Ð;r)   c                	ó0  € \        VR 4      '       d/   \        V P                  V,           V P                  V,           4      # \	        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,           V P                  V^,          ,           4      # ©r•  úPoint: bad seq len©r=   r)  ri  rj  r9   rÃ   ©r&   r²  s   &&r'   rî  ÚPoint.__add__F7  óh   € Ü�1�k×"Ò"Ü˜Ÿ™ !� T§V¡V¨a¥ZÓ0Ð0Üˆq‹6�QŒ;ÜÐ1Ó2Ð2Ü�T—V‘V˜a �d•] D§F¡F¨Q¨q­T¥MÓ2Ð2r)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  rò  r-   s   &r'   ré   ÚPoint.__bool__M7  rô  r)   c                	óp   € \        VR 4      '       g   R# \        V4      ^8H  ;'       d    W,
          '       * # rö  r÷  rû  s   &&r'   rø  ÚPoint.__eq__P7  s,   € Ü�q˜)×$Ò$ÙÜ�1‹v˜‰{×-Ð- D¥Hœ~Ð-r)   c                	ó@   € V P                   V P                  3V,          # r+   ©ri  rj  r•  s   &&r'   rŒ  ÚPoint.__getitem__U7  s   € Ø—‘˜Ÿ™Ð Õ"Ð"r)   c                	ó*   € \        \        V 4      4      # r+   ©rS  rµ   r-   s   &r'   rT  ÚPoint.__hash__X7  ó   € Ü”E˜$“KÓ Ð r)   ri  Nrj  c               óÒ  € V'       g   RV n         RV n        EM8\        V4      ^8”  d   \        R4      h\        V4      ^8X  d0   \	        V^ ,          4      V n         \	        V^,          4      V n        MÞ\        V4      ^8X  dÄ   V^ ,          p\        V\        P                  \        P                  34      '       d$   VP                   V n         VP                  V n        Mr\        VR4      '       g   \        R4      h\        V4      ^8w  d   \        R4      h\	        V^ ,          4      V n         \	        V^,          4      V n        M\        R4      hVe   Wn         Ve	   W n        R# R# )zž
Point() - all zeros
Point(x, y)
Point(Point) - new copy
Point(sequence) - from 'sequence'

Explicit keyword args x, y override earlier settings if not None.
rÓ  rù  rŒ  zPoint: bad argsN)
ri  rj  r9   rÃ   rœ  r@   r£   rg  Úfz_pointr=   )r&   ri  rj  r  rX  s   &$$* r'   r‘   ÚPoint.__init__[7  s  € ÷ ØˆDŒFØˆDŽFÜ�‹Y˜Œ]ÜÐ1Ó2Ð2Ü�‹Y˜!Œ^Ü˜4 �7“^ˆDŒFÜ˜4 �7“^ˆD�FÜ�‹Y˜!Œ^Ø�Q•ˆAÜ˜!œeŸm™m¬U¯^©^Ð<×=Ò=ØŸ™�”ØŸ™�•ä˜q -×0Ò0Ü$Ð%6Ó7Ð7Ü�q“6˜Q”;Ü$Ð%9Ó:Ð:Ü˜q �t›�”Ü˜q �t›�•äÐ1Ó2Ð2ØŠ= QœFØŠ= QžF‰=r)   c                	ó   € ^# ©r†  r,   r-   s   &r'   rÖ  ÚPoint.__len__}7  r  r)   c                	óp  € \        VR 4      '       d/   \        V P                  V,          V P                  V,          4      # \        VR4      '       dJ   \	        V4      ^8X  d:   V P                  V^ ,          ,          V P                  V^,          ,          ,           # \        V 4      pVP                  V4      # )r•  rŒ  )r=   r)  ri  rj  r9   r  )r&   r‹  r²  s   && r'   r  ÚPoint.__mul__€7  s}   € Ü�1�k×"Ò"Ü˜Ÿ™ !� T§V¡V¨a¥ZÓ0Ð0Ü�1�m×$Ò$¬¨Q«°1¬à—6‘6˜A˜a�D•= 4§6¡6¨A¨a­D¥=Õ0Ð0Ü�$‹KˆØ�{‰{˜1‹~Ðr)   c                	óF   € \        V P                  ) V P                  ) 4      # r+   )r)  ri  rj  r-   s   &r'   r  ÚPoint.__neg__‰7  s   € Ü�d—f‘f�W˜tŸv™v˜gÓ&Ð&r)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  rò  r-   s   &r'   r  ÚPoint.__nonzero__Œ7  rô  r)   c                	ó   € \        V 4      # r+   ©r)  r-   s   &r'   r  ÚPoint.__pos__�7  rq  r)   c                	ó8   € R \        \        V 4      4      ,           # r  r  r-   s   &r'   rï   ÚPoint.__repr__’7  ó   € ØœœU 4›[Ó)Õ)Ð)r)   c                	ój   € \        V4      pV^ 8X  d	   W n        R# V^8X  d	   W n        R# \        R4      hr"  )rœ  ri  rj  r¤  r#  s   &&&r'   r$  ÚPoint.__setitem__•7  s;   € Ü�!‹HˆØ�!ŒV˜a”Vñ ð �!ŒV˜a”Vñ ô Ð1Ó2Ð2r)   c                	ó0  € \        VR 4      '       d/   \        V P                  V,
          V P                  V,
          4      # \	        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,
          V P                  V^,          ,
          4      # rø  rú  rû  s   &&r'   r'  ÚPoint.__sub__�7  rý  r)   c                	ó   € \        VR 4      '       d=   \        V P                  R,          V,          V P                  R,          V,          4      # \	        V4      ^,          pV'       g   \        R4      h\        V 4      pVP                  V4      # r*  )r=   r)  ri  rj  r+  r,  r  )r&   r‹  r  r²  s   &&  r'   r.  ÚPoint.__truediv__¤7  si   € Ü�1�k×"Ò"Ü˜Ÿ™ "� Q�¨¯©°­°A­Ó6Ð6Ü Ó" 1Õ%ˆßÜ#Ð$;Ó<Ð<Ü�$‹KˆØ�{‰{˜2‹Ðr)   c                óZ  € V P                   V P                   ,          V P                  V P                  ,          ,           pV\        8  d   \        ^ ^ 4      # \        P
                  ! V4      p\        \        V P                   4      V,          \        V P                  4      V,          4      # )z&Unit vector with positive coordinates.)ri  rj  r8  r)  rá  râ  r,  ©r&   rŸ  s   & r'   Úabs_unitÚPoint.abs_unit­7  sk   € ð �F‰F�T—V‘V�O˜dŸf™f t§v¡v�oÕ-ˆØŒwŒ;Ü˜˜1“:ÐÜ�IŠI�a‹LˆÜ”S˜Ÿ™“[ 1•_¤c¨$¯&©&£k°A¥oÓ6Ð6r)   c                óÐ  € \        V4      ^ 8”  g   \        R4      hV^ ,          p\        V4      ^8X  d   \        V4      pM'\        V4      ^8X  d   \        V4      pM\        R4      h\        V4      ^8”  d   V^,          pMRpRRRR	RR
RR/pWC,          ^ ,          WC,          ^,          ,          p\	        V4      \        J d   \        W,
          4      V,          # \        VP                  VP                  4      pWbP                  ,          pW9   d   R# V P                  VP                  8”  d“   V P                  VP                  8¼  d   V P                  VP                  V4      # V P                  VP                  8:  d   V P                  VP                  V4      # V P                  VP                  ,
          V,          # VP                  V P                  u;8:  d   VP                  8:  dg   M McV P                  VP                  8¼  d%   V P                  VP                  ,
          V,          # VP                  V P                  ,
          V,          # V P                  VP                  8¼  d   V P                  VP                   V4      # V P                  VP                  8:  d   V P                  VP                  V4      # VP                  V P                  ,
          V,          # )z.Return distance to rectangle or another point.z$at least one parameter must be givenz$arg1 must be point-like or rect-likerà  ÚinÚcmÚmmrÓ  )rÔ  rÔ  ©rÔ  ç      R@©gR¸…ëQ@r*  ©gffffff9@r*  )r9   rÃ   r)  r+  rÈ   r,  Útop_leftÚbottom_rightri  r´  rj  r¶  Údistance_tor·  Ú	top_rightrµ  Úbottom_left)r&   r  ri  ÚunitÚur  r$  s   &*     r'   r/  ÚPoint.distance_to¶7  s  € ä�4‹y˜1Œ}ÜÐCÓDÐDà��GˆÜˆq‹6�QŒ;Ü�a“‰AÜ�‹V�qŒ[Ü�Q“‰AäÐCÓDÐDäˆt‹9�qŒ=Ø˜•7‰DàˆDØ�7˜D (¨D°+Ø�;ð ˆà�G�A�J˜� �Õ#ˆä�‹7”eÓÜ�t•x“= 1Õ$Ð$ô �—‘˜QŸZ™ZÓ(ˆØ—‘ÕˆØŒ9ÙØ�6‰6�A—D‘DŒ=Ø�v‰v˜Ÿ™Œ~Ø×'Ñ'¨¯©¸Ó=Ð=Ø—‘˜1Ÿ4™4”Ø×'Ñ'¨¯©°TÓ:Ð:àŸ™ §¡�¨Õ*Ð*Ø�T‰T�T—V‘VÖ#˜qŸt™t×#Ø�v‰v˜Ÿ™Œ~ØŸ™ §¡�¨Õ*Ð*àŸ™˜tŸv™v�¨Õ*Ð*à�v‰v˜Ÿ™Œ~Ø×'Ñ'¨¯©°tÓ<Ð<Ø—‘˜1Ÿ4™4”Ø×'Ñ'¨¯
©
°DÓ9Ð9àŸ™˜tŸv™v�¨Õ*Ð*r)   c                ól   € \        V4      ^8w  d   \        R4      h\        W4      w  V n        V n        V # )z7Replace point by its transformation with matrix-like m.rë  )r9   rÃ   Úutil_transform_pointri  rj  rí  s   &&r'   r  ÚPoint.transformè7  s0   € äˆq‹6�QŒ;ÜÐ2Ó3Ð3Ü-¨dÓ6‰ˆŒ�”Øˆr)   c                ó6  € V P                   V P                   ,          V P                  V P                  ,          ,           pV\        8  d   \        ^ ^ 4      # \        P
                  ! V4      p\        V P                   V,          V P                  V,          4      # )zUnit vector of the point.)ri  rj  r8  r)  rá  râ  r"  s   & r'   r2  Ú
Point.unitï7  sc   € ð �F‰F�T—V‘V�O˜dŸf™f t§v¡v�oÕ-ˆØŒwŒ;Ü˜˜1“:ÐÜ�IŠI�a‹LˆÜ�T—V‘V˜a•Z §¡¨!¥Ó,Ð,r)   r  )r/   r0   r1   r2   rå  rî  ré   rø  rŒ  rT  r‘   rÖ  r  r  r  r  rï   r$  r'  r.  r{  r#  r/  r  r2  rN  rO  r3   r,   r)   r'   r)  r)  A7  s    † ò<ò3ò1ò.ò
#ò!ð ' ð  '¨ô  'òDòò'ò1òò*òò3òð ñ7ó ð7ò0+òdð ñ-ó ð-ð €GØ„Dr)   r)  c                  ó  € ] tR tRtR tR tR tR tR tR t	R t
R	R
RR
RR
RR
/R ltR tR tR tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       tR t]R 4       tR t]t]! R 4      t]! R  4      tR!t R
# )"r)  iü7  c                	óÌ   € V P                   '       d   R # \        V P                  V P                  ,
          4      \        V P                  V P                  ,
          4      ,          # ©rÓ  )rº  r,  rû  r×  rÕ  r-   s   &r'   rå  ÚQuad.__abs__þ7  s=   € Ø�=�=ˆ=ÙÜ�4—7‘7˜TŸW™WÕ$Ó%¬¨D¯G©G°d·g±gÕ,=Ó(>Õ>Ð>r)   c                	óÜ  € \        VR 4      '       dS   \        V P                  V,           V P                  V,           V P                  V,           V P
                  V,           4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,           V P                  V^,          ,           V P                  V^,          ,           V P
                  V^,          ,           4      # ©r•  úQuad: bad seq len©r=   r)  rû  r×  rÕ  rÖ  r9   rÃ   ©r&   rc  s   &&r'   rî  ÚQuad.__add__8  ó™   € Ü�1�k×"Ò"Ü˜Ÿ™ !� T§W¡W¨q¥[°$·'±'¸Aµ+¸t¿w¹wÈ½{ÓKÐKÜˆq‹6�QŒ;ÜÐ0Ó1Ð1Ü�D—G‘G˜a �d•N D§G¡G¨a°­d¥N°D·G±G¸aÀ½dµNÀDÇGÁGÈaÐPQÍdÅNÓSÐSr)   c                	ó$   € V P                   '       * # r+   ©rº  r-   s   &r'   ré   ÚQuad.__bool__
8  ó   € Ø—=‘=Ô Ð r)   c                	óä  €  VP                  4       pT^8X  d   \	        Y4      # T^8w  d   R# \        T4      '       dL   \        T4      P                  '       d   R# \	        TR,          T 4      ;'       d    \	        TR,          T 4      # \        T4      '       d0   \        ^4       F  p\	        Y,          T 4      '       d   K   R# 	  R# R#   \         d    \        ^8”  d   \        4         R# i ; i)r™  FTr…  r+  )
rÖ  rk   r  r{   Úutil_point_in_quadÚ	CheckRectr+  rº  Ú	CheckQuadrS  )r&   ri  rX  rg  s   &&  r'   r|  ÚQuad.__contains__8  sÄ   € ð	Ø—	‘	“ˆAð �Œ6Ü% aÓ.Ð.Ø�Œ6ÙÜ�Q�<Š<Ü�A‹w××ÐÙÜ% a¨¥e¨TÓ2×VÐVÔ7IÈ!ÈBÍ%ÐQUÓ7VÐVÜ�Q�<Š<Ü˜1–X�Ü)¨!­$°×5Ô5Ú ñ ñ Ùøô! ô 	Ü# aÔ'¬NÔ,<Úð	ús   ‚C Ã C/Ã.C/c                	ó6  € \        VR 4      '       g   R# \        V4      ^8H  ;'       dq    V P                  V^ ,          8H  ;'       dS    V P                  V^,          8H  ;'       d5    V P                  V^,          8H  ;'       d    V P
                  V^,          8H  # rö  )r=   r9   rû  r×  rÕ  rÖ  )r&   rM  s   &&r'   rø  ÚQuad.__eq__"8  sŒ   € Ü�t˜Y×'Ò'ÙÜ�4‹y˜A‰~÷ 
ð 
Ø�G‰G�t˜A•wÑ÷ ð Ø�G‰G�t˜A•wÑ÷ð à�G‰G�t˜A•wÑ÷ð ð �G‰G�t˜A•wÑð		
r)   c                	ól   € V P                   V P                  V P                  V P                  3V,          # r+   )rû  r×  rÕ  rÖ  r•  s   &&r'   rŒ  ÚQuad.__getitem__,8  ó&   € Ø—‘˜Ÿ™ $§'¡'¨4¯7©7Ð3°AÕ6Ð6r)   c                	ó*   € \        \        V 4      4      # r+   r  r-   s   &r'   rT  ÚQuad.__hash__/8  r  r)   rû  Nr×  rÕ  rÖ  c               óâ  € V'       g'   \        4       ;V n        ;V n        ;V n        V n        EMn\        V4      ^8”  d   \        R4      h\        V4      ^8X  d,   \        \         V4      w  V n        V n        V n        V n        EM\        V4      ^8X  dþ   V^ ,          p\        V\        P                  4      '       ds   W`n        \        VP                  4      \        VP                  4      \        VP                  4      \        VP                  4      3w  V n        V n        V n        V n        Mm\        VR4      '       g   \        R4      h\        V4      ^8w  d   \        R4      h\        \         V4      w  V n        V n        V n        V n        M\        R4      hVe   \        V4      V n        Ve   \        V4      V n        Ve   \        V4      V n        Ve   \        V4      V n        R# R# )z´
Quad() - all zero points
Quad(ul, ur, ll, lr)
Quad(quad) - new copy
Quad(sequence) - from 'sequence'

Explicit keyword args ul, ur, ll, lr override earlier settings if not
None.

r@  rŒ  zQuad: bad argsN)r)  rû  r×  rÕ  rÖ  r9   rÃ   r  r@   r£   ÚFzQuadrÄ   r=   )r&   rû  r×  rÕ  rÖ  r  rX  s   &$$$$* r'   r‘   ÚQuad.__init__28  sk  € ÷ Ü49³GÐ;ˆDŒGÐ;�d”gÐ; ¤¨$®'Ü�‹Y˜Œ]ÜÐ0Ó1Ð1Ü�‹Y˜!Œ^Ü14´U¸DÓ1AÑ.ˆDŒG�T”W˜dœg t¦wÜ�‹Y˜!Œ^Ø�Q•ˆAÜ˜!œUŸ\™\×*Ò*Ø”	Ü5:¸1¿4¹4³[Ä%ÈÏÉÃ+ÌuÐUV×UYÑUYË{Ô\aÐbc×bfÑbfÓ\gÐ5gÑ2�”˜œ $¤'¨4­7Ü˜Q ×.Ò.Ü Ð!1Ó2Ð2Ü�Q“˜1”Ü Ð!4Ó5Ð5ä58¼À³]Ñ2�”˜œ $¤'¨4­7äÐ-Ó.Ð.ØŠ>¤e¨B£i˜DœGØŠ>¤e¨B£i˜DœGØŠ>¤e¨B£i˜DœGØŠ>¤e¨B£i˜DžG‰>r)   c                	ó   € ^# ©rš  r,   r-   s   &r'   rÖ  ÚQuad.__len__U8  r  r)   c                	ó>   € \        V 4      pVP                  V4      pV# r+   )r)  r  )r&   r‹  rc  s   && r'   r  ÚQuad.__mul__X8  s   € Ü�‹JˆØ�K‰K˜‹NˆØˆr)   c                	óv   € \        V P                  ) V P                  ) V P                  ) V P                  ) 4      # r+   )r)  rû  r×  rÕ  rÖ  r-   s   &r'   r  ÚQuad.__neg__]8  ó+   € Ü�T—W‘W�H˜tŸw™w˜h¨¯©¨°4·7±7°(Ó;Ð;r)   c                	ó$   € V P                   '       * # r+   rF  r-   s   &r'   r  ÚQuad.__nonzero__`8  rH  r)   c                	ó   € \        V 4      # r+   ©r)  r-   s   &r'   r  ÚQuad.__pos__c8  ó   € Ü�D‹zÐr)   c                	ó8   € R \        \        V 4      4      ,           # rc  r  r-   s   &r'   rï   ÚQuad.__repr__f8  ó   € ØœœE $›KÓ(Õ(Ð(r)   c                	óà   € V^ 8X  d   \        V4      V n        R# V^8X  d   \        V4      V n        R# V^8X  d   \        V4      V n        R# V^8X  d   \        V4      V n        R# \        R4      hr"  )r)  rû  r×  rÕ  rÖ  r¤  r#  s   &&&r'   r$  ÚQuad.__setitem__i8  sn   € Ø�!ŒVœu Q›x�T”Wñ ð �!ŒVœu Q›x�T”Wñ
 ð	 �!ŒVœu Q›x�T”Wñ ð �!ŒVœu Q›x�T”Wñ ô Ð1Ó2Ð2r)   c                	óÜ  € \        VR 4      '       dS   \        V P                  V,
          V P                  V,
          V P                  V,
          V P
                  V,
          4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,
          V P                  V^,          ,
          V P                  V^,          ,
          V P
                  V^,          ,
          4      # r?  rA  rB  s   &&r'   r'  ÚQuad.__sub__r8  rD  r)   c                	óÀ   € \        VR 4      '       d   RV,          pM%\        V4      ^,          pV'       g   \        R4      h\        V 4      pVP	                  V4      pV# )r•  rÔ  zMatrix not invertible)r=   r+  r,  r)  r  )r&   r‹  r�  rc  s   &&  r'   r.  ÚQuad.__truediv__y8  sQ   € Ü�1�k×"Ò"Ø�a•‰Bä# AÓ& qÕ)ˆBßÜ'Ð(?Ó@Ð@Ü�‹JˆØ�K‰K˜‹OˆØˆr)   c                ó®  € \        V P                  V P                  4      pV P                  V,          pV P                  V,          pVP
                  VP
                  ,          ^ 8”  d   R# \        V P                  V P                  4      pV P                  V,          pV P                  V,          pVP
                  VP
                  ,          ^ 8”  d   R# R# )zºCheck if quad is convex and not degenerate.

Notes:
    Check that for the two diagonals, the other two corners are not
    on the same side of the diagonal.
Returns:
    True or False.
FT)Úplanish_linerû  rÖ  rÕ  r×  rj  )r&   r‹  rJ  rK  s   &   r'   rà  ÚQuad.is_convex„8  s�   € ô ˜Ÿ™ $§'¡'Ó*ˆØ�W‰W�q�[ˆØ�W‰W�q�[ˆØ�4‰4�"—$‘$�;˜Œ?ÙÜ˜Ÿ™ $§'¡'Ó*ˆØ�W‰W�q�[ˆØ�W‰W�q�[ˆØ�4‰4�"—$‘$�;˜Œ?ÙÙr)   c                ó^   € V P                   \        8  ;'       g    V P                  \        8  # )zcCheck whether all quad corners are on the same line.

This is the case if width or height is zero.
)rˆ  r8  r3  r-   s   &r'   rº  ÚQuad.is_emptyš8  s$   € ð �z‰zœGÑ#×<Ð< t§{¡{´WÑ'<Ð<r)   c                ó.   € V P                   P                  # )z(Check whether this is the infinite quad.)rü   r¹  r-   s   &r'   r¹  ÚQuad.is_infinite¢8  s   € ð �y‰y×$Ñ$Ð$r)   c                ó¶  € \        V P                  V P                  V P                  4      p\	        V^,
          4      \
        8”  d   R# \        V P                  V P                  V P                  4      p\	        V^,
          4      \
        8”  d   R# \        V P                  V P                  V P                  4      p\	        V^,
          4      \
        8”  d   R# R# )z¿Check if quad is rectangular.

Notes:
    Some rotation matrix can thus transform it into a rectangle.
    This is equivalent to three corners enclose 90 degrees.
Returns:
    True or False.
FT)Úutil_sine_betweenrû  r×  rÖ  r,  r8  rÕ  )r&   Úsines   & r'   Úis_rectangularÚQuad.is_rectangular§8  sŽ   € ô ! §¡¨$¯'©'°4·7±7Ó;ˆÜˆt�a�x‹=œ7Ô"Ùä  §¡¨$¯'©'°4·7±7Ó;ˆÜˆt�a�x‹=œ7Ô"Ùä  §¡¨$¯'©'°4·7±7Ó;ˆÜˆt�a�x‹=œ7Ô"Ùár)   c                óÌ   € V P                   '       d   \        4       # \        ^^4      P                  VP                  VP
                  4      pW( ,          V,          V,          pV# )zKMorph the quad with matrix-like 'm' and point-like 'p'.

Return a new quad.)r¹  ÚINFINITE_QUADr  rK  ri  rj  )r&   r²  r‹  Údeltarc  s   &&&  r'   r-  Ú
Quad.morphÀ8  sP   € ð ××ÐÜ “?Ð"Ü�q˜!“×)Ñ)¨!¯#©#¨q¯s©sÓ3ˆØ�6�M˜AÕ Õ%ˆØˆr)   c                	ó2  € \        4       p\        V P                  P                  V P                  P                  V P
                  P                  V P                  P                  4      Vn        \        V P                  P                  V P                  P                  V P
                  P                  V P                  P                  4      Vn	        \        V P                  P                  V P                  P                  V P
                  P                  V P                  P                  4      Vn        \        V P                  P                  V P                  P                  V P
                  P                  V P                  P                  4      Vn        V# r+   )r+  r÷  rû  ri  r×  rÖ  rÕ  rµ  rj  r·  r'  r´  r¶  ©r&   r$  s   & r'   rü   Ú	Quad.rectÊ8  sÖ   € ä‹FˆÜ�4—7‘7—9‘9˜dŸg™gŸi™i¨¯©¯©°D·G±G·I±IÓ>ˆŒÜ�4—7‘7—9‘9˜dŸg™gŸi™i¨¯©¯©°D·G±G·I±IÓ>ˆŒÜ�4—7‘7—9‘9˜dŸg™gŸi™i¨¯©¯©°D·G±G·I±IÓ>ˆŒÜ�4—7‘7—9‘9˜dŸg™gŸi™i¨¯©¯©°D·G±G·I±IÓ>ˆŒØˆr)   c                ó*  € \        VR4      '       d   M\        V4      ^8w  d   \        R4      hV ;P                  V,          un        V ;P                  V,          un        V ;P
                  V,          un        V ;P                  V,          un        V # )z1Replace quad by its transformation with matrix m.r•  rë  )r=   r9   rÃ   rû  r×  rÕ  rÖ  rí  s   &&r'   r  ÚQuad.transformÓ8  sb   € ä�1�k×"Ò"ØÜ�‹V�qŒ[ÜÐ2Ó3Ð3Ø�Š�1��Ø�Š�1��Ø�Š�1��Ø�Š�1��Øˆr)   c                	óª   € \        \        V P                  V P                  ,
          4      \        V P                  V P
                  ,
          4      4      # r+   )r'  r,  rû  r×  rÕ  rÖ  r-   s   &r'   rê
  ÚQuad.<lambda>à8  ó/   € ¤3¤s¨4¯7©7°T·W±WÕ+<Ó'=¼sÀ4Ç7Á7ÈTÏWÉWÕCTÓ?UÔ#Vr)   c                	óª   € \        \        V P                  V P                  ,
          4      \        V P                  V P
                  ,
          4      4      # r+   )r'  r,  rû  rÕ  r×  rÖ  r-   s   &r'   rê
  r…  á8  r†  r)   )rÕ  rÖ  rÄ   rû  r×  )!r/   r0   r1   r2   rå  rî  ré   r|  rø  rŒ  rT  r‘   rÖ  r  r  r  r  rï   r$  r'  r.  r{  rà  rº  r¹  ry  r-  rü   r  rN  rˆ  r3  r3   r,   r)   r'   r)  r)  ü7  s  † ò?ò
Tò!òò*
ò7ò!ð!0 ð !0¨$ð !0°4ð !0¸Dô !0òFòò
<ò!òò)òòTò	ð ñó ðð* ñ=ó ð=ð ñ%ó ð%ð ñó ðò0ð ñó ðò
ð €GÙÑVÓW€EÙÑVÓW„Fr)   r)  c                  ó¶  € ] tR tRtR tR tR tR tR tR t	R t
R	 tR
RRRRRRRRRRR/R ltR tR tR tR tR tR tR tR tR tR t]R 4       t]R 4       tR t]R 4       tR  R! ltR" tR# tR$ tR% t ]R& 4       t!]R' 4       t"]R( 4       t#R) t$R* t%R+ t&]R, 4       t'R- t(]R. 4       t)]R/ 4       t*R0 t+R1 t,]R2 4       t-]t.]t/]t0]! ](4      t1])t2]*t3R3t4R# )4r+  iä8  c                	óÌ   € V P                   '       g   V P                  '       d   R # V P                  V P                  ,
          V P                  V P
                  ,
          ,          # r<  )rº  r¹  r´  rµ  r¶  r·  r-   s   &r'   rå  ÚRect.__abs__æ8  s>   € Ø�=�=ˆ=˜D×,×,Ð,ÙØ—‘˜$Ÿ'™'Õ! d§g¡g°·±Õ&7Õ8Ð8r)   c                	óÜ  € \        VR 4      '       dS   \        V P                  V,           V P                  V,           V P                  V,           V P
                  V,           4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,           V P                  V^,          ,           V P                  V^,          ,           V P
                  V^,          ,           4      # ©r•  úRect: bad seq len©r=   r+  rµ  r·  r´  r¶  r9   rÃ   rû  s   &&r'   rî  ÚRect.__add__ë8  rD  r)   c                	óŠ   € \        VR 4      '       g   \        R4      h\        V4      p\        V 4      pVP                  V4      # ©rÖ  zbad operand 2)r=   rÃ   r+  Ú	intersect)r&   ri  r±  r$  s   &&  r'   Ú__and__ÚRect.__and__ò8  s:   € Ü�q˜)×$Ò$Ü˜_Ó-Ð-ä�!‹WˆÜ�‹JˆØ�{‰{˜2‹Ðr)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  rò  r-   s   &r'   ré   ÚRect.__bool__ú8  rô  r)   c                	óp  € \        VR 4      '       d   V\        V 4      9   # \        V4      pV^8X  d   \        W4      # V^8X  d·   \	        4       p \        V4      pV P                  VP                  u;8*  ;'       d(    VP                  u;8*  ;'       d    V P                  8*  Mu ;'       dM    V P                  VP                  u;8*  ;'       d(    VP                  u;8*  ;'       d    V P                  8*  # u # R#   \         d.    \        ^8”  d   \        4        \        T4      P                  p LÙi ; i)r•  F)r=   rµ   r9   Úutil_is_point_in_rectÚINFINITE_RECTr+  rk   r  r{   r)  rü   rµ  r´  r·  r¶  )r&   ri  rX  r$  s   &&  r'   r|  ÚRect.__contains__ý8  sì   € Ü�1�k×"Ò"Øœ˜d›Ñ#Ð#Ü�‹FˆØ�Œ6Ü(¨Ó1Ð1Ø�Œ6Ü“ˆAð!Ü˜“G�ð —G‘G˜qŸt™t×6Ô6 q§t¡t×6Ô6¨t¯w©wÔ6÷ 7ð 7Ø—G‘G˜qŸt™t×6Ô6 q§t¡t×6Ô6¨t¯w©wÑ6ð8Ù6ð8áøô ô !Ü'¨!Ô+´Ô0@Ü˜“G—L‘L’ð!ús   ÁC= Ã=5D5Ä4D5c                	óp   € \        VR 4      '       g   R# \        V4      ^8H  ;'       d    W,
          '       * # rö  r÷  r�  s   &&r'   rø  ÚRect.__eq__9  s-   € Ü�t˜Y×'Ò'ÙÜ�4‹y˜A‰~×3Ð3 t¥{Ô"3Ð3r)   c                	ól   € V P                   V P                  V P                  V P                  3V,          # r+   ©rµ  r·  r´  r¶  r•  s   &&r'   rŒ  ÚRect.__getitem__9  rR  r)   c                	ó*   € \        \        V 4      4      # r+   r  r-   s   &r'   rT  ÚRect.__hash__9  r  r)   rˆ  NrJ  rµ  r·  r´  r¶  c               ó¶   € \        VRVRVRVRVRVRV/ w  r4rV\        V4      V n        \        V4      V n        \        V4      V n        \        V4      V n        R# )a  
Rect() - all zeros
Rect(x0, y0, x1, y1)
Rect(top-left, x1, y1)
Rect(x0, y0, bottom-right)
Rect(top-left, bottom-right)
Rect(Rect or IRect) - new copy
Rect(sequence) - from 'sequence'

Explicit keyword args p0, p1, x0, y0, x1, y1 override earlier settings
if not None.
rˆ  rJ  rµ  r·  r´  r¶  N)Úutil_make_rectrœ  rµ  r·  r´  r¶  ©r&   rˆ  rJ  rµ  r·  r´  r¶  r  s   &$$$$$$*r'   r‘   ÚRect.__init__9  s]   € ô (¨$ÐY°2ÐY¸"ÐYÀÐYÈÐYÈrÐYÐVXÑY‰ˆ�Ü˜“*ˆŒÜ˜“*ˆŒÜ˜“*ˆŒÜ˜“*ˆŽr)   c                	ó   € ^# rY  r,   r-   s   &r'   rÖ  ÚRect.__len__,9  r  r)   c                	ó  € \        VR 4      '       dS   \        V P                  V,          V P                  V,          V P                  V,          V P
                  V,          4      # \        V 4      pVP                  V4      pV# r  )r=   r+  rµ  r·  r´  r¶  r  )r&   r‹  r$  s   && r'   r  ÚRect.__mul__/9  s[   € Ü�1�k×"Ò"Ü˜Ÿ™ !� T§W¡W¨q¥[°$·'±'¸Aµ+¸t¿w¹wÈ½{ÓKÐKÜ�‹JˆØ�K‰K˜‹NˆØˆr)   c                	óv   € \        V P                  ) V P                  ) V P                  ) V P                  ) 4      # r+   )r+  rµ  r·  r´  r¶  r-   s   &r'   r  ÚRect.__neg__69  r_  r)   c                	óf   € \        V 4      \        V 4      u;8H  ;'       d    ^ 8H  '       * # u '       * # ru  rò  r-   s   &r'   r  ÚRect.__nonzero__99  rô  r)   c                	óì   € \        VR 4      '       g   \        R4      h\        V 4      p\        V4      ^8X  d   VP	                  V4      # \        V4      ^8X  d   VP                  V4      # \        R4      hr‘  )r=   rÃ   r+  r9   Úinclude_pointÚinclude_rect)r&   ri  r$  s   && r'   Ú__or__ÚRect.__or__<9  sb   € Ü�q˜)×$Ò$Ü˜_Ó-Ð-Ü�‹JˆÜˆq‹6�QŒ;Ø—?‘? 1Ó%Ð%Üˆq‹6�QŒ;Ø—>‘> !Ó$Ð$Ü˜Ó)Ð)r)   c                	ó   € \        V 4      # r+   ©r+  r-   s   &r'   r  ÚRect.__pos__F9  re  r)   c                	ó8   € R \        \        V 4      4      ,           # r´  r  r-   s   &r'   rï   ÚRect.__repr__I9  rh  r)   c                	ó¦   € \        V4      pV^ 8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# \        R4      hr"  )rœ  rµ  r·  r´  r¶  r¤  r#  s   &&&r'   r$  ÚRect.__setitem__L9  s_   € Ü�!‹HˆØ�!ŒV˜q”Wñ ð �!ŒV˜q”Wñ
 ð	 �!ŒV˜q”Wñ ð �!ŒV˜q”Wñ ô Ð1Ó2Ð2r)   c                	óÜ  € \        VR 4      '       dS   \        V P                  V,
          V P                  V,
          V P                  V,
          V P
                  V,
          4      # \        V4      ^8w  d   \        R4      h\        V P                  V^ ,          ,
          V P                  V^,          ,
          V P                  V^,          ,
          V P
                  V^,          ,
          4      # rŒ  rŽ  rû  s   &&r'   r'  ÚRect.__sub__V9  rD  r)   c                	óŽ  € \        VR 4      '       do   \        V P                  R,          V,          V P                  R,          V,          V P                  R,          V,          V P
                  R,          V,          4      # \        V4      ^,          pV'       g   \        RV 24      h\        V 4      pVP                  V4      pV# )r•  rÔ  zMatrix not invertible: )	r=   r+  rµ  r·  r´  r¶  r+  r,  r  )r&   r‹  r�  r$  s   &&  r'   r.  ÚRect.__truediv__]9  s’   € Ü�1�k×"Ò"Ü˜Ÿ™ "� Q�¨¯©°"­°Q­¸¿¹À"½ÀQ½ÈÏÉÐRTÍÐUVÍÓWÐWÜ Ó" 1Õ%ˆßÜ#Ð&=¸a¸SÐ$AÓBÐBÜ�‹JˆØ�K‰K˜‹OˆØˆr)   c                óB   € \        V P                  V P                  4      # ©zBottom-left corner.©r)  rµ  r¶  r-   s   &r'   r1  ÚRect.bottom_leftg9  ó   € ô �T—W‘W˜dŸg™gÓ&Ð&r)   c                óB   € \        V P                  V P                  4      # ©zBottom-right corner.©r)  r´  r¶  r-   s   &r'   r.  ÚRect.bottom_rightl9  rÂ  r)   c                ó$   € V P                  V4      # )z.Check if containing point-like or rect-like x.©r|  r9  s   &&r'   ÚcontainsÚRect.containsq9  ó   € à× Ñ  Ó#Ð#r)   c                	óP   € \        ^ V P                  V P                  ,
          4      # ru  ©r'  r¶  r·  r-   s   &r'   r3  ÚRect.heightu9  ó   € ä�1�d—g‘g §¡Õ'Ó(Ð(r)   c               ó   € V ^8„  d   QhRR/# ©r†  rs  rœ  r,   )rþ  s   "r'   rÿ  ÚRect.__annotate__y9  ó   € ÷ 9ñ 9 ñ 9r)   c                óD   € \        V P                  V P                  V4      # ©zUCalculate area of rectangle.
parameter is one of 'px' (default), 'in', 'cm', or 'mm'.©Ú
_rect_arearˆ  r3  rƒ  s   &*r'   Úget_areaÚRect.get_areay9  ó   € ä˜$Ÿ*™* d§k¡k°4Ó8Ð8r)   c                ó„   € \        V4      ^8w  d   \        R4      h\        W4      w  V n        V n        V n        V n        V # )zExtend to include point-like p.rù  )r9   rÃ   Úutil_include_point_in_rectrµ  r·  r´  r¶  rû  s   &&r'   r¯  ÚRect.include_point}9  s9   € äˆq‹6�QŒ;ÜÐ1Ó2Ð2Ü-GÈÓ-PÑ*ˆŒ�”˜$œ' 4¤7Øˆr)   c                ó"  € \        V4      ^8w  d   \        R4      h\        V4      pVP                  '       g   V P                  '       d2   \        \        \
        \
        3w  V n        V n        V n        V n	        V # VP                  '       d   V # V P                  '       dJ   VP                  VP                  VP                  VP                  3w  V n        V n        V n        V n	        V # \        W4      w  V n        V n        V n        V n	        V # )zExtend to include rect-like r.r�  )r9   rÃ   r+  r¹  r÷  rø  rµ  r·  r´  r¶  rº  Úutil_union_rectr€  s   &&r'   r°  ÚRect.include_rect„9  sÐ   € äˆq‹6�QŒ;ÜÐ0Ó1Ð1Ü�‹GˆØ�=�=ˆ=˜D×,×,Ð,Ü1@Ä/ÔSbÔdsÐ1sÑ.ˆDŒG�T”W˜dœg t¤wð ˆð �Z�ZˆZØˆKØ�]�]ˆ]Ø12·±°q·t±t¸Q¿T¹TÀ1Ç4Á4Ð1GÑ.ˆDŒG�T”W˜dœg t¤wð ˆô 2AÀÓ1IÑ.ˆDŒG�T”W˜dœg t¤wØˆr)   c                óV  € \        V4      ^8X  g   \        R4      h\        V4      pVP                  '       d   V # V P                  '       dJ   VP                  VP
                  VP                  VP                  3w  V n        V n        V n        V n        V # VP                  '       dJ   VP                  VP
                  VP                  VP                  3w  V n        V n        V n        V n        V # V P                  '       d   V # \        W4      w  V n        V n        V n        V n        V # )z)Restrict to common rect with rect-like r.r�  )
r9   rÃ   r+  r¹  rµ  r·  r´  r¶  rº  Úutil_intersect_rectr€  s   &&r'   r’  ÚRect.intersect“9  sã   € ä�1‹v˜Œ{ÜÐ0Ó1Ð1Ü�‹GˆØ�=�=ˆ=ØˆKØ××ÐØ12·±°q·t±t¸Q¿T¹TÀ1Ç4Á4Ð1GÑ.ˆDŒG�T”W˜dœg t¤wð ˆð �Z�ZˆZØ12·±°q·t±t¸Q¿T¹TÀ1Ç4Á4Ð1GÑ.ˆDŒG�T”W˜dœg t¤wð
 ˆð	 �]�]ˆ]ØˆKä1DÀTÓ1MÑ.ˆDŒG�T”W˜dœg t¤wØˆr)   c                óÚ  € \        V4      p V P                  '       * ;'       dÈ    V P                  '       * ;'       d¯    VP                  '       * ;'       d–    VP                  '       * ;'       d}    V P                  VP                  8  ;'       d\    VP                  V P                  8  ;'       d;    V P
                  VP                  8  ;'       d    VP
                  V P                  8  # )z4Check if intersection with rectangle x is not empty.)r+  rº  r¹  rµ  r´  r·  r¶  )r&   ri  Úrect2s   && r'   Ú
intersectsÚRect.intersects¤9  sÓ   € ä�Q“ˆð'ØŸ™Ô%÷'ð 'à×(Ñ(Ô(÷'ð 'ð Ÿ™Ô&÷'ð 'ð ×)Ñ)Ô)÷	'ð 'ð
 —G‘G˜eŸh™hÑ&÷'ð 'ð —H‘H˜tŸw™wÑ&÷'ð 'ð —G‘G˜eŸh™hÑ&÷'ð 'ð —H‘H˜tŸw™wÑ&ð		r)   c                óv   € V P                   V P                  8¬  ;'       g    V P                  V P                  8¬  # ©z True if rectangle area is empty.©rµ  r´  r·  r¶  r-   s   &r'   rº  ÚRect.is_empty²9  ó,   € ð �w‰w˜$Ÿ'™'Ñ!×7Ð7 T§W¡W°·±Ñ%7Ð7r)   c                óÊ   € V P                   V P                  u;8H  ;'       d
    \        8H  Mu ;'       d/    V P                  V P                  u;8H  ;'       d
    \
        8H  # u # )z'True if this is the infinite rectangle.©rµ  r·  r÷  r´  r¶  rø  r-   s   &r'   r¹  ÚRect.is_infinite·9  óB   € ð �w‰w˜$Ÿ'™'×4Ô4¤_Ô4×^Ð^¸¿¹ÀDÇGÁG×9^Ô9^ÌÑ9^Ð^Ñ9^Ð^r)   c                óv   € V P                   V P                  8*  ;'       d    V P                  V P                  8*  # ©zTrue if rectangle is valid.rê  r-   s   &r'   Úis_validÚRect.is_valid¼9  ó,   € ð �w‰w˜$Ÿ'™'Ñ!×8Ð8 d§g¡g°·±Ñ&8Ð8r)   c                óp   € V P                   '       d   \        4       # V P                  P                  W4      # ©z?Morph with matrix-like m and point-like p.

Returns a new quad.©r¹  r|  rM  r-  ©r&   r²  r‹  s   &&&r'   r-  Ú
Rect.morphÁ9  ó+   € ð ××ÐÜ “?Ð"Ø�y‰y�‰˜qÓ$Ð$r)   c           	     	óv   € \         P                  ! \        V  Uu. uF  qV,          NK  	  up4      4      # u upi r+   rà  rä  s   & r'   rO  Ú	Rect.normÉ9  rç  rè  c                óþ   € V P                   V P                  8  d$   V P                   V P                  uV n        V n         V P                  V P                  8  d$   V P                  V P                  uV n        V n        V # )z*Replace rectangle with its finite version.r°  r-   s   &r'   rs  ÚRect.normalizeÌ9  óW   € à�7‰7�T—W‘WÔØ#Ÿw™w¨¯©ÐˆDŒG�T”WØ�7‰7�T—W‘WÔØ#Ÿw™w¨¯©ÐˆDŒG�T”WØˆr)   c                ón   € \        V P                  V P                  V P                  V P                  4      # ©z!Return Quad version of rectangle.©r)  r*  r«  r¤  r+  r-   s   &r'   rM  Ú	Rect.quadÔ9  ó%   € ô �D—G‘G˜TŸW™W d§g¡g¨t¯w©wÓ7Ð7r)   c                ó*   € \        \        V 4      4      # )zReturn the IRect.)râ  Úutil_round_rectr-   s   &r'   rÿ  Ú
Rect.roundÙ9  s   € ä”_ TÓ*Ó+Ð+r)   c                óB   € \        V P                  V P                  4      # ©zTop-left corner.©r)  rµ  r·  r-   s   &r'   r-  ÚRect.top_leftÝ9  rÂ  r)   c                óB   € \        V P                  V P                  4      # ©zTop-right corner.©r)  r´  r·  r-   s   &r'   r0  ÚRect.top_rightâ9  rÂ  r)   c           	     óê  € \        V4      pV P                  '       g7   V P                  '       g%   VP                  '       g   VP                  '       d   \        R4      h\	        ^^ ^ ^V P
                  ) V P                  ) 4      \	        VP                  V P                  ,          VP                  V P                  ,          4      ,          \	        ^^ ^ ^VP
                  VP                  4      ,          # ©z+Return matrix that converts to target rect.z'rectangles must be finite and not empty©	r+  r¹  rº  rÃ   r  rµ  r·  rˆ  r3  r€  s   &&r'   ÚtorectÚRect.torectç9  s©   € ô �‹GˆØ××Ð˜tŸ}Ÿ}˜}°··°ÀÇÇÀÜÐFÓGÐGä�1�a˜˜A §¡˜x¨$¯'©'¨Ó2Ü�Q—W‘W˜tŸz™zÕ)¨1¯8©8°d·k±kÕ+AÓBõCä�Q˜˜1˜a §¡ q§t¡tÓ,õ-ð	
r)   c                ó„   € \        V4      ^8X  g   \        R4      h\        W4      w  V n        V n        V n        V n        V # )z1Replace with the transformation by matrix-like m.rë  )r9   rÃ   Úutil_transform_rectrµ  r·  r´  r¶  rí  s   &&r'   r  ÚRect.transformó9  s9   € ä�1‹v˜Œ{ÜÐ2Ó3Ð3Ü-@ÀÓ-IÑ*ˆŒ�”˜$œ' 4¤7Øˆr)   c                	óP   € \        ^ V P                  V P                  ,
          4      # ru  ©r'  r´  rµ  r-   s   &r'   rˆ  Ú
Rect.widthú9  rÏ  r)   rê  )5r/   r0   r1   r2   rå  rî  r“  ré   r|  rø  rŒ  rT  r‘   rÖ  r  r  r  r±  r  rï   r$  r'  r.  r{  r1  r.  rÉ  r3  rØ  r¯  r°  r’  ræ  rº  r¹  ró  r-  rO  rs  rM  rÿ  r-  r0  r  r  rˆ  rN  r¤  r+  r  r*  r«  r3   r,   r)   r'   r+  r+  ä8  s·  † ò9ò
Tòò1òò"4ò
7ò!ð ð ¨$ð °4ð ¸Dð ÀTð Èdô ò&òò<ò1ò*òò)òòTòð ñ'ó ð'ð ñ'ó ð'ò$ð ñ)ó ð)õ9òòòò"ð ñ8ó ð8ð ñ_ó ð_ð ñ9ó ð9ò%ò3òð ñ8ó ð8ò,ð ñ'ó ð'ð ñ'ó ð'ò

òð ñ)ó ð)ð €Gà	€BØ	€BÙ�U‹O€EØ	€BØ	„Br)   r+  c            $      óœ  € ] tR tRtRt]R 4       tR R ltR tR R lt	R	 R
 lt
R R ltR R ltR R ltR R ltR<R R lltRR/R R lltR R ltR=R R lltR=R R lltR^R RR!R"R#RR$^ R%^ R&RR'RR(^ R)R*R+^R,^ R-RR.^R/^R0^ /R1 R2 lltR3^ R)R*R&RR%^ R4^R/^R'RR#RR!R"R^R RR+^R-RR0^ R(^ R,^ R$^ R.^/R5 R6 lltR>R7 R8 lltR<R9 R: lltR;tR# )?ro  i:  zCreate a new shape.c                óh  € \        W,
          4      P                  p\        P                  ! \	        VP
                  4      4      pVP                  ^ 8  dF   VP
                  ^ 8:  d   \        P                  V,
          ) pV# \        P                  V,
          p V# VP
                  ^ 8¼  d    V# V) pV# )zÆReturn the angle to the horizontal for the connection from C to P.
This uses the arcus sine function and resolves its inherent ambiguity by
looking up in which quadrant vector S = P - C is located.
)r)  r2  rá  Úasinr,  rj  ri  Úpi)rü  r€  r�
  Úalfas   &&  r'   Úhorizontal_angleÚShape.horizontal_angle
:  s“   € ô �!•%‹L×ÑˆÜ�yŠyœ˜QŸS™S›Ó"ˆØ�3‰3�Œ7Ø�s‰s�aŒxÜŸ™ 4�Ð(�ð ˆô —w‘w •~‘ð ˆð	 �s‰s�aŒxØð ˆð �u�Øˆr)   c               ó   € V ^8„  d   QhRR/# rÞ  r,   )rþ  s   "r'   rÿ  ÚShape.__annotate__:  s   € ÷ ñ ˜Tñ r)   c                	óü  € \        V4       Wn        VP                  V n        V P                  P                  '       g   \        R 4      hVP                  P                  V n        VP                  P                  V n
        VP                  P                  V n	        VP                  P                  V n        VP                  V n        V P                  ( V n        RV n        RV n        RV n        RV n        RV n        R# )r�  r`   N)ro  rÖ   rì   r1  rƒ  rÃ   rl  rj  r3  ri  rˆ  rß  rt  ÚpctmÚipctmr   Ú	text_contÚ	totalcontr  rü   rŽ  s   &&r'   r‘   ÚShape.__init__:  s»   € Ü�DÔØŒ	Ø—;‘;ˆŒØ�x‰x��ˆÜ˜[Ó)Ð)Ø×(Ñ(×*Ñ*ˆŒØ×'Ñ'×)Ñ)ˆŒ
Ø×&Ñ&×(Ñ(ˆŒØ×&Ñ&×(Ñ(ˆŒà×.Ñ.ˆŒ	Ø—i‘i�ZˆŒ
àˆŒØˆŒØˆŒØˆŒØˆŽ	r)   c                	ój  € V P                   f5   \        V4      ^8X  d   \        W4      V n         R # \        V4      V n         R # \        V4      ^8X  dò   \        V4      p\	        V P                   P
                  VP                  4      V P                   n        \	        V P                   P                  VP                  4      V P                   n        \        V P                   P                  VP                  4      V P                   n
        \        V P                   P                  VP                  4      V P                   n        R # \        V4      p\	        V P                   P
                  VP
                  4      V P                   n        \	        V P                   P                  VP                  4      V P                   n        \        V P                   P                  VP                  4      V P                   n
        \        V P                   P                  VP                  4      V P                   n        R # r+   )rü   r9   r+  r)  r÷  rµ  ri  r·  rj  r'  r´  r¶  r9  s   &&r'   Ú
updateRectÚShape.updateRect2:  s<  € Ø�9‰9ÒÜ�1‹v˜Œ{Ü  ›J�–	ä  ›G�–	ô �1‹v˜Œ{Ü˜!“H�Ü" 4§9¡9§<¡<°·±Ó5�—	‘	”Ü" 4§9¡9§<¡<°·±Ó5�—	‘	”Ü" 4§9¡9§<¡<°·±Ó5�—	‘	”Ü" 4§9¡9§<¡<°·±Ó5�—	‘	–ä˜“G�Ü" 4§9¡9§<¡<°·±Ó6�—	‘	”Ü" 4§9¡9§<¡<°·±Ó6�—	‘	”Ü" 4§9¡9§<¡<°·±Ó6�—	‘	”Ü" 4§9¡9§<¡<°·±Ó6�—	‘	–r)   c               ó$   € V ^8„  d   QhRRRRRR/# ©r†  rJ  rº   rK  rs  r)  r,   )rþ  s   "r'   rÿ  r$  G:  s!   € ÷ ñ ˜Jð ¨Jð ¸5ñ r)   c                óÌ  € \        V4      p\        V4      pV P                  V8X  gZ   V ;P                  \        \	        WP
                  ,          4      4      R,           ,          un        Wn        V P                  V4       V ;P                  \        \	        W P
                  ,          4      4      R,           ,          un        V P                  V4       W n        V P                  # )zDraw a line between two points.ú m
ú l
)r)  r  r   r¶   r©  r'  r,  )r&   rJ  rK  s   &&&r'   r  ÚShape.draw_lineG:  s’   € ä�2‹YˆÜ�2‹YˆØ—‘ 2Ô%Ø�NŠNœi¬°·j±jµÓ(AÓBÀVÕKÕK�NØ ŒOØ�O‰O˜BÔà�Šœ)¤H¨R·*±*­_Ó$=Ó>ÀÕGÕG�Ø�‰˜ÔØŒØ�‰Ðr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rI  r´   rs  r)  r,   )rþ  s   "r'   rÿ  r$  U:  s   € ÷ ñ  Dð ¨Uñ r)   c           
     ó&  € \        V4       Fà  w  r#V^ 8X  dx   V P                  \        V4      8X  g]   V ;P                  \	        \        \        V4      V P                  ,          4      4      R,           ,          un        \        V4      V n        MLV ;P                  \	        \        \        V4      V P                  ,          4      4      R,           ,          un        V P                  V4       Kâ  	  \        VR,          4      V n        V P                  # )z%Draw several connected line segments.r1  r2  r¨  )rZ  r  r)  r   r¶   r©  r'  r,  )r&   rI  rg  r²  s   &&  r'   r$  ÚShape.draw_polylineU:  s³   € ä˜fÖ%‰DˆAØ�AŒvØŸ™¬5°«8Ô3Ø—N’N¤i´¼¸q»ÀDÇJÁJÕ9NÓ0OÓ&PÐSYÕ&YÕY•NÜ&+¨A£h�D”Oøà—’¤)¬H´U¸1³XÀÇ
Á
Õ5JÓ,KÓ"LÈvÕ"UÕU•Ø�O‰O˜AÖñ &ô    r¥
Ó+ˆŒØ�‰Ðr)   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r†  rJ  rº   rK  r  r  rs  r)  r,   )rþ  s   "r'   rÿ  r$  c:  s<   € ÷ ñ àðð ðð ð	ð
 ðð 
ñr)   c                óÆ  € \        V4      p\        V4      p\        V4      p\        V4      pV P                  V8X  gC   V ;P                  \        \	        WP
                  ,          4      4      R,           ,          un        \	        \        W P
                  ,          4      \        W0P
                  ,          4      ,           \        W@P
                  ,          4      ,           4      pV ;P                  \        V4      R,           ,          un        V P                  V4       V P                  V4       V P                  V4       V P                  V4       W@n        V P                  # )z#Draw a standard cubic Bezier curve.r1  ú c
)r)  r  r   r¶   r©  r'  r´   r,  )r&   rJ  rK  r  r  r  s   &&&&& r'   r  ÚShape.draw_bezierc:  sä   € ô �2‹YˆÜ�2‹YˆÜ�2‹YˆÜ�2‹YˆØ—‘ 2Ô%Ø�NŠNœi¬°·j±jµÓ(AÓBÀVÕKÕK�NÜœ˜R§*¡*�_Ó-´°R¿*¹*µ_Ó0EÕEÌÈR×R\ÑR\Í_ÓH]Õ]Ó^ˆØ�Šœ) D›/¨FÕ2Õ2�Ø�‰˜ÔØ�‰˜ÔØ�‰˜ÔØ�‰˜ÔØŒØ�‰Ðr)   c               ó    € V ^8„  d   QhRRRR/# )r†  Útetraz"typing.Union[quad_like, rect_like]rs  r)  r,   )rþ  s   "r'   rÿ  r$  z:  s   € ÷ ñ ÐAð Àeñ r)   c                ó@  € \        V4      ^8w  d   \        R4      h\        V^ ,          R4      '       d   \        V4      P                  pM\        V4      pVP                  VP                  VP                  ,
          R,          ,           pVP                  VP                  VP                  ,
          R,          ,           pVP                  VP                  VP                  ,
          R,          ,           pVP                  VP                  VP                  ,
          R,          ,           pV P                  V8X  gI   V ;P                  \        \        W`P                  ,          4      4      R,           ,          un        W`n
        V P                  WbP                  V4       V P                  WRP                  V4       V P                  WBP                  V4       V P                  W2P                  V4       V P!                  VP"                  4       W`n
        V P                  # )z"Draw an ellipse inside a tetrapod.zinvalid arg lengthr•  r   r1  )r9   rÃ   r=   r+  rM  r)  rû  r×  rÖ  rÕ  r  r   r¶   r©  r'  r  r,  rü   )r&   r<  rc  ÚmtÚmrr  Úmls   &&     r'   r   ÚShape.draw_ovalz:  sY  € äˆu‹:˜Œ?ÜÐ1Ó2Ð2Ü�5˜•8˜[×)Ò)Ü�U“× Ñ ‰Aä�U“ˆAà�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'ˆØ—‘ 2Ô%Ø�NŠNœi¬°·j±jµÓ(AÓBÀVÕKÕK�NØ ŒOØ�‰˜ŸD™D "Ô%Ø�‰˜ŸD™D "Ô%Ø�‰˜ŸD™D "Ô%Ø�‰˜ŸD™D "Ô%Ø�‰˜Ÿ™ÔØŒØ�‰Ðr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r¼  rº   r  rœ  rs  r)  r,   )rþ  s   "r'   rÿ  r$  ’:  s&   € ÷ Cñ C *ð C°eð CÀñ Cr)   c                ó€   € V\         8”  g   \        R4      h\        V4      pW^ 3,
          pV P                  WRRR7      # )r  úradius must be positiverí  Fr2  )r8  rÃ   r)  r3  )r&   r¼  r  rJ  s   &&& r'   r  ÚShape.draw_circle’:  sC   € àœÔÜÐ6Ó7Ð7Ü�v“ˆØ˜q�kÕ!ˆØ×Ñ ¨C¸EÐÓBÐBr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rJ  rº   rK  r  rs  r)  r,   )rþ  s   "r'   rÿ  r$  š:  s2   € ÷ 0ñ 0àð0ð ð0ð ð	0ð
 
ñ0r)   c                óÄ   € Rp\        V4      p\        V4      p\        V4      pWV,
          V,          ,           pW2V,
          V,          ,           pV P                  WWc4      # )z4Draw a curve between points using one control point.ç7.SQ¬á?)r)  r  )r&   rJ  rK  r  ÚkappaÚk1Úk2s   &&&&   r'   r  ÚShape.draw_curveš:  sY   € ð ˆÜ�2‹YˆÜ�2‹YˆÜ�2‹YˆØ˜•7˜eÕ#Õ#ˆØ˜•7˜eÕ#Õ#ˆØ×Ñ ¨Ó/Ð/r)   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r†  r¼  rº   rn  r/  rœ  r0  rè   rs  r)  r,   )rþ  s   "r'   rÿ  r$  ©:  sC   € ÷ Hñ HàðHð ðHð ð	Hð
 ðHð 
ñHr)   c                óÂ  € \        V4      p\        V4      pR pR pR p\        P                  ! V) 4      p\        P                  ! \        P                  ! RV4      4      R,          p	\        P                  ! \        P                  ! ^ZV4      4      p
V
^,          p\	        V4      ^\        P
                  ,          8”  d   W‰,          pK/  V P                  V8X  g=   V ;P                  V! \        W P                  ,          4      !  ,          un        W n        \        ^ ^ 4      pTpTpWí,
          p\	        V4      pV\        8”  g   \        R4      hV P                  W4      p\	        V4      \	        V
4      8”  EdB   VP                  \        P                  ! VV
,           4      V,          ,           pVP                  \        P                   ! VV
,           4      V,          ,           p\        VV4      pVP                  \        P                  ! VV,           4      V,          \        P                  ! V4      ,          ,           pVP                  \        P                   ! VV,           4      V,          \        P                  ! V4      ,          ,           p\        VV4      p^\        P                  ! V4      ,
          ^,          ^,          \	        VV,
          4      ,          pV\	        Wì,
          4      ,          pVVV,
          V,          ,           pVVV,
          V,          ,           pV ;P                  V! \        \#        VV P                  ,          4      \#        VV P                  ,          4      ,           \#        WÀP                  ,          4      ,           4      !  ,          un        WŠ,          pVV
,          pTpEK[  \	        V4      R8”  EdW   V^,          pVP                  \        P                  ! VV,           4      V,          ,           pVP                  \        P                   ! VV,           4      V,          ,           p\        VV4      pVP                  \        P                  ! VV,           4      V,          \        P                  ! V4      ,          ,           pVP                  \        P                   ! VV,           4      V,          \        P                  ! V4      ,          ,           p\        VV4      p^\        P                  ! V4      ,
          ^,          ^,          \	        VV,
          4      ,          pV\	        Wì,
          4      ,          ^\        P                  ! V4      ,
          ,          pVVV,
          V,          ,           pVVV,
          V,          ,           pV ;P                  V! \        \#        VV P                  ,          4      \#        VV P                  ,          4      ,           \#        WÀP                  ,          4      ,           4      !  ,          un        V'       d£   V ;P                  V! \        W P                  ,          4      !  ,          un        V ;P                  V! \        WP                  ,          4      !  ,          un        V ;P                  V! \        WÀP                  ,          4      !  ,          un        WÀn        V P                  # )zDraw a circle sector.c                ó(   € \        W34      R ,           # )r1  ©r¶   ©r   rI  s   &&r'   rê
  Ú#Shape.draw_sector.<locals>.<lambda>³:  ó   € œ) Q FÓ+¨fÖ4r)   c                ó,   € \        WW#WE34      R ,           # )r9  rP  rû  s   &&&&&&r'   rê
  rR  ´:  s   € ¤i°°q¸QÐ0BÓ&CÀfÖ&Lr)   c                ó(   € \        W34      R ,           # )r2  rP  rQ  s   &&r'   rê
  rR  µ:  rS  r)   rí  rD  çü©ñÒMbP?r¨  )r)  rá  rþ  Úcopysignr,  r  r  r   r©  r'  r8  rÃ   r!  ri  r   rj  r  r´   )r&   r¼  rn  r/  r0  Úl3Úl4Úl5ÚbetarÚw360Úw90Úw45rû   rü  r€  r�
  r<  r   Úq1Úq2r±  r²  rú  ÚkappahrI  Úcp1Úcp2Úbeta2s   &&&&&                       r'   r3  ÚShape.draw_sector©:  s€  € ô �v“ˆÜ�e“ˆÙ4ˆÙLˆÙ4ˆÜ—’˜d˜UÓ#ˆÜ�|Š|œDŸMšM¨#¨uÓ5Ó6¸"Õ=ˆÜ�lŠlœ4Ÿ=š=¨¨UÓ3Ó4ˆØ�A�gˆÜ�%‹j˜1œtŸw™w�;Ô&Ø�MŠEØ—‘ 5Ô(Ø�NŠN™b¤(¨5·:±:Õ+=Ó">Ñ?Õ?�NØ#ŒOÜ�!�Q‹KˆØˆØˆØ�EˆÜ�!‹fˆà”WŒ}ÜÐ6Ó7Ð7à×$Ñ$ VÓ3ˆÜ�%‹jœ3˜s›8Õ#Ø—‘”t—x’x  s¥
Ó+¨cÕ1Õ1ˆBØ—‘”t—x’x  s¥
Ó+¨cÕ1Õ1ˆBÜ�b˜"“ˆAØ—‘”t—x’x  s¥
Ó+¨cÕ1´D·H²H¸S³MÕAÕAˆBØ—‘”t—x’x  s¥
Ó+¨cÕ1´D·H²H¸S³MÕAÕAˆBÜ�b˜"“ˆAØœ$Ÿ(š( 3›-Õ'¨1Õ,¨qÕ0´3°q¸1µu³:Õ=ˆFØœS ¥›ZÕ'ˆEØ�q˜1•u •oÕ%ˆCØ�q˜1•u •oÕ%ˆCØ�NŠN™b¤(Ü�S˜4Ÿ:™:Õ%Ó&¬¨c°D·J±JÕ.>Ó)?Õ?Ä$ÀqÏ:É:Å~ÓBVÕVó#ñ õ �Nð �LˆEØ�C�KˆDØ‹Aäˆu‹:˜ÕØ˜A•IˆEØ—‘”t—x’x  u¥Ó-°Õ3Õ3ˆBØ—‘”t—x’x  u¥Ó-°Õ3Õ3ˆBÜ�b˜"“ˆAØ—‘”t—x’x  u¥Ó-°Õ3´d·h²h¸u³oÕEÕEˆBØ—‘”t—x’x  u¥Ó-°Õ3´d·h²h¸u³oÕEÕEˆBÜ�b˜"“ˆAàœ$Ÿ(š( 5›/Õ)¨QÕ.°Õ2´S¸¸Q½³ZÕ?ˆFØœS ¥›ZÕ'¨1¬t¯xªx¸«Õ+>Õ?ˆEØ�q˜1•u •oÕ%ˆCØ�q˜1•u •oÕ%ˆCØ�NŠN™b¤(Ü�S˜4Ÿ:™:Õ%Ó&¬¨c°D·J±JÕ.>Ó)?Õ?Ä$ÀqÏ:É:Å~ÓBVÕVó#ñ õ �N÷ Ø�NŠN™b¤(¨5·:±:Õ+=Ó">Ñ?Õ?�NØ�NŠN™b¤(¨6·J±JÕ+>Ó"?Ñ@Õ@�NØ�NŠN™b¤(¨1¯z©z­>Ó":Ñ;Õ;�NØŒØ�‰Ðr)   r  Nc               ó    € V ^8„  d   QhRRRR/# )r†  rü   r¼   rs  r)  r,   )rþ  s   "r'   rÿ  r$  ó:  s   € ÷ 1ñ 1˜ið 1¸Eñ 1r)   c          
     ó  € \        V4      pVf¢   V ;P                  \        \        \	        VP
                  V P                  ,          4      VP                  VP                  .,           4      4      R,           ,          un        V P                  V4       VP                  V n        V P                  # \        VR4      '       dN   V^ 8:  g   VR8”  d   \        RV R24      h\        VP                  VP                  4      V,          pV^ 3p^ V3pM�\        VR4      '       dm   \        V4      ^8X  d]   Vw  rxWsP                  ,          ^ 3p^ WƒP                  ,          3p\        Wx4      ^ 8:  g   \!        Wx4      R8”  d   \        RV R24      hM\        RV R24      hV P#                  VP                  V,           VP
                  V,
          4      p	V P%                  W“P
                  VP
                  V,           4      p	V P#                  W“P&                  V,
          4      p	V P%                  W“P&                  VP&                  V,
          4      p	V P#                  W“P(                  V,           4      p	V P%                  W“P(                  VP(                  V,
          4      p	V P#                  W“P                  V,           4      p	V P%                  W“P                  VP                  V,           4      V n        V P                  V4       V P                  # )a°  Draw a rectangle.

Args:
    radius: if not None, the rectangle will have rounded corners.
        This is the radius of the curvature, given as percentage of
        the rectangle width or height. Valid are values 0 < v <= 0.5.
        For a sequence of two values, the corners will have different
        radii. Otherwise, the percentage will be computed from the
        shorter side. A value of (0.5, 0.5) will draw an ellipse.
z re
r•  r   zbad radius value r   rÖ  )r+  r   r¶   r©  r´   r¤  r'  rˆ  r3  r,  r*  r  r=   rÃ   r÷  r9   r'  r  r  r+  r«  )
r&   rü   r  r$  rH  rà  ÚpyÚrxÚryr‰  s
   &&$       r'   r¬  ÚShape.draw_rectó:  sM  € ô �‹JˆØŠ>Ø�NŠNœi¬Ü�Q—T‘T˜DŸJ™JÕ&Ó'¨1¯7©7°A·H±HÐ*=Õ=ó)ó àõõ �Nð �O‰O˜AÔØŸd™dˆDŒOØ—?‘?Ð"ô �6˜;×'Ò'Ø˜Œ{˜f sœlÜ Ð#4°V°H¸AÐ!>Ó?Ð?Ü�A—G‘G˜QŸX™XÓ&¨Õ/ˆAØ�Q�ˆBØ�Q�‰BÜ�V˜Y×'Ò'¬C°«K¸1Ô,<Ø‰FˆBØ—w‘w•, Ð"ˆBØ�RŸ(™(•]Ð#ˆBÜ�2‹{˜aÔ¤3 r£;°Ô#4Ü Ð#4°V°H¸AÐ!>Ó?Ð?ð $5ô Ð0°°¸Ð:Ó;Ð;à�^‰^˜AŸD™D 2�I q§t¡t¨b¥yÓ1ˆØ�_‰_˜R§¡ q§t¡t¨b¥yÓ1ˆà�^‰^˜B§¡ r¥	Ó*ˆØ�_‰_˜R§¡ q§t¡t¨b¥yÓ1ˆà�^‰^˜B§¡ r¥	Ó*ˆØ�_‰_˜R§¡ q§t¡t¨b¥yÓ1ˆà�^‰^˜B§¡ r¥	Ó*ˆØŸ/™/¨"¯d©d°A·D±D¸2µIÓ>ˆŒà�‰˜ÔØ�‰Ðr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rM  r»   rs  r)  r,   )rþ  s   "r'   rÿ  r$  &;  s   € ÷ Bñ B˜ið B¨Eñ Br)   c                ó¨   € \        V4      pV P                  VP                  VP                  VP                  VP
                  VP                  .4      # )zDraw a Quad.)r)  r$  rû  rÕ  rÖ  r×  )r&   rM  rc  s   && r'   r(  ÚShape.draw_quad&;  s;   € ä�‹JˆØ×!Ñ! 1§4¡4¨¯©¨q¯t©t°Q·T±T¸1¿4¹4Ð"@ÓAÐAr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rJ  rº   rK  r7  rœ  rs  r)  r,   )rþ  s   "r'   rÿ  r$  +;  s2   € ÷ ñ àðð ðð ð	ð
 
ñr)   c                ó4  € \        V4      p\        V4      pW!,
          p\        V4      p^\        \        V^V,          ,          ^ 4      4      ,          pV^8  d   \	        R4      hWV,          p\        \        W4      4      pV( p	. p
\        ^V4       F`  pV^,          ^8X  d   \        VR4      V,          pM$V^,          ^8X  d   \        V^4      V,          pMKI  V
P                  WÉ,          4       Kb  	  V P                  V.V
,           V.,           4       V# )z%Draw a zig-zagged line from p1 to p2.úpoints too closer¨  )
r)  r,  r6   rÿ  rÃ   r  rÔ  rS  ro   r$  )r&   rJ  rK  r7  r�
  r<  r9  r  rî  Úi_matrI  rg  r²  s   &&&&         r'   r@  ÚShape.draw_zigzag+;  só   € ô �2‹YˆÜ�2‹YˆØ�GˆÜ�!‹fˆØ”#”e˜C 1 w¥;Õ/°Ó3Ó4Õ4ˆØ�Œ7ÜÐ/Ó0Ð0Ø�YˆÜœ¨Ó/Ó0ˆØ�ˆØˆÜ�q˜#–ˆAØ�1�u˜ŒzÜ˜!˜R“L 2Õ%‘Ø�Q•˜!”Ü˜!˜Q“K "Õ$‘áØ�M‰M˜!�)Ö$ñ ð 	×Ñ˜B˜4 &�=¨B¨4Õ/Ô0Øˆ	r)   c               ó$   € V ^8„  d   QhRRRRRR/# r/  r,   )rþ  s   "r'   rÿ  r$  H;  s(   € ÷ #ñ #àð#ð ð#ð
 
ñ#r)   c                óì  € \        V4      p\        V4      pW!,
          p\        V4      p^\        \        V^V,          ,          ^ 4      4      ,          pV^8  d   \	        R4      hWV,          p\        \        W4      4      pV( p	Rp
. p\        ^V4       Fp  pV^,          ^8X  d   \        WÊ) 4      V,          pM4V^,          ^8X  d   \        WÊ4      V,          pM\        V^ 4      V,          pVP                  WÙ,          4       Kr  	  V.V,           V.,           p\        V4      p^ pV^,           V8  d?   V P                  W¼,          W¼^,           ,          W¼^,           ,          4       V^,          pKL  V# )z#Draw a squiggly line from p1 to p2.rq  gh¼?3OP@)r)  r,  r6   rÿ  rÃ   r  rÔ  rS  ro   r9   r  )r&   rJ  rK  r7  r�
  r<  r9  r  rî  rr  rô  rI  rg  r²  s   &&&&          r'   r;  ÚShape.draw_squiggleH;  s:  € ô �2‹YˆÜ�2‹YˆØ�GˆÜ�!‹fˆØ”#”e˜C 1 w¥;Õ/°Ó3Ó4Õ4ˆØ�Œ7ÜÐ/Ó0Ð0Ø�YˆÜœ¨Ó/Ó0ˆØ�ˆØˆàˆÜ�q˜#–ˆAØ�1�u˜ŒzÜ˜!˜R“L 2Õ%‘Ø�Q•˜!”Ü˜!“K "Õ$‘ä˜!˜Q“K "Õ$�Ø�M‰M˜!�)Ö$ñ ð �˜• " Õ%ˆÜ�&‹kˆØˆØ�!�e�cŒkØ�O‰O˜F�I v°!­e¥}°fÀ½UµmÔDØ��FŠAØˆ	r)   rÿ   rö  rþ   rñ  r%  rù  r  rp  r   rI  r‡  rG  rH  r`  r-  r  r	  rÙ  c          &     ód   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRRRR/# )r†  rn  rº   r3
  rK  rÿ   rœ  rö  rú  rþ   ræ  r%  rù  rù  rè   r  r6   rp  rû  r   rI  r‡  rH  r`  r-  r  r	  rÙ  rs  r,   )rþ  s   "r'   rÿ  r$  p;  sÝ   € ÷ xñ xàðxð (ðxð
 ðxð ðxð ðxð ðxð ðxð ðxð ðxð ðxð ðxð ðxð ðxð  ð!xð" ð#xð$ ð%xð& ð'xð( ð)xð* 
ñ+xr)   c          
     	óT  € \        V4      '       g   ^ # \        V4      \        \        39  d   VP	                  4       pMTp\        V4      ^ 8”  g   ^ # \        V4      p \        RP                  V4       Uu. uF  p\        V4      NK  	  up4      pTpTP                  R4      '       d
   TR,          pT P                  P                  TYhTR7      p\        T P                   T4      pT^,          pTR,          pTR,          pTR,          pTR,          pTR	,          pT'       d
   Y4,          pM(TT,
          ^8:  d   TR
,          pMTTT,
          ,          pT^ÿ8”  d%   T P                   P#                  TT^,           4      p M	TR,          p . p!T F4  p"T'       d   TR%9  d   Rp#MT p#T!P%                  \'        T"T#TT4      4       K6  	  T!p\)        T	R4      p$\)        T
R4      p%T
'       g   T^ 8X  d   T	p
\)        T	R4      p%\+        T4      p&Tp'T'^Z,          ^ 8w  d   \-        R4      hT'^ 8  d   T'R,          p'K  T'R,          p'R p(R p)Rp*Rp+Rp,T P.                  p-T P0                  p.T&'       d�   \3        ^^ ^ ^T^ ,          P4                  T P4                  ,           T-T^ ,          P6                  ,
          T P6                  ,
          4      p/T/( T^,          ,          T/,          p0\9        \;        T04      4      R,           p1MRp1T-TP6                  ,
          T P6                  ,
          p2TP4                  T P4                  ,           p3T2p4T'^Z8X  d_   T-TP6                  ,
          T P6                  ,
          p3TP4                  ) T P4                  ,
          p2T1T*,          p1T.\=        T24      ,
          p4M×T'R8X  dX   T-) TP6                  ,           T P6                  ,           p3TP4                  T P4                  ,           p2T1T+,          p1\=        T24      p4MyT'^´8X  ds   TP4                  ) T P4                  ,
          p3T-) TP6                  ,           T P6                  ,           p2T1T,,          p1\=        TP6                  T P6                  ,           4      p4T P                  P?                  T4      p5T5e
   RT5 R2p6Rp7MR;p6p7T P                  PA                  TTR7      p8T8f   Rp8MRT8 R2p8T(! T6T8T1T3T2TT4      p9T^ 8”  dI   T9T R2,          p9T9\9        YÃ,          4      R,           ,          p9Te   T9\9        T4      R ,           ,          p9T	e
   T9T$,          p9T
e
   T9T%,          p9T9T^ ,          ,          p9^p:\        T4      ^8”  d   T9T)! T4      ,          p9M	T9R!,          p9\C        ^\        T4      4       FE  p;T4T8  d    M=T;^8”  d
   T9R",          p9T9TT;,          R!,           ,          p9T4T,          p4T:^,          p:KG  	  T9R#T7 R$2,          p9T ;PD                  T9,          un"        T:# u upi   \         d    \        4         ^ # i ; i)&rx   r³   rˆ	  r‰	  ©rþ   r%  r  rù  ræ  r<  r   r:  r;  rŸ  r?  Nrõ  r  r<  rí  c                óP   € R V  V RV R\        W434       RV R\        V4       R2# )rÆ  úBT
ú1 0 0 1 z Tm
/r³   ú Tf rP  ©r   rI  rõ  rH  rh  r  r³  s   &&&&&&&r'   rê
  Ú#Shape.insert_text.<locals>.<lambda>Î;  s@   € ¨u°Q°C¸°s¸$¸q¸cÀÌ)ÐUVÐTZÓJ[ÐI\Ð\bÐcdÐbeÐefÔgpÐqrÓgsÐftÐtxÑ-yr)   c                ó    € R \        V 4       R2# )zTJ
0 -z TD
rP  ©r   s   &r'   rê
  r  Ï;  s   € ˜W¤Y¨q£\ N°%Ñ8r)   ú0 1 -1 0 0 0 cm
ú0 -1 1 0 0 0 cm
ú-1 0 0 -1 0 0 cm
ú cm
r`   r¡  ú/OC /ú BDC
úEMC
r(  r)  ú Tr ú w ú M ÚTJz
T* z
ET
úQ
©r>  r=  )#rè   rÈ   r´   rµ   r  r9   r)  r'  r  r:  rk   r{   r5   rÖ   r  rK  r1  rU  ro   ÚgetTJstrr  Ú
CheckMorphrÃ   r3  rˆ  r  ri  rj  r¶   r©  r,  r°  r  rS  r(  )<r&   rn  r3
  rÿ   rö  rþ   r%  rù  r  rp  r   rI  r‡  rH  r`  r-  r  r	  rÙ  r   rõ  Úmaxcoder6  r  rP  r7  ræ  r<  rä  r:  r;  Úlheightr?  ÚtabrÃ  r³  Ú	color_strÚfill_strÚmorphingry  Útempl1Útempl2Úcmp90Úcmm90Úcm180r3  rˆ  r  r€  r'  r  rL  ÚspaceÚoptcontÚbdcÚemcrñ  rõ  Únlinesrg  s<   &&&$$$$$$$$$$$$$$$$                                         r'   rŸ  ÚShape.insert_textp;  su  € ô0 �F�|Š|Ùä�‹<¤¤e˜}Ô,Ø×$Ñ$Ó&‰DàˆDä�4‹y˜1Œ}Ùä�e“ˆð	Ü¨3¯8©8°D¬>Ó:©> aœ3˜qž6©>Ñ:Ó;ˆGð ˆØ×Ñ˜C× Ò Ø˜"•IˆEà�y‰y×$Ñ$Ø XÈZð %ó 
ˆô ! §¡¨4Ó0ˆà˜A•;ˆØ˜JÕ'ˆØ˜(Õ#ˆØ˜&Õ!ˆØ˜JÕ'ˆØ˜[Õ)ˆ	ßØÕ+‰GØ˜	Õ! QÔ&Ø •n‰Gà (¨YÕ"6Õ7ˆGà�SŒ=Ø—X‘X×-Ñ-¨d°G¸aµKÓ@‰Fà˜hÕ'ˆFàˆÛˆAß˜&Ð(BÔBØ‘à�Ø�J‰J”x  1 f¨hÓ7Ö8ñ ð ˆä˜e SÓ)ˆ	Ü˜T 3Ó'ˆß˜ qÔ(ØˆDÜ  ¨Ó,ˆHä˜eÓ$ˆØˆØ��8�qŒ=ÜÐ/Ó0Ð0à�AŒgØ�3�JŠCØ�C�iˆáyˆÙ8ˆØ#ˆØ#ˆØ$ˆØ—‘ˆØ—
‘
ˆ÷ Ü˜˜1˜a  E¨!¥H§J¡J°·±Õ$7¸À%ÈÅ(Ç*Á*Õ9LÈtÏvÉvÕ9UÓVˆBØ�#˜˜a�•. 2Õ%ˆCÜœ8 C›=Ó)¨GÕ3‰BàˆBØ�u—w‘wÕ §¡Õ'ˆØ�w‰w˜Ÿ™ÕˆØˆà�"Œ9Ø˜EŸG™GÕ# d§f¡fÕ,ˆDØ—7‘7�(˜TŸV™VÕ#ˆCØ�%�KˆBØœC ›HÕ$‰Eð �CŒZØ�7˜UŸW™WÕ$ t§v¡vÕ-ˆDØ—'‘'˜DŸF™FÕ"ˆCØ�%�KˆBÜ˜“H‰Eð �CŒZØ—G‘G�8˜dŸf™fÕ$ˆDØ�'˜EŸG™GÕ# d§f¡fÕ,ˆCØ�%�KˆBÜ˜Ÿ™ $§&¡&Õ(Ó)ˆEð —)‘)×1Ñ1°"Ó5ˆØÒØ˜'˜ &Ð)ˆCØ‰CàˆNˆC�#à—	‘	×&Ñ&¨.¸\Ð&ÓJˆØŠ=Ø‰Eà˜�w˜eÐ$ˆEÙ�c˜5 " d¨C°¸ÓAˆà˜Œ?Ø�{�m 4Ð(Õ(ˆDØ”I˜lÕ5Ó6¸Õ>Õ>ˆDØÒ&Øœ	 +Ó.°Õ6Õ6�ØÒØ�IÕˆDØÒØ�HÕˆDð
 	��Q•�ˆØˆÜˆt‹9�qŒ=Ø‘F˜7“OÕ#‰Dà�D�LˆDÜ�qœ#˜d›)Ö$ˆAØ�wŒÙØ�1ŒuØ˜•�Ø�D˜•G˜d•NÕ"ˆDØ�WÕˆEØ�a�KŠFñ %ð 	�&˜˜˜SÐ!Õ!ˆð 	�Š˜$Õ�Øˆùòg ;øÜô 	ÜÔÚð	ús$   ÁX Á7X	ÂX Ø	X ØX'Ø&X'r  rN  c          *     ól   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR
RRRRRRRRRRRR
RRRRRRRRRRRR/# )r†  rü   r¼   r3
  rK  r  r6   r‡  rœ  rp  rû  r  rN  r	  r   r%  rù  rþ   rÿ   rö  rú  rH  r-  rÙ  rI  r`  rù  rè   r  rs  r,   )rþ  s   "r'   rÿ  r$  -<  só   € ÷ Bñ BàðBð (ðBð
 ðBð ðBð ðBð ðBð ðBð ðBð ðBð ðBð ðBð ðBð ðBð  ð!Bð" ð#Bð$ ð%Bð& ð'Bð( ð)Bð* ð+Bð, ð-Bð. 
ñ/Br)   c          
     óò  aaPaQ€ \        V4      pVP                  '       g   VP                  '       d   \        R4      h\	        VR4      p\	        V	R4      pV	f   V^ 8X  d   Tp	\	        VR4      pV P
                  P                  V4      pVe
   RV R2pRpMR;ppV P
                  P                  VVR	7      pVf   RpMR
V R2pV^Z,          ^ 8w  d   \        R4      hTpV^ 8  d   VR,          pK  VR,          p\        V4      '       g    VR-9   d   VP                  # VP                  # RpRpRpV P                  pTp V P                  R
4      '       d
   V R,          p V P
                  P                  V W¦VR7      p!\        V P                  V!4      p"V"^,          p#V#R,          oQV#R,          p$V#R,          oPV#R,          p%V#R,          p&V#R,          p'V'       d   Tp(MV&V',
          ^8:  d   Rp(M	V&V',
          p(SV(,          p)\        V4      \         \"        39   d   RP%                  V4      p*MTp*\'        V* U+u. uF  p+\)        V+4      NK  	  up+4      p,V$'       d;   V,^ÿ8”  d4   RP%                  V* U+u. uF  p+\)        V+4      R8  d   T+MRNK  	  up+4      p*V*P+                  4       p*V P                  P-                  V!V,^,           4      oPV$'       d   V%R.9  d   Rp-MSPp-VVPVQ3R lp.SQ^ 8  d   SP^ ,          ^,          S,          p/MSp/Rp0\/        V4      '       dš   \1        ^^ ^ ^V^ ,          P2                  V P2                  ,           V P                  V^ ,          P4                  ,
          V P4                  ,
          4      p1V1( V^,          ,          V1,          p2\7        \9        V24      4      R,           p3MRp3^p4\;        ^ SV&,          4      p5V^ 8X  d-   VP<                  V5,           p6VP                  p7VP                  p8MëV^Z8X  dI   \;        SV&,          ^ 4      p5VP>                  V5,           p6VP                  p7VP                  p8V3V,          p3MœV^´8X  dL   \;        ^ SV&,          4      ) p5VP@                  V5,           p6VP                  p7R/p4VP                  p8V3V,          p3MJ\;        SV&,          ^ 4      ) p5VPB                  V5,           p6VP                  p7R/p4VP                  p8V3V,          p3. p9\E        V*4       EF¶  w  p:p;V;PG                  V4      PI                  R4      p<\K        V<4      p=Rp>T7p?\M        V=4       EF  p@V<V@,          pAV.! VA4      pBV?VB8¼  d#   V>XAR,           ,          p>V?XBV/,           ,          p?K>  V>'       d2   V>PO                  4       R,           p>V0V>,          p0V9PQ                  R 4       Rp>T7p?XBV78:  d   XAR,           p>V7XB,
          V/,
          p?K�  \K        V94      ^ 8”  d   R!V9R/&   XA FM  p+V.! V>4      V7V.! V+4      ,
          8:  d   V>V+,          p>K(  V>R,          p>V0V>,          p0V9PQ                  R!4       T+p>KO  	  V>R,          p>V7V.! V>4      ,
          p?EK   	  V>'       d)   V0V>PO                  4       ,          p0V9PQ                  R!4       V:\K        V*4      ^,
          8  g   EK­  V0R,          p0EK¹  	  V0PS                  R4      '       d   V0RR/ p0V0PU                  R4      ^,           pCV)VC,          V'S,          ,
          pDVDV8,
          pEVE\V        8”  d
   R/XE,          # \Y        XE4      pEVE\V        8  d   ^ pER"V V R#2V3,           pFR$ pGV0P+                  4       pHR!V9R/&   \E        VH4       EFÒ  w  p:pI^ pJV7V.! VI4      ,
          pKV6V5V:V(,          ,          ,           pLV^8X  dL   VR-9   d#   XL\;        XK^,          ^ 4      V4,          ,           pLM XL\;        ^ XK^,          4      V4,          ,
          pLM~V^8X  d>   VR-9   d   XL\;        XK^ 4      V4,          ,           pLMUXL\;        ^ XK4      V4,          ,
          pLM:V^8X  d4   XIPU                  R4      pMVM^ 8”  d   V9V:,          '       d   XKXM,          pJM^ pJVXLP4                  ,
          V P4                  ,
          pNVLP2                  V P2                  ,           pOV^Z8X  dD   VXLP4                  ,
          V P4                  ,
          pOVLP2                  ) V P2                  ,
          pNM”VR%8X  dD   V) XLP4                  ,           V P4                  ,           pOVLP2                  V P2                  ,           pNMJV^´8X  dD   XLP2                  ) V P2                  ,
          pOV) VLP4                  ,           V P4                  ,           pNXFXG! XOXNV S4      ,          pFV^ 8”  dJ   XFV R&2,          pFVF\7        VS,          4      R',           ,          pFVe   XF\7        V4      R(,           ,          pFV^8X  d   XF\7        XJ4      R),           ,          pFVe
   XFV,          pFV	e
   XFV,          pFXF\[        XIV-V$SQ4       R*2,          pFEKÕ  	  XFR+V R,2,          pFV ;P\                  VF,          un.        V P_                  V4       XE# u up+i u up+i )0aÁ  Insert text into a given rectangle.

Args:
    rect -- the textbox to fill
    buffer -- text to be inserted
    fontname -- a Base-14 font, font name or '/name'
    fontfile -- name of a font file
    fontsize -- font size
    lineheight -- overwrite the font property
    color -- RGB stroke color triple
    fill -- RGB fill color triple
    render_mode -- text rendering control
    border_width -- thickness of glyph borders as percentage of fontsize
    expandtabs -- handles tabulators with string function
    align -- left, center, right, justified
    rotate -- 0, 90, 180, or 270 degrees
    morph -- morph box with a matrix and a fixpoint
Returns:
    unused or deficit rectangle area (float)
z%text box must be finite and not emptyrõ  r  Nr†  r‡  rˆ  r`   r(  rˆ	  r)  zrotate must be multiple of 90rí  r‚  rƒ  r„  r‰	  ry  ræ  r<  r?  r   r:  r;  rŸ  r#   ré  Ú?c           	     ó²   <€ S^ 8  d:   \        V  Uu. uF  pS\        V4      ,          ^,          NK  	  up4      S,          # \        V 4      S,          # u upi )zCalculate pixel length of x.)rã  r:  r9   )ri  rõ  rÿ   r?  ræ  s   & €€€r'   ÚpixlenÚ$Shape.insert_textbox.<locals>.pixlen±<  sM   ø€ à˜!Œ|Ü±qÓ9±q°!˜F¤3 q£6�N¨1×-Ð-±qÑ9Ó:¸XÕEÐEä˜1“v Õ(Ð(ùò :s   ’"Ar…  r³   TFrÆ  r{  c                ó@   € R \        W34       RV R\        V4       R2# )r|  z Tm /r³   r}  rP  )r   rI  rõ  rH  s   &&&&r'   rê
  Ú&Shape.insert_textbox.<locals>.<lambda>6=  s'   €  X¬i¸¸Ó.?Ð-@ÀÀaÀSÈÌ)ÐTUË,ÈÐW[Ñ#\r)   r¡  r‰  rŠ  r‹  z Tw zTJ
zET
r�  rÑ  rŽ  r¨  )0r+  rº  r¹  rÃ   r  rÖ   r°  r  rè   r3  rˆ  r5   r  rK  r1  rÈ   r´   rµ   r  r'  r:  r  rU  r�  r  ri  rj  r¶   r©  r)  r*  r¤  r+  r«  rZ  rN  r8   r9   rS  r$   ro   r  rÙ  r8  r,  r�  r(  r,  )Rr&   rü   r3
  r  r‡  rp  r  rN  r	  r   r%  rþ   rÿ   rö  rH  r-  rÙ  rI  r`  rù  r  r”  r•  r�  rž  rŸ  rñ  ry  r™  rš  r›  r3  r6  r  rP  r7  r<  rä  r:  r;  Úlheight_factorr’  r   rõ  r‘  Ú	tj_glyphsr¦  Úblenr   r  r€  r'  ÚprogrÚc_pntrn  ÚmaxwidthÚ	maxheightÚjust_tabrg  rs   Úline_tÚ	num_wordsÚlbuffry  rŒ  ÚwordÚpl_wÚlb_countÚtext_heightÚmorerõ  ÚtemplÚtext_trÃ  rò  Úplr%  Úspacesr  rL  r?  ræ  sR   &&&$$$$$$$$$d$$$$$$$$                                                           @@r'   r®  ÚShape.insert_textbox-<  s;	  ú€ ôX �D‹zˆØ�=�=ˆ=˜D×,×,Ð,ÜÐDÓEÐEä˜e SÓ)ˆ	Ü˜T 3Ó'ˆØŠ<˜K¨1Ô,ØˆDÜ  ¨Ó,ˆHà—)‘)×1Ñ1°"Ó5ˆØÒØ˜'˜ &Ð)ˆCØ‰CàˆNˆC�#ð —	‘	×&Ñ&¨.¸\Ð&ÓJˆØŠ=Ø‰Eà˜�w˜eÐ$ˆEà�B�;˜!ÔÜÐ<Ó=Ð=àˆØ�AŒgØ�3�JŠCØ�C�iˆô �F�|Š|Ø"%¨¤/�4—;‘;ÐA°t·z±zÐAà#ˆØ#ˆØ$ˆØ—‘ˆàˆØ×Ñ˜C× Ò Ø˜"•IˆEà�y‰y×$Ñ$Ø XÈZð %ó 
ˆô ! §¡¨4Ó0ˆà˜A•;ˆØ˜JÕ'ˆØ˜(Õ#ˆØ˜(Õ#ˆØ˜&Õ!ˆØ˜JÕ'ˆØ˜[Õ)ˆ	çØ'‰NØ˜	Õ! QÔ&Ø ‰Nà%¨	Õ1ˆNØ˜^Õ+ˆô �‹<œD¤%˜=Ô(Ø—‘˜6Ó"‰BàˆBä¡rÓ*¡r !”s˜1–v¡rÑ*Ó+ˆç�g ”mØ—‘¹bÓA¹b¸œs 1›v¨œ|™!°Ò4¹bÑAÓBˆBà�]‰]‹_ˆà—‘×)Ñ)¨$°¸!µÓ<ˆß�fÐ$>Ô>Ø‰IàˆI÷
	)ð �aŒ<Ø˜"•:˜a•= 8Õ+‰DàˆDàˆä�e×ÒÜØ�1�a˜˜E !�HŸJ™J¨¯©Õ/°·±¸uÀQ½x¿z¹zÕ1IÈDÏFÉFÕ1RóˆBð �#˜˜a�•. 2Õ%ˆCÜœ8 C›=Ó)¨GÕ3‰BàˆBð
 ˆÜ�a˜ HÕ,Ó-ˆØ�!Œ8Ø—G‘G˜e•OˆEØ—z‘zˆHØŸ™‰Ià�BŒYÜ˜( XÕ-¨qÓ1ˆEØ—G‘G˜e•OˆEØ—{‘{ˆHØŸ
™
ˆIØ�%�K‰Bà�CŒZä˜1˜h¨Õ1Ó2Ð2ˆEØ—G‘G˜e•OˆEØ—z‘zˆHØˆEØ—{‘{ˆIØ�%�K‰Bô ˜8 hÕ.°Ó2Ð2ˆEØ—G‘G˜e•OˆEØ—{‘{ˆHØˆEØŸ
™
ˆIØ�%�KˆBð
 ˆä  —}‰GˆAˆtØ—_‘_ ZÓ0×6Ñ6°sÓ;ˆFÜ˜F›ˆIØˆEØˆDô ˜9×%�Ø˜a•y�Ù˜d“|�Ø˜4”<Ø˜T C�ZÕ'�EØ˜D 4�KÕ'�DÙ÷ Ø!ŸL™L›N¨TÕ1�EØ˜E•M�DØ—O‘O DÔ)à�Ø�à˜8Ô#Ø  3�J�EØ# d�?¨TÕ1�DÙô �x“= 1Ô$Ø#(�H˜R‘LÛ�AÙ˜e“}¨±6¸!³9Õ(<Ô<Ø �
šà �˜Ø �˜Ø Ÿ™¨Ô.Ø !šñ ð ˜•�Ø¡&¨£-Õ/“ñG &÷J Ø˜Ÿ™›Õ&�Ø—‘ Ô&à”3�r“7˜Q•;�Ø˜•“ñe %ðj �=‰=˜×ÒØ˜˜�9ˆDØ—:‘:˜dÓ# aÕ'ˆð  Õ(¨9°xÕ+?Õ?ˆà˜YÕ&ˆØ”'Œ>Ø˜$•;Ðä�4‹yˆØ”'Œ>ØˆDØ�s�e˜E˜7 $Ð'¨"Õ,ˆÙ\ˆà—‘Ó"ˆØˆ�‰Ü˜f×%‰DˆAˆqØˆGØ™F 1›IÕ%ˆBØ˜% 1 ~Õ#5Õ6Õ6ˆCØ˜ŒzØ˜(”?Ø¤ b¨1¥f¨aÓ 0°5Õ 8Õ8‘Cà¤ a¨¨a­Ó 0°5Õ 8Õ8‘CØ˜!”Ø˜(”?Ø¤ b¨!£¨uÕ 4Õ4‘Cà¤ a¨£¨uÕ 4Õ4‘CØ˜!”ØŸ™ ›�Ø˜A”: (¨1§+¤+Ø  6�k‘Gà�GØ˜3Ÿ5™5•. 4§6¡6Õ)ˆCØ—5‘5˜4Ÿ6™6•>ˆDØ�bŒyØ §¡•~¨¯©Õ.�Ø—u‘u�f˜tŸv™v•o‘Ø˜”Ø�w §¡•¨¯©Õ/�Ø—e‘e˜dŸf™f•n‘Ø˜”ØŸ™�v §¡•�Ø�g §¡•o¨¯©Õ.�à‘E˜$  U¨HÓ5Õ5ˆDà˜QŒØ˜;˜- tÐ,Õ,�Øœ	 ,°Õ"9Ó:¸UÕBÕB�ØÒ*ØœI kÓ2°UÕ:Õ:�Dà˜ŒzØœ	 'Ó*¨VÕ3Õ3�àÒ Ø˜	Õ!�ØÒØ˜Õ �Ø”x  9¨f°hÓ?Ð@ÀÐEÕE‹Dñ_ &ðb 	�$�s�e˜3�Õˆà�Š˜$Õ�Ø�‰˜ÔØˆùò] +ùò Bs   È7i/É0i4c               óL   € V ^8„  d   QhRRRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r†  rˆ  rœ  rp  rû  r   r  r6   r  rŠ  rù  rr  rè   r-  r  r	  r  rÙ  rs  r  r,   )rþ  s   "r'   rÿ  r$  q=  s›   € ÷ Yñ YàðYð ðYð ð	Yð
 ðYð ðYð ðYð ðYð ðYð ðYð ðYð ðYð ðYð 
ñYr)   c           
     óÊ  € V P                   R8X  d   R# V^ 8X  d   RpMVf   ^ p\        VR4      p\        VR4      pV P                  P                  V4      pVe    RV R2V P                   ,           V n         RpMRpV P                  P	                  WºR7      pVe   R	V R
2V P                   ,           V n         V^8w  d1   V^ 8w  d*   V ;P                   \        V4      R,           ,          un         V^ 8w  d   V R2V P                   ,           V n         V^ 8w  d   V R2V P                   ,           V n         VR9  d   V R2V P                   ,           V n         V	'       d!   V ;P                   R,          un         RV n        Ve   V ;P                   V,          un         Ve–   V ;P                   V,          un         Ve=   V'       g   V ;P                   R,          un         MoV ;P                   R,          un         MUV'       g   V ;P                   R,          un         M3V ;P                   R,          un         MV ;P                   R,          un         V ;P                   V,          un         \        V4      '       d¯   \        ^^ ^ ^V^ ,          P                  V P                  ,           V P                  V^ ,          P                  ,
          V P                  ,
          4      pV( V^,          ,          V,          p\        \        V4      4      R,           V P                   ,           V n         V ;P                  RV P                   ,           R,           ,          un        RV n         RV n        R# )z¼Finish the current drawing segment.

Notes:
    Apply colors, opacity, dashes, line style and width, or
    morphing. Also whether to close the path
    by connecting last to first point.
r`   Nrõ  r  r†  r‡  rˆ  r(  rˆ	  r)  ú w
z J
z j
z d
zh
zB
zB*
zf
zf*
zS
r…  rÆ  r�  )Nr`   ú[] 0)r   r  rÖ   r°  r  r¶   r  r�  r  ri  r3  rj  r©  r)  )r&   rˆ  rp  r   r  r  rŠ  rr  r-  r  r	  r  rÙ  r”  r•  r�  rŸ  rñ  r  r€  s   &&&&&&&&&&&&&       r'   r­  ÚShape.finishq=  s„  € ð, �>‰>˜RÔÙà�AŒ:Ø‰EØŠ]ØˆEô ˜e SÓ)ˆ	Ü˜T 3Ó'ˆà—)‘)×1Ñ1°"Ó5ˆØÒØ$ W I¨VÐ4°t·~±~ÕEˆDŒNØ‰CàˆCà—	‘	×&Ñ&¨.Ð&ÓJˆØÒØ    uÐ-°·±Õ>ˆDŒNà�AŒ:˜% 1œ*Ø�NŠNœi¨Ó.°Õ7Õ7�Nà�aŒ<Ø '˜y¨Ð-°·±Õ>ˆDŒNØ�qŒ=Ø (˜z¨Ð.°·±Õ?ˆDŒNàÐ+Ô+Ø &˜x t˜_¨t¯~©~Õ=ˆDŒNçØ�NŠN˜eÕ#�NØ"ˆDŒOàÒØ�NŠN˜iÕ'�NàÒØ�NŠN˜hÕ&�NØÒ ßØ—N’N eÕ+–Nà—N’N fÕ,–NçØ—N’N eÕ+–Nà—N’N fÕ,–Nà�NŠN˜eÕ#�Nà�Š˜#Õ�Ü�e×ÒÜØ�1�a˜˜E !�HŸJ™J¨¯©Õ/°·±¸uÀQ½x¿z¹zÕ1IÈDÏFÉFÕ1RóˆBð �#˜˜a�•. 2Õ%ˆCÜ&¤x°£}Ó5¸Õ?À$Ç.Á.ÕPˆDŒNà�Š˜' D§N¡NÕ2°UÕ:Õ:�ØˆŒØˆŒÙr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rÝ  rè   rs  r  r,   )rþ  s   "r'   rÿ  r$  Ì=  s   € ÷ ñ ˜dð ¨dñ r)   c                óî  € \        V P                  4       V ;P                  V P                  ,          un        V P                  P	                  4       V n        V P                  '       di   V'       d   V P                  P                  4        \        P                  V P                  RV4      pV P                  P                  W P                  4       RV n
        RV n        RV n        RV n        RV n        R# )z†Update the page's /Contents object with Shape data.

The argument controls whether data appear in foreground (default)
or background.
r+  Nr`   )ro  rÖ   r)  r(  r  rÙ  r  r¤  r1  r˜
  r  rü   r   )r&   rÝ  r  s   && r'   r¯  ÚShape.commitÌ=  s£   € ô 	�D—I‘IÔØ�Š˜$Ÿ.™.Õ(�ØŸ™×.Ñ.Ó0ˆŒà�>�>ˆ>ßØ—	‘	×'Ñ'Ô)ä×)Ñ)¨$¯)©)°T¸7ÓCˆDà�H‰H×"Ñ" 4¯©Ô8àˆŒØˆŒ	ØˆŒØˆŒØˆŽr)   )r1  r   r3  r'  r  rÖ   r&  rü   r(  r)  rˆ  ri  rj  r%  r  )r™  ru  Nrx   rx   NFNTr™  r™  rx   )r/   r0   r1   r2   rc  r|  r!  r‘   r,  r  r$  r  r   r  r  r3  r¬  r(  r@  r;  rŸ  r®  r­  r¯  r3   r,   r)   r'   ro  ro  :  sú  † Ùàñó ðõ&ò(7õ*õõõ.õ0Cõ0÷HðT1°4÷ 1õfB÷
÷:#ðPxð
 ðxð  $ðxð ðxð  ðxð ðxð ðxð ðxð ðxð ðxð #ðxð ðxð  ð!xð" ð#xð$ !"ð%xð&  ð'xð( ÷)xðzBð
 ðBð #ðBð ðBð ðBð ðBð  ðBð ðBð  ðBð "ðBð ðBð  $ðBð  ð!Bð" ð#Bð$ ð%Bð& ð'Bð( ð)Bð* ð+Bð, !"÷-B÷H
Y÷vó r)   ro  c                  óè   € ] tR tRtRR ltR t]R 4       t]R 4       t	R t
RR ltRR	 ltRR
 ltR tRR lt]RR l4       t]RR l4       tRR lt ! R R4      tRR ltRR ltRR ltRR ltRtR# )r*  iå=  Nc                	ó–  € \         P                  ! VP                  R 4      4      pV'       d"   \        V\        4      '       g   \	        V4      pV'       d   VP
                  M\         P                  ! R4      p\        \         R4      '       d   \         P                  ! WRW64      V n        R# \         P                  ! WRW64      V n        R# )r  NÚFzStoryS)
r£   rå  r  r@   r~  rÄ   Ú	FzArchiver=   rÉ  ÚFzStory)r&   r   r!  Úemr  r4  Úarchs   &&&&&  r'   r‘   ÚStory.__init__ç=  s{   € Ü×6Ò6¸¿¹ÀGÓ8LÓMˆßœ: g¬w×7Ò7Ü˜gÓ&ˆGß&ˆw�|Š|¬E¯OªO¸TÓ,BˆÜ”5˜*×%Ò%ÜŸš¨¸2ÓDˆDŽIäŸš w¸"ÓCˆDŽIr)   c                ód  € V P                   p^ pVP                  RRR4      pV'       d‡   VP                  p\        V4      ^8X  dV   V^ ,          R8X  dH   V^,          R9   d:   VP	                  R4      pV'       g!   RV 2pVP                  RV4       V^,          pVP                  RRR4      pKŽ  R# )z\
Look for `<h1..6>` items in `self` and adds unique `id`
attributes if not already present.
Nr"  Ú123456rY  Úh_id_)r  r§   rï  r9   r  r  r†  )r&   Údomrg  ri  r   ÚattrÚid_s   &      r'   Úadd_header_idsÚStory.add_header_idsñ=  sœ   € ð
 �i‰iˆØˆØ�H‰H�T˜4 Ó&ˆßØ—9‘9ˆDÜ�4‹y˜AŒ~ $ q¥'¨3¤,°4¸µ7¸hÔ3FØ×,Ñ,¨TÓ2�ßØ! ! ˜+�Cà—O‘O D¨#Ô.Ø˜•F�AØ—‘˜D $¨Ó-ŠAñ r)   c                ó:  € \        V \        4      '       d   T pM\        RV 4      p\        4       pV FS  pVP                  ^,          '       g   K  VP                  '       g   K2  VP                  V9   d   KE  WCVP                  &   KU  	  V EFQ  pVP                  ^,          '       g   K  VP
                  '       g   K3  \        4       p\        VP                  4      VR&   VP
                  P                  R4      '       d[   VP
                  R,          p W7,          p \        TR&   TP                  w  r«rÍ\        Y«4      TR	&   TP                   ^,
          TR
&   MYVP
                  P                  R4      '       d!   \"        VR&   VP
                  R,          VR&   M\$        VR&   VP
                  VR&   W%P                   ^,
          ,          P'                  V4       EKT  	  V#   \         d-   p	\        ^8”  d   \        4        \        RT RT 24      T	hRp	?	ii ; i)aF  
Adds links to PDF document.
Args:
    document_or_stream:
        A PDF `Document` or raw PDF content, for example an
        `io.BytesIO` instance.
    positions:
        List of `ElementPosition`'s for `document_or_stream`,
        typically from Story.element_positions(). We raise an
        exception if two or more positions have same id.
Returns:
    `document_or_stream` if a `Document` instance, otherwise a
    new `Document` instance.
We raise an exception if an `href` in `positions` refers to an
internal position `#<name>` but no item in `positions` has `id =
name`.
ra  r  rm  r‰	  zNo destination with id=z, required by position_from: Nr  r  rÖ   zname:r   r   r  )r@   rÁ   r7   Ú
open_closerY  r9  r+  rü   r5   rk   r  r{   rÞ   r%   r  r)  Úpage_numr{  r   r¦  )Údocument_or_streamÚ	positionsrÉ   Úid_to_positionÚpositionÚposition_fromrÉ  Ú	target_idÚposition_torh  rµ  r·  r´  r¶  s   &&            r'   Úadd_pdf_linksÚStory.add_pdf_links>  sã  € ô& Ð(¬(×3Ò3Ø)‰Hä Ð'9Ó:ˆHô
 ›ˆã!ˆHà×#Ñ# a×'Ö'¨X¯[¯[ª[à—;‘; .Ô0áà3; H§K¡KÓ0ñ "ô 'ˆMà×(Ñ(¨1×,Ö,°-×2D×2DÒ2Dô “v�Ü# M×$6Ñ$6Ó7��V‘à ×%Ñ%×0Ñ0°×5Ò5à -× 2Ñ 2°2Õ 6�IðEØ&4Õ&@˜ð ô
 $-�D˜‘LØ%0×%5Ñ%5‘N�B˜Bô "' r£�D˜‘JØ#.×#7Ñ#7¸!Õ#;�D˜’Lð %×)Ñ)×4Ñ4°W×=Ò=Ü'1˜˜V™Ø'4×'9Ñ'9¸"Õ'=˜˜Všä'/˜˜V™Ø&3×&8Ñ&8˜˜U™ð ×/Ñ/°!Õ3Õ4×@Ñ@À×FñQ 'ðT ˆøô; %ô EÜ/°!Ô3¼Ô8HÜ*Ð-DÀYÀKÐOlÐmzÐl{Ð+|Ó}ð  DEð  EûðEús   ÄG#Ç#HÇ.'HÈHc                	óB   € V P                  4       pVP                  4       # r+   )rÉ   rg  ©r&   rÒ  s   & r'   r  Ú
Story.bodyY>  s   € à�m‰m‹oˆØ�{‰{‹}Ðr)   c                	óX   € \         P                  ! V P                  4      p\        V4      # r+   )r£   Úfz_story_documentrÄ   rÚ  rä  s   & r'   rÉ   ÚStory.document^>  s    € Ü×%Ò% t§y¡yÓ1ˆÜ�C‹yÐr)   c                	ó²   € \        V4      pV'       d   VP                  M\        P                  ! R 4      p\        P                  ! V P                  WC4       R # r+   )rè  rÄ   r£   rJ  Úfz_draw_story)r&   rR  rî  Úctm2r¿  s   &&&  r'   ÚdrawÚ
Story.drawb>  s6   € Ü  &Ó)ˆß#ˆf�kŠk¬¯ª¸Ó)>ˆÜ×Ò˜TŸY™Y¨Ö2r)   c                ó’  aa€ \        S4      \        J dQ   SP                  4        F;  p\        V4      \        J d   VP	                  4       '       d   K.  \        RV R24      h	  M/ o\        S4      '       d   SP                  P                  ^8w  d   \        R4      hVV3R lp\        P                  ! V P                  V4       R# )zE
Trigger a callback function to record where items have been placed.
zinvalid key 'rí   z@callback 'function' must be a callable with exactly one argumentc                ó¶  <€  ! R  R4      pV! 4       pV P                   Vn         V P                  Vn        V P                  Vn        \        V P                  4      Vn        V P
                  Vn        V P                  Vn        V P                  Vn        V P                  Vn	        S'       d&   SP                  4        F  w  r4\        W#V4       K  	  S! V4       R# )c                  ó   € ] tR tRtRtR# )Ú=Story.element_positions.<locals>.function2.<locals>.Position2iu>  r,   N©r/   r0   r1   r2   r3   r,   r)   r'   Ú	Position2rñ  u>  s   † Ûr)   ró  N)ra	  ÚheadingrY  rp  rü   r   rØ  Úrectangle_numÚrect_numr9  rD   Úsetattr)rÝ  ró  Ú	position2rô  rH   r  rm   s   &    €€r'   Ú	function2Ú*Story.element_positions.<locals>.function2t>  s¡   ø€ ÷ñ á!›ˆIØ&Ÿn™nˆIŒOØ (× 0Ñ 0ˆIÔØ#Ÿ;™;ˆIŒLÜ,¨X¯]©]Ó;ˆIŒNØ%Ÿ]™]ˆIŒNØ#+×#6Ñ#6ˆIÔ Ø!)×!7Ñ!7ˆIÔØ%Ÿ]™]ˆIŒNßØ ŸJ™JžL‘D�AÜ˜Y¨1Ö-ñ )á�iÖ r)   N)rÈ   r7   rˆ  ræ  ÚisidentifierrÃ   r]  Ú__code__Úco_argcountr£   Úfz_story_positionsrÄ   )r&   rm   r  rô  rù  s   &ff  r'   Úelement_positionsÚStory.element_positionsg>  s˜   ù€ ô �‹:œÓØ—Y‘Y–[�Ü˜Q›¤3›¨1¯>©>×+;Ô+;Ü$ }°Q°C°qÐ%9Ó:Ð:ò !ð ˆDÜ˜×!Ò! X×%6Ñ%6×%BÑ%BÀaÔ%GÜÐ_Ó`Ð`ö	!ô  	× Ò  $§)¡)¨YÖ7r)   c                ó    € \        V4      p\        P                  ! 4       p\        P                  ! V P                  WV4      pV\        V4      3# )z%
Wrapper for fz_place_story_flags().
)r  r£   rq  Úfz_place_story_flagsrÄ   rp  )r&   ÚwhererÐ  r/  r¹  s   &&&  r'   ÚplaceÚStory.place†>  sA   € ô   Ó'ˆÜ—’“ˆÜ×)Ò)¨4¯9©9°eÀUÓKˆØ”_ fÓ-Ð-Ð-r)   c                	óF   € \         P                  ! V P                  4       R # r+   )r£   Úfz_reset_storyrÄ   r-   s   &r'   r“
  ÚStory.reset�>  s   € Ü×Ò˜dŸi™iÖ(r)   c                	óP  aa€ R p^ o^ p\        ^ ^ ^ ^ 4      p V! Wg4      w  r‰p
V^,          pV'       d
   S^,          oV P                  V	4      w  r·S'       d   VV3R lpV P                  V4       V'       d’   V'       dN   V'       d#   V'       d   V! SW…^4       VP                  4        VP	                  V4      pV'       d   V! SW…^ 4       V P                  WZ4       V'       g#   V'       d   V! SW…^4       VP                  4        MV P                  R V
4       V'       d   EK  R # )Nc                ó&   <€ SV n         S! V 4       R # r+   )rÙ  )rÝ  rÙ  Ú
positionfns   &€€r'   Úpositionfn2Ú Story.write.<locals>.positionfn2Ÿ>  s   ø€ ð )1�HÔ%Ù˜xÖ(r)   )r+  r  rÿ  r  r
  rì  )r&   rÒ  Úrectfnr  Úpagefnr¿  rö  r/  rJ  rü   ró  r¹  r  rÙ  s   &&&f&        @r'   r   ÚStory.write’>  sñ   ù€ ØˆØˆØˆÜ�a˜˜A˜qÓ!ˆØÙ"(¨Ó":ÑˆH˜CØ˜�MˆHßà˜A•�ØŸ:™: tÓ,‰LˆDßö)ð
 ×&Ñ& {Ô3ßßçß!Ù" 8¨X¸AÔ>ØŸ™Ô)Ø ×+Ñ+¨XÓ6�CßÙ˜x¨¸Ô:Ø—	‘	˜3Ô$ßßÙ ¨(¸Ô;Ø—O‘OÔ%øà—	‘	˜$ Ô$ß’4Ùr)   c	                	ó  aaa€ \        4       oR p	 T	p
V! S4      p	RoWš8X  d   RoT	p\        W³WG4      pV'       d   VP                  4        \        4       oVVV3R lpTP                  S'       d   T MR VVV4       S'       g   Ku  R # )NFTc                ób   <€ SP                  V 4       S'       d   S'       d   S! V 4       R # R # R # r+   r†
  )rÝ  r  rÛ  Ústables   &€€€r'   r  Ú+Story.write_stabilized.<locals>.positionfn2Ë>  s%   ø€ à× Ñ  Ô*ßŸjÙ˜xÖ(ñ )‘6r)   )r´   r*  rÕ  r   )rÒ  Ú	contentfnr  r!  rÌ  r  r  r  rÕ  r§  Úcontent_prevÚcontent2r4  r  rÛ  r  s   &&&&&f&&&     @@r'   Úwrite_stabilizedÚStory.write_stabilized¹>  s…   ú€ ä“Fˆ	ØˆàØ"ˆLÙ Ó+ˆGØˆFØÔ&Ø�ØˆHÜ˜(¨bÓ:ˆEçØ×$Ñ$Ô&ä›ˆI÷)ð
 �K‰Kß$‘F¨$ØØØô	÷ ‰vÙr)   c                	óø   aa€ \         P                  ! 4       p\        V4      p	. oVV3R  lp
\        P	                  W�WW:WVV4	       V	P                  4        VP                  ^ 4       \        P                  VS4      # )c                óN   <€ SP                  V 4       S'       d   S! V 4       R # R # r+   r†
  ©rÝ  r  rÛ  s   &€€r'   r  Ú6Story.write_stabilized_with_links.<locals>.positionfn2ß>  ó!   ø€ à×Ñ˜XÔ&ßÙ˜8Ö$ñ r)   )r;   rª  rû  r*  r  r�  rQ
  rá  )r  r  r!  rÌ  r  r  r  rÕ  r   rÒ  r  rÛ  s   &&&&f&&&   @r'   Úwrite_stabilized_with_linksÚ!Story.write_stabilized_with_linksÙ>  se   ù€ ô —’“ˆÜ Ó'ˆØˆ	ö	%ô
 	×Ñ˜v°&ÀBÐU[ÐftÔuØ�‰ŒØ�‰�AŒÜ×"Ñ" 6¨9Ó5Ð5r)   c                	óì   aa€ \         P                  ! 4       p\        V4      p. oVV3R  lpV P                  WQWcR7       VP	                  4        VP                  ^ 4       \        P                  VS4      # )c                óN   <€ SP                  V 4       S'       d   S! V 4       R # R # r+   r†
  r  s   &€€r'   r  Ú+Story.write_with_links.<locals>.positionfn2î>  r  r)   )r  r  )r;   rª  rû  r   r�  rQ
  r*  rá  )r&   r  r  r  r   rÒ  r  rÛ  s   &&f&   @r'   r0  ÚStory.write_with_linksé>  s[   ù€ ä—’“ˆÜ Ó'ˆØˆ	ö	%ð
 	�
‰
�6¨kˆ
ÔIØ�‰ŒØ�‰�AŒÜ×"Ñ" 6¨9Ó5Ð5r)   c                  ó*   € ] tR tRtRtRR ltR tRtR# )ÚStory.FitResultiø>  a   
The result from a `Story.fit*()` method.

Members:

`big_enough`:
    `True` if the fit succeeded.
`filled`:
    Tuple (x0, y0, x1, y1) from the last call to `Story.place()`. This
    will be wider than .rect if any single word (which we never split)
    was too wide for .rect.
`more`:
    `False` if the fit succeeded.
`numcalls`:
    Number of calls made to `self.place()`.
`parameter`:
    The successful parameter value, or the largest failing value.
`rect`:
    The pumupdf.Rect created from `parameter`.
Nc                	óN   € Wn         W n        W0n        W@n        WPn        W`n        R # r+   ©r-  r/  r¹  Únumcallsr.  rü   )r&   r-  r/  r¹  r)  r.  rü   s   &&&&&&&r'   r‘   ÚStory.FitResult.__init__?  s    € Ø(ŒOØ ŒKØŒIØ$ŒMØ&ŒNØŽIr)   c                	ó¢   € R V P                    RV P                   RV P                   RV P                   RV P                   RV P
                   2# )z big_enough=z filled=z more=z
 numcalls=ú parameter=ú rect=r(  r-   s   &r'   rï   ÚStory.FitResult.__repr__?  sP   € à" 4§?¡?Ð"3Ø˜tŸ{™{˜mØ˜TŸY™Y˜KØ  §¡ Ø! $§.¡.Ð!1Ø˜TŸY™Y˜Kð)ðr)   r(  ry  )r/   r0   r1   r2   rc  r‘   rï   r3   r,   r)   r'   Ú	FitResultr&  ø>  s   † ñ	ô(	ö	r)   r/  c                ó¼  a aaaaaaaa€ V3R lo\        S\        \        34      '       g   Se   Q h\        S\        \        34      '       g   Se   Q h ! VVV3R lR4      pV! 4       oS'       d&   S! RSP                  : RSP                  : R24       S P                  4        VVVV3R lpVVVV VV3R	 loR
 p	SP                  f?   S'       d	   S! R4       V	! SP                  R4      p
 S! V
4      '       g   MIV
^,          p
K  S! SP                  4      '       d'   S'       d   S! RSP                  : R24       V! 4       # SP                  f?   S'       d	   S! R4       V	! SP                  ^4      p
 S! V
4      '       d   MPV
^,          p
K  S! SP                  4      '       g.   RSn        S'       d   S! RSP                  : R24       V! 4       # S'       d&   S! RSP                  : RSP                  : R24        SP                  SP                  ,
          V8  d   V! 4       # SP                  SP                  ,           ^,          p
S! V
4       KX  )aì  
Finds optimal rect that contains the story `self`.

Returns a `Story.FitResult` instance.
    
On success, the last call to `self.place()` will have been with the
returned rectangle, so `self.draw()` can be used directly.

Args:
:arg fn:
    A callable taking a floating point `parameter` and returning a
    `pymupdf.Rect()`. If the rect is empty, we assume the story will
    not fit and do not call `self.place()`.

    Must guarantee that `self.place()` behaves monotonically when
    given rect `fn(parameter`) as `parameter` increases. This
    usually means that both width and height increase or stay
    unchanged as `parameter` increases.
:arg pmin:
    Minimum parameter to consider; `None` for -infinity.
:arg pmax:
    Maximum parameter to consider; `None` for +infinity.
:arg delta:
    Maximum error in returned `parameter`.
:arg verbose:
    If true we output diagnostics.
:arg flags:
    Passed to mupdf.fz_place_story_flags(). e.g.
    zero or `mupdf.FZ_PLACE_STORY_FLAG_NO_OVERFLOW`.
c                ó8   <€ S'       g   Q h\        R V  24       R# )zfit(): N©rv   )r   r5  s   &€r'   r%   ÚStory.fit.<locals>.log>?  s   ø€ ßˆN�7Ü�g˜d˜VÐ$Ö%r)   Nc                  ó(   <€ ] tR tRtV VV3R ltRtR# )ÚStory.fit.<locals>.StateiE?  c                	óŒ   <€ SV n         SV n        R V n        R V n        R V n        ^ V n        S'       d   SV n        SV n        R # R # r+   )ÚpminÚpmaxÚpmin_resultÚpmax_resultr“  r)  Úpmin0Úpmax0)r&   r8  r7  r5  s   &€€€r'   r‘   Ú!Story.fit.<locals>.State.__init__F?  sE   ø€ Ø �”	Ø �”	Ø#'�Ô Ø#'�Ô Ø"�”Ø !�”ßØ!%�D”JØ!%�D–Jñ r)   )r)  r8  r<  r:  r7  r;  r9  r“  Nr“   )r8  r7  r5  s   €€€r'   ÚStater5  E?  s   ø† ÷	&ó 	&r)   r>  zstarting. state.pmin=ú state.pmax=r   c            
     óÄ  <€ SP                   eU   SP                  SP                   8w  d-   S'       d	   S! R4       S! SP                   4      p V '       g   Q hSP                  pM>SP                  '       d   SP                  M\        P                  SP                  R7      pS'       d7   S! RSP                  : RSP                  : RSP                   : RV: 24       V# )NzCCalling update() with pmax, because was overwritten by later calls.)r)  zfinished. state.pmin0=z state.pmax0=r?  z: returning result=)	r8  Úlast_pr:  r9  r*  r/  r)  r;  r<  )r-  r“  r%   rð  rN  r5  s     €€€€r'   rI   ÚStory.fit.<locals>.retW?  s­   ø€ Ø�z‰zÒ%Ø—<‘< 5§:¡:Ô-ßÙÐaÔcÙ!'¨¯
©
Ó!3�Jß%Ð%˜:Ø×*Ñ*‘à.3×.?×.?Ð.?˜×*Ò*ÄUÇ_Á_Ð^c×^lÑ^lÀ_ÓEm�ßÙÐ- §¡¡¨n°·±©~¸]¸u¿z¹z¹mÐK_ÐX^ÑW`ÐaÔbØˆMr)   c                ó`  <€ S! V 4      p\        V\        4      '       g   Q R\        V4      : RV: 24       hVP                  '       d5   Rp\        P                  V S
P                  R7      pS'       d	   S! R4       M„S	P                  VS4      w  rES
;P                  ^,          un        V'       * p\        P                  VVS
P                  V VVR7      pS'       d$   S! RS
P                  R R	V: R
V : RV: R2	4       V'       d   V S
n        VS
n	        MV S
n
        VS
n        V S
n        V# )zß
Evaluates `more, _ = self.place(fn(parameter))`. If `more` is
false, then `rect` is big enough to contain `self` and we
set `state.pmax=parameter` and return True. Otherwise we set
`state.pmin=parameter` and return False.
ztype(rect)=r-  F)r.  r)  z9update(): not calling self.place() because rect is empty.)r/  r¹  r)  r.  rü   r-  zupdate(): called self.place(): z>2dz: more=r,  r   )r@   r+  rÈ   rº  r*  r/  r)  r  r8  r:  r7  r9  rA  )r.  rü   r-  r“  r¹  r/  rÐ  Úfnr%   r&   rð  r5  s   &     €€€€€€r'   rN  ÚStory.fit.<locals>.updatee?  s  ø€ ñ �i“=ˆDÜ˜d¤D×)Ò)ÐC¨k¬d°4«j©]¸'¸D¹7Ð+CÓCÐ)Ø�}�}ˆ}Ø"�
ÜŸ™°9ÀuÇ~Á~˜ÓV�ßÙÐSÔUøà#Ÿz™z¨$°Ó6‘�Ø—’ !Õ#•Ø!%œX�
ÜŸ™Ø%Ø!Ø!&§¡Ø"+Ø!Ø#-ð )ó �÷ ÙÐ9¸%¿.¹.ÈÐ9MÈXÐPTÉwÐVbÐXaÑWcÐcjÐeiÑdkÐklÐmÔnßØ&�”
Ø$*�Õ!à&�”
Ø$*�Ô!Ø$ˆEŒLØÐr)   c                óN   € V e   V ^ 8X  d   V# W,          ^ 8”  d
   ^V ,          # V ) # )zq
Returns same sign as `direction`, larger or smaller than `p` if
direction is positive or negative respectively.
r,   )r²  Ú	directions   &&r'   ÚoppositeÚStory.fit.<locals>.oppositeŠ?  s/   € ð
 Šy˜A˜qœDØ Ð Ø�}˜qÔ Ø˜1•u�Ø�2ˆIr)   zfinding pmin.zstate.pmin=z is big enough.zfinding pmax.z No solution possible state.pmax=z$doing binary search with state.pmin=r¨  )r@   r6   rœ  r7  r8  r“
  )r&   rD  r7  r8  r}  r5  rÐ  r>  rI   rH  r.  r%   rð  rN  s   ffff&ff    @@@r'   r%  Ú	Story.fit?  sÜ  ÿø€ õ>	&ô ˜$¤¤e ×-Ò-°²Ð=Ð=Ü˜$¤¤e ×-Ò-°²Ð=Ð=÷
	&ö 
	&ñ “ˆçÙÐ(˜UŸZ™Z™M¨¨5¯:©:©-°qÐ9Ô:à�
‰
Œ÷	ð 	÷#	ò #	òJ		ð �:‰:Òç™˜mÔ-Ù  §¡¨RÓ0ˆIØÙ˜i×(Ò(ØØ˜Q•’	á�e—j‘j×!Ò!ß™C ; 5§:¡:¡-¨Ð ?Ô@Ù“u�à�:‰:Òç™˜mÔ-Ù  §¡¨RÓ0ˆIØÙ˜)×$Ò$ØØ˜Q•’	á˜%Ÿ*™*×%Ò%à!�”
ß™CÐ"C¸¿
¹
±}ÀAÐ FÔGÙ“u�÷ ‘CÐ?°E·J±J±=ÀÀ%Ç*Á*ÁÈaÐPÔQØØ�z‰z˜EŸJ™JÕ&¨Ô.Ù“u�ØŸ™ e§j¡jÕ0°AÕ5ˆIÙ�9Ör)   c                ór   a
aaa€ Vw  oorxVS,
          oVS,
          o
V
VVV3R lp	V P                  W’W4WV4      # )a1  
Finds smallest value `scale` in range `scale_min..scale_max` where
`scale * rect` is large enough to contain the story `self`.

Returns a `Story.FitResult` instance with `.parameter` set to `scale`.

:arg width:
    width of rect.
:arg height:
    height of rect.
:arg scale_min:
    Minimum scale to consider; must be >= 0.
:arg scale_max:
    Maximum scale to consider, must be >= scale_min or `None` for
    infinite.
:arg delta:
    Maximum error in returned scale.
:arg verbose:
    If true we output diagnostics.
:arg flags:
    Passed to Story.place().
c                óX   <€ \        SSSV S,          ,           SV S,          ,           4      # r+   r´  )r  r3  rˆ  rµ  r·  s   &€€€€r'   rD  ÚStory.fit_scale.<locals>.fnÓ?  s&   ø€ Ü˜˜B  U¨5¥[Õ 0°"°u¸Vµ|Õ2CÓDÐDr)   ©r%  )r&   rü   r"  r#  r}  r5  rÐ  r´  r¶  rD  r3  rˆ  rµ  r·  s   &&&&&&&   @@@@r'   r+  ÚStory.fit_scale¹?  sA   û€ ð. ‰ˆˆB�Ø�R•ˆØ�b•ˆ÷	Eð 	Eà�x‰x˜ y¸ÓHÐHr)   c                óZ   aa	a
€ Vw  oo
SV,           o	VV	V
3R lpV P                  WrW5V4      # )a   
Finds smallest height in range `height_min..height_max` where a rect
with size `(width, height)` is large enough to contain the story
`self`.

Returns a `Story.FitResult` instance.

:arg width:
    width of rect.
:arg height_min:
    Minimum height to consider; must be >= 0.
:arg height_max:
    Maximum height to consider, must be >= height_min or `None` for
    infinite.
:arg origin:
    `(x0, y0)` of rect.
:arg delta:
    Maximum error in returned height.
:arg verbose:
    If true we output diagnostics.
c                ó.   <€ \        SSSSV ,           4      # r+   r´  )r3  rµ  r´  r·  s   &€€€r'   rD  ÚStory.fit_height.<locals>.fnï?  s   ø€ Ü˜˜B  B v¥IÓ.Ð.r)   rN  )r&   rˆ  Ú
height_minÚ
height_maxÚoriginr}  r5  rD  rµ  r´  r·  s   &&&&&&& @@@r'   Ú
fit_heightÚStory.fit_height×?  s/   ú€ ð, ‰ˆˆBØ�%�Zˆ÷	/à�x‰x˜¨
¸7ÓCÐCr)   c                óZ   aa	a
€ Vw  oo	S	V,           o
VV	V
3R lpV P                  WrW5V4      # )a  
Finds smallest width in range `width_min..width_max` where a rect with size
`(width, height)` is large enough to contain the story `self`.

Returns a `Story.FitResult` instance.
Returns a `FitResult` instance.

:arg height:
    height of rect.
:arg width_min:
    Minimum width to consider; must be >= 0.
:arg width_max:
    Maximum width to consider, must be >= width_min or `None` for
    infinite.
:arg origin:
    `(x0, y0)` of rect.
:arg delta:
    Maximum error in returned width.
:arg verbose:
    If true we output diagnostics.
c                ó.   <€ \        SSSV ,           S4      # r+   r´  )rˆ  rµ  r·  r¶  s   &€€€r'   rD  ÚStory.fit_width.<locals>.fn@  s   ø€ Ü˜˜B  5¥¨"Ó-Ð-r)   rN  )r&   r3  Ú	width_minÚ	width_maxrU  r}  r5  rD  rµ  r·  r¶  s   &&&&&&& @@@r'   Ú	fit_widthÚStory.fit_widthó?  s/   ú€ ð, ‰ˆˆBØ�&�[ˆ÷	.à�x‰x˜ y¸ÓAÐAr)   r$  )r`   Né   Nr+   ru  r<  )Nr_  NNNT)NNrV  Frx   )rx   NrV  Frx   )rx   Nrã	  rV  F)r/   r0   r1   r2   r‘   rÕ  r|  rá  r{  r  rÉ   rì  rÿ  r  r“
  r   r  r  r0  r/  r%  r+  rV  r]  r3   r,   r)   r'   r*  r*  å=  s®   † ôDò.ð& ñRó ðRðh ñó ðòô3ô
8ô>.ò)ô%ðN óó ðð> ó6ó ð6ô6÷%ñ %ôNXôtIô<D÷8Bð Br)   r*  c                  óð   € ] tR tRtR tR tR tR R ltR tR!R R	 llt	R
 R lt
R"R ltR!R R lltR!R R lltR!R R lltR tR R R lltR tR#R ltR R ltR R ltR t]R 4       tR$R lt]tRtR# )%r  i@  c                	ó&  € \        V\        P                  4      '       d&   V^ ,          p\        P                  ! V4      V n        M=\        V\        P                  4      '       d   V^ ,          V n        M\        RV 24      hRV n        RV n        R# )rx   úUnrecognised args: TN)rI  r£   rq  r  rÄ   rk   rõ   rì   )r&   r  rJ  s   &* r'   r‘   ÚTextPage.__init__@  sm   € Ü�dœEŸL™L×)Ò)Ø˜A•wˆHÜ×)Ò)¨8Ó4ˆD�IÜ˜œe×/Ñ/×0Ò0Ø˜Q�ˆD�IäÐ1°$°Ð8Ó9Ð9ØˆŒØˆŽr)   c                	ó|  € V P                   p\        P                  ! R 4      p\        P                  ! V4      pV^8X  d   \        P                  ! WB^ 4       MIV^8X  d   \        P
                  ! WB^ 4       M*V^8X  d   \        P                  ! WB^ 4       M\        W24       VP                  4        \        V4      pV# )rè  )
rÄ   r£   r0
  r1
  Úfz_print_stext_page_as_htmlÚfz_print_stext_page_as_xmlÚfz_print_stext_page_as_xhtmlÚJM_print_stext_page_as_textrE	  rÙ  )r&   r  Ú
this_tpager%  rF	  r   s   &&    r'   Ú_extractTextÚTextPage._extractText@  s“   € Ø—Y‘Yˆ
Ü×!Ò! $Ó'ˆÜ�nŠn˜cÓ"ˆð �aŒ<Ü×-Ò-¨c¸qÕAØ˜Œ\Ü×,Ò,¨S¸aÕ@Ø˜Œ\Ü×.Ò.¨sÀÕBä'¨Ô8Ø×ÑÔÜ% cÓ*ˆØˆr)   c                	ó2   € \        V P                  W4       R # r+   )ÚJM_make_textpage_dictrÄ   )r&   Ú	page_dictrÚ  s   &&&r'   Ú_getNewBlockListÚTextPage._getNewBlockList2@  s   € Ü˜dŸi™i¨Ö8r)   c                	ó„   € R V P                   P                  RV P                   P                  /pV P                  W!4       V# r¥	  )rü   rˆ  r3  ro  )r&   rÚ  rn  s   && r'   Ú_textpage_dictÚTextPage._textpage_dict5@  s6   € Ø˜dŸi™iŸo™o¨x¸¿¹×9IÑ9IÐJˆ	Ø×Ñ˜iÔ-ØÐr)   c                óD   €  \        P                  ! T P                  4      # )z*Return a list with text block information.)"r  r   ÚextractBLOCKSrÄ   r£   rq  rÌ   rJ  r0
  ÚFixed_EMPTYrÈ   ÚFZ_STEXT_BLOCK_TEXTÚfz_clear_bufferÚJM_char_bboxÚJM_rects_overlaprç  ÚJM_append_runerõ  Úfz_union_rectræ  Úfz_append_byterÙ  r6  Úi_imagerð  r<  r   r"  rÔ  rµ  r·  r´  r¶  ro   )r&   Úblock_nri  Útp_rectr%  r[  ÚblockÚ	blockrectÚline_nÚ	last_charrs   Úlinerectr?  Úcbboxr   r2  rô  Úlitems   &                 r'   ru  ÚTextPage.extractBLOCKS:@  s   € àÜ×&Ò& t§y¡yÓ1Ð1r)   Nc               ó   € V ^8„  d   QhRR/# r€	  r,   )rþ  s   "r'   rÿ  ÚTextPage.__annotate__n@  s   € ÷ 
ñ 
°$ñ 
r)   c                ó¾   € V P                  RR7      pVe   VP                  VR&   VP                  VR&   V'       d!   VR,          pVP                  R R7       WCR&   V# )z>Return page content as a Python dict of images and text spans.F©rÚ  rˆ  r3  Úblocksc                óB   € V R ,          ^,          V R ,          ^ ,          3# ©r6  r,   ©rI  s   &r'   rê
  Ú&TextPage.extractDICT.<locals>.<lambda>v@  ó   €  q¨¥y°¥|°Q°vµY¸qµ\Ñ&Br)   r  ©rr  rˆ  r3  rÂ  ©r&   rÔ  rÂ  r  r�  s   &&&  r'   ÚextractDICTÚTextPage.extractDICTn@  s[   € à×!Ñ! eÐ!Ó,ˆØŠ>ØŸ8™8ˆC�‰LØŸI™IˆC�‰MßØ˜•]ˆFØ�K‰KÑBˆKÔCØ"�‰MØˆ
r)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  z@  s   € ÷ $ñ $˜Sñ $r)   c                ó$   € V P                  ^4      # )z%Return page content as a HTML string.©rj  r-   s   &r'   ÚextractHTMLÚTextPage.extractHTMLz@  rË  r)   c           	     ón  € RpV P                   p. pV EF  pV^,          pVP                  P                  \        P                  8X  d   K8  VP                  4       p^ pVP                  4       pVP                  '       d   Rp	MRp	\        P                  ! V4      p
V
P                  '       d   V
P                  4       pRp
V'       dû   \        P                  ! \        \        \        \        4      p\        P                  ! V4      '       g   Q h\        P                  ! VP                  4       ^ ^ VP                  4       ^ ^ 4      p\        P                   ! WkV4      w  rÞp\        P"                  ! V4      p\%        V4      pV^ 8X  d;   VP                  4       VP                  4       ,          VP'                  4       ,          p\        P(                  ! \        P*                  ! VP                  P,                  4      4      p\/        4       pVV\0        &   \3        VP                  P4                  4      V\6        &   \9        VP;                  4       4      V\<        &   VP                  4       V\>        &   VP                  4       V\@        &   \        PB                  ! V4      V\D        &   \        PF                  ! V4      V\H        &   VPK                  4       V\L        &   VPO                  4       V\P        &   VPS                  4       V\T        &   VV\V        &   V'       d   XVR&   V	VR&   VPY                  V4       EK   	  V# )z*Return a list with image meta information.TFNrì  zhas-maskr¨  )-rÄ   rÌ   rÈ   r£   rw  r~  rï  rÓ  Úfz_compressed_buffer_sizerá  r÷  rø  rL  r|  r   r"  rö  rÉ  r  rG   r-  Úll_fz_keep_colorspacerð  r7   Údictkey_numberrp  r6  Údictkey_bboxr{  Úi_transformÚdictkey_matrixÚdictkey_widthÚdictkey_heightr@  Údictkey_colorspacer<  r  rò  Údictkey_xresró  Údictkey_yresrÔ  Údictkey_bpcrÇ  ro   )r&   r€  r  ri  r¦   r�  r2  Úimg_sizerï  Úhas_maskÚ
compr_buffr$  r‹  rõ  r   r"  rì  rô  Ú
block_dicts   &&                 r'   r…  ÚTextPage.extractIMGINFO~@  sf  € àˆØ—Y‘Yˆ
ØˆÜˆEØ�q�LˆGØ×Ñ×$Ñ$¬×(AÑ(AÔAÙØ—-‘-“/ˆCØˆHØ—8‘8“:ˆDØ��ˆØ‘à �Ü×9Ò9¸#Ó>ˆJØ×$×$Ð$Ø%×?Ñ?ÓA�Ø!�
ßÜ—M’M¤/´?ÄOÔUdÓe�Ü×1Ò1°!×4Ò4Ð4Ð4Ü—N’N 3§5¡5£7¨A¨q°#·%±%³'¸1¸aÓ@�Ü!×:Ò:¸3À1ÓE‘	�˜Ü×-Ò-¨cÓ2�Ü˜v›�Ø˜q”=Ø"Ÿu™u›w¨¯©«Õ0°3·5±5³7Õ:�HÜ×#Ò#¤E×$?Ò$?ÀÇÁ×@YÑ@YÓ$ZÓ[ˆBÜ›ˆJØ)0ˆJ”~Ñ&Ü'6°u×7GÑ7G×7LÑ7LÓ'MˆJ”|Ñ$Ü):¸5×;LÑ;LÓ;NÓ)OˆJ”~Ñ&Ø(+¯©«ˆJ”}Ñ%Ø),¯©«ˆJ”~Ñ&Ü-2×-BÒ-BÀ2Ó-FˆJÔ)Ñ*Ü*/×*BÒ*BÀ2Ó*FˆJ”Ñ'Ø'*§x¡x£zˆJ”|Ñ$Ø'*§x¡x£zˆJ”|Ñ$Ø&)§g¡g£iˆJ”{Ñ#Ø'/ˆJ”|Ñ$ßØ'-�
˜8Ñ$Ø%-ˆJ�zÑ"Ø�I‰I�j×!ñQ  ðR ˆ	r)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  ®@  s   € ÷ ñ °#ñ r)   c                ó*  a€ ^ RI o^ RIpV P                  RR7      p ! V3R lRVP                  4      pVe   VP                  VR&   VP
                  VR&   V'       d!   VR,          pVP                  R	 R
7       WdR&   VP                  VRV^R7      pV# )z.Return 'extractDICT' converted to JSON format.NFrŒ  c                  ó$   <€ ] tR tRtV 3R ltRtR# )Ú'TextPage.extractJSON.<locals>.b64encodei´@  c                	óz   <€ \        V4      \        \        39   d    SP                  V4      P	                  4       # R # r+   ©rÈ   r  r©  Ú	b64encoderå  ©r&   rŸ  Úbase64s   &&€r'   r   Ú/TextPage.extractJSON.<locals>.b64encode.defaultµ@  ó3   ø€ Ü˜“7œu¤iÐ0Ô0Ø!×+Ñ+¨AÓ.×5Ñ5Ó7Ð7ñ 1r)   r,   N©r/   r0   r1   r2   r   r3   ©r¶  s   €r'   r´  r±  ´@  ó   ø† ÷8ñ 8r)   r´  rˆ  r3  r�  c                óB   € V R ,          ^,          V R ,          ^ ,          3# r�  r,   r�  s   &r'   rê
  Ú&TextPage.extractJSON.<locals>.<lambda>¾@  r’  r)   r  ©Ú
separatorsr	  r	  ©r   rc   ©r¶  r…  rr  ÚJSONEncoderrˆ  r3  rÂ  Údumps©r&   rÔ  rÂ  r…  r  r´  r�  r¶  s   &&&    @r'   ÚextractJSONÚTextPage.extractJSON®@  sŒ   ø€ ãÛØ×!Ñ! eÐ!Ó,ˆ÷	8˜×(Ñ(ô 	8ð
 Š>ØŸ8™8ˆC�‰LØŸI™IˆC�‰MßØ˜•]ˆFØ�K‰KÑBˆKÔCØ"�‰Mà�j‰j˜¨¸È1ˆjÓMˆØˆ
r)   c               ó   € V ^8„  d   QhRR/# r€	  r,   )rþ  s   "r'   rÿ  rŠ  Ä@  s   € ÷ 
ñ 
°Tñ 
r)   c                ó¾   € V P                  RR7      pVe   VP                  VR&   VP                  VR&   V'       d!   VR,          pVP                  R R7       WCR&   V# )zCReturn page content as a Python dict of images and text characters.TrŒ  rˆ  r3  r�  c                óB   € V R ,          ^,          V R ,          ^ ,          3# r�  r,   r�  s   &r'   rê
  Ú)TextPage.extractRAWDICT.<locals>.<lambda>Ì@  r’  r)   r  r“  r”  s   &&&  r'   ÚextractRAWDICTÚTextPage.extractRAWDICTÄ@  s[   € à×!Ñ! dÐ!Ó+ˆØŠ>ØŸ8™8ˆC�‰LØŸI™IˆC�‰MßØ˜•]ˆFØ�K‰KÑBˆKÔCØ"�‰MØˆ
r)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  Ð@  s   € ÷ ñ °Sñ r)   c                ó*  a€ ^ RI o^ RIpV P                  RR7      p ! V3R lRVP                  4      pVe   VP                  VR&   VP
                  VR&   V'       d!   VR,          pVP                  R	 R
7       WdR&   VP                  VRV^R7      pV# )z1Return 'extractRAWDICT' converted to JSON format.NTrŒ  c                  ó$   <€ ] tR tRtV 3R ltRtR# )Ú*TextPage.extractRAWJSON.<locals>.b64encodeiÖ@  c                	óz   <€ \        V4      \        \        39   d    SP                  V4      P	                  4       # R # r+   r³  rµ  s   &&€r'   r   Ú2TextPage.extractRAWJSON.<locals>.b64encode.default×@  r¸  r)   r,   Nr¹  rº  s   €r'   r´  rÐ  Ö@  r»  r)   r´  rˆ  r3  r�  c                óB   € V R ,          ^,          V R ,          ^ ,          3# r�  r,   r�  s   &r'   rê
  Ú)TextPage.extractRAWJSON.<locals>.<lambda>à@  r’  r)   r  r¾  rÀ  rÁ  rÄ  s   &&&    @r'   ÚextractRAWJSONÚTextPage.extractRAWJSONÐ@  sŒ   ø€ ãÛØ×!Ñ! dÐ!Ó+ˆ÷	8˜×(Ñ(ô 	8ð
 Š>ØŸ8™8ˆC�‰LØŸI™IˆC�‰MßØ˜•]ˆFØ�K‰KÑBˆKÔCØ"�‰MØ�j‰j˜¨¸È1ˆjÓMˆØˆ
r)   c                	óv   € \        V4      p\        V4      p\        P                  ! V P                  W4^ 4      pV# ru  )r+  r£   Úfz_copy_selectionrÄ   )r&   ÚpointaÚpointbr   rI  r°  s   &&&   r'   ÚextractSelectionÚTextPage.extractSelectionå@  s3   € Ü˜VÓ$ˆÜ˜VÓ$ˆÜ×'Ò'¨¯	©	°1¸Ó;ˆØˆr)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  ë@  s   € ÷ /ñ /¨ñ /r)   c                óà   € V'       g   V P                  ^ 4      # V P                  4       R,          pVP                  R R7       RP                  V Uu. uF  q3^,          NK  	  up4      # u upi )z%Return simple, bare text on the page.rV   c                ó&   € V ^,          V ^ ,          3# rp  r,   r�  s   &r'   rê
  Ú&TextPage.extractText.<locals>.<lambda>ð@  s   €  1 Q¥4¨¨1­¡,r)   r  r`   )rj  ru  rÂ  r  )r&   rÂ  r�  rI  s   &&  r'   ÚextractTextÚTextPage.extractTextë@  s]   € çØ×$Ñ$ QÓ'Ð'Ø×#Ñ#Ó% aÕ(ˆØ�‰Ñ.ˆÔ/Ø�w‰w¡fÓ-¡f ˜!Ÿ˜¡fÑ-Ó.Ð.ùÒ-s   ÁA+c                	ó¤   € V P                   p\        V\        P                  4      '       g   Q h\	        V4      p\        W#4      p\        V4      pV# r+   )rÄ   r@   r£   r  r  ÚJM_copy_rectangleÚ PyUnicode_DecodeRawUnicodeEscape)r&   rü   ri  rl  r°  r¦   s   &&    r'   rô  ÚTextPage.extractTextboxó@  sG   € Ø—Y‘Yˆ
Ü˜*¤e×&7Ñ&7×8Ò8Ð8Ð8Ü˜tÓ$ˆÜ! *Ó3ˆÜ-¨eÓ4ˆØˆ	r)   c                óF   €  \        P                  ! T P                  T4      # )z)Return a list with text word information.)r  r   ÚextractWORDSrÄ   r£   rq  rv  rÌ   rJ  r0
  rÈ   rw  rx  ry  rz  rç  rõ  ÚJM_is_word_delimiterÚJM_is_rtl_charræ  ÚJM_append_wordr{  r|  )r&   Ú
delimitersÚbuflenÚlast_char_rtlr  Úwbboxri  r€  r[  r—  r�  rƒ  rs   Úword_nr?  r†  Úword_delimiterÚthis_char_rtls   &&                r'   rè  ÚTextPage.extractWORDSû@  s   € àÜ×%Ò% d§i¡i°Ó<Ð<r)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  3A  s   € ÷ $ñ $˜cñ $r)   c                ó$   € V P                  ^4      # )z&Return page content as a XHTML string.r™  r-   s   &r'   ÚextractXHTMLÚTextPage.extractXHTML3A  rË  r)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rŠ  7A  s   € ÷ $ñ $˜Cñ $r)   c                ó$   € V P                  ^4      # )z$Return page content as a XML string.r™  r-   s   &r'   Ú
extractXMLÚTextPage.extractXML7A  rË  r)   c                ó¬   € V P                   p\        P                  ! VP                  P                  4      p\        P
                  ! V4      pRVn        V# )zTextPage current poolsize.N)rÄ   r£   ÚPoolrÌ   ÚpoolÚfz_pool_size)r&   r¾  rþ  rÉ  s   &   r'   ÚpoolsizeÚTextPage.poolsize;A  sA   € à—	‘	ˆÜ�zŠz˜%×*Ñ*×/Ñ/Ó0ˆÜ×!Ò! 4Ó(ˆØˆŒØˆr)   c                óv   € V P                   pVP                  P                  p\        V4      p\	        V4      pV# )zPage rectangle.)rÄ   rÌ   rJ  rp  r+  )r&   ri  rJ  r  s   &   r'   rü   ÚTextPage.rectCA  s6   € ð —Y‘Yˆ
Ø×(Ñ(×1Ñ1ˆÜ˜hÓ'ˆÜ�3‹iˆàˆ
r)   c                óò  € \        V P                  V4      pV'       g   V# \        V4      p\        V4       F0  p\	        WF,          4      pV'       d   WtV&   K"  VP
                  WF&   K2  	  V'       d   V# ^ pWe^,
          8  dt   WF,          pWF^,           ,          p	VP                  V	P                  8w  g   W‰,          P                  '       d   V^,          pKb  W‰,          WF&   WF^,            V^,          pK€  V# )z)Locate 'needle' returning rects or quads.)ÚJM_search_stext_pagerÄ   r9   rS  r)  rü   r¶  rº  )
r&   ÚneedleÚhit_maxrž
  r  rD   rg  rc  Úv1Úv2s
   &&&&      r'   rˆ  ÚTextPage.searchMA  sÃ   € ä" 4§9¡9¨fÓ5ˆßØˆJÜ�C“ˆÜ�u–ˆAÜ�S•V“ˆAßØ�A“àŸ™�“ñ ÷ ØˆJØˆØ˜!•)ŒmØ•ˆBØ˜•U•ˆBØ�u‰u˜Ÿ™Œ~ "¥'×!3×!3Ð!3Ø�Q•�ÙØ•WˆC‰FØ˜•E�
Ø�Q�JŠEØˆ
r)   rt  rƒ  rZ  ru  r+   )rx   r™  )r/   r0   r1   r2   r‘   rj  ro  rr  ru  r•  rš  r…  rÅ  rË  rÕ  rÛ  rá  rô  rè  rö  rú  r   r{  rü   rˆ  ÚextractTEXTr3   r,   r)   r'   r  r  @  s   † ò	òò*9ôò
2÷h
õ$ô.÷`÷,
÷ò*÷/òô6õp$õ$òð ñó ðôð4 „Kr)   r  c                  ód   € ] tR tRtRR lt]R 4       tRR ltRR ltR t	RR R	 llt
RR
 ltRtR# )rÍ  ijA  Nc                ó”  € \         P                  ! 4       V n        W n        W0n        \        V4      V n        \        ^^ ^ R^ V P                  P                  4      V n	        V P                  ( V n
        \        4       V n        RV P                  n        \        4       V n        RV P                  n        \        4       V n        RV n        R# )z;Stores text spans for later output on compatible PDF pages.z'Position following last text insertion.zAccumulated area of text spans.TNr¨  )r£   Úfz_new_textrÄ   r]  rp  r+  rü   r  r3  ró  r8  r)  r  rc  rÏ  rÁ  Ú
used_fontsrõ   )r&   Ú	page_rectr]  rp  s   &&&&r'   r‘   ÚTextWriter.__init__lA  sŽ   € ä×%Ò%Ó'ˆŒ	àŒØŒ
Ü˜“OˆŒ	Ü˜!˜Q  2 q¨$¯)©)×*:Ñ*:Ó;ˆŒØ—X‘X�IˆŒ	Ü›'ˆŒØ"Kˆ�‰ÔÜ›ˆŒà!Bˆ�‰ÔÜ›%ˆŒØˆŽr)   c                	óÀ   € \        \        P                  ! V P                  \        P                  ! R 4      \        P
                  ! 4       4      4      p\        V4      pV# r+   )rp  r£   Úfz_bound_textrÄ   ÚFzStrokeStater|  r+  rÑ  s   & r'   Ú_bboxÚTextWriter._bbox}A  sC   € äœu×2Ò2°D·I±I¼u×?RÒ?RÐSWÓ?XÔZ_×ZhÒZhÓZjÓkÓlˆÜ�3‹iˆØˆ
r)   c           
     ó®  € \        V4      V P                  ,          pVf   \        R4      pVP                  '       g    \'        RTP                   R24      hV'       d.   V P)                  V4      pRP+                  \-        V4      4      p^ p\.        P0                  ! V4      p	\3        V4      p
\.        P4                  ! V^ ^ WJP6                  V
P8                  4      p^ p^ pV^ 8X  d0   \.        P:                  ! V P
                  VP
                  W²WÖWÉ4      pM#\=        V P
                  VP
                  W²WÖWÉ4      p\?        V4      p\        VRR 4      V P@                  ,          V n!        V PD                  V P@                  ,          V n#        V PF                  V PB                  3pVPH                  R,          ^8X  d   V PJ                  PM                  V4       V# )z8Store 'text' at point 'pos' using 'font' and 'fontsize'.Nrñ  zUnsupported font 'r‡  r`   rK  r  )'r)  r8  rã  r€  r%   rÄ   rÌ   r   Út3matrixr6  r]  Úuse_glyph_bboxÚwidth_countÚwidth_defaultÚ
has_digestr¢   r{  r|  Úmupdf_font_namerÃ   Ú	clean_rtlr  rÅ  r£   rÁ  r+  Úfz_make_matrixri  rj  Úfz_show_stringÚJM_show_string_csr{  ró  r  r  rÏ  rÐ  r  r‚  )r&   r@  r   rÜ  rÿ   rI  Úright_to_leftr>  r{  rH  r²  ÚtrmÚ
markup_dirr=  r  s   &&&&&&&&       r'   ro   ÚTextWriter.appendƒA  sm  € ä�C‹j˜4Ÿ9™9Õ$ˆàŠ<Ü˜“<ˆDØ××ÐØô Ð1°$·)±)°¸BÐ?Ó@Ð@ßØ—>‘> $Ó'ˆDØ—7‘7œ8 D›>Ó*ˆDØˆMä×1Ò1°(Ó;ˆÜ˜SÓ!ˆÜ×"Ò" 8¨Q°°8¿S¹SÀ!Ç#Á#ÓFˆØˆ
ØˆØ˜Œ?Ü×&Ò&¨¯	©	°4·9±9¸cÈÐ_iÓp‰Cä# T§Y¡Y°·	±	¸3ÀeÐ\fÓmˆCÜ Ó$ˆä  B C ›/¨D¯H©HÕ4ˆŒØŸ™ d§h¡hÕ.ˆŒØ�n‰n˜dŸo™oÐ-ˆØ�:‰:�fÕ Ô"Ø�O‰O×Ñ Ô%Øˆ
r)   c           
     	ó°   € VR ,          pV F0  pV P                  WW4WVR7       V;P                  V,          un        K2  	  V P                  V P                  3# )rŸ  )rÜ  rÿ   rI  r>  )ro   rj  rÏ  r  )	r&   r@  r   rÜ  rÿ   rI  r>  r’  rõ  s	   &&&&&&&  r'   ÚappendvÚTextWriter.appendv¯A  sP   € Ø˜S•.ˆÛˆAØ�K‰K˜ TØ!ð ô :à�EŠE�WÕ�Eñ ð �~‰~˜tŸ™Ð.Ð.r)   c           	     óF  € V'       g   V# VP                  R4      p. p\        \        V4      4       Fu  pW$,          p\        V4      ^8  d   K  \        V Uu. uF  p\	        V4      NK  	  up4      ^ÿ8”  d   KH  RP                  \        V4      4      W$&   VP                  V4       Kw  	  . p\        \        V4      4       FÆ  pV. 8X  d   VP                  W4,          4       K#  W4,          VR,          ^,           8”  dU   \        V4      ^8”  d:   \        W'^ ,          VR,          ^,            4      W'^ ,          VR,          ^,           % W4,          .pK’  W4,          VR,          ^,           8X  g   K¯  VP                  W4,          4       KÈ  	  RP                  V4      pV# u upi )aÑ  Revert the sequence of Latin text parts.

Text with right-to-left writing direction (Arabic, Hebrew) often
contains Latin parts, which are written in left-to-right: numbers, names,
etc. For output as PDF text we need *everything* in right-to-left.
E.g. an input like "<arabic> ABCDE FG HIJ <arabic> KL <arabic>" will be
converted to "<arabic> JIH GF EDCBA <arabic> LK <arabic>". The Arabic
parts remain untouched.

Args:
    text: str
Returns:
    Massaged string.
r³   r`   r¨  )r8   rS  r9   r'  r:  r  rÅ  ro   )r&   r   Úwordsrë  rg  r   rõ  Úidx2s   &&      r'   r  ÚTextWriter.clean_rtl·A  s?  € ÷ ØˆKà—
‘
˜3“ˆØˆÜ”s˜5“zÖ"ˆAØ•ˆAä˜“F˜Q–J¤#±qÓ&9±q°!¤s¨1¦v±qÑ&9Ó":¸SÖ"@ØŸ7™7¤8¨A£;Ó/�‘Ø—
‘
˜1–ñ #ð ˆÜ”s˜3“x–ˆAØ�rŒzØ—‘˜C�FÖ#à•˜$˜r�( Q�,Ô&Ü�t“9˜q”=Ü4<Ø 1�g¨¨R­°1­Ð5ó5�E˜q�' D¨¥H¨q¥LÐ1ð ��x’à•˜4 �8 a�<Ö'Ø—‘˜C�FÖ#ñ !ð �x‰x˜‹ˆØˆùò+ ':s   ÁF
c               óH   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r†  rÒ  z'TextWriter'rü   r¼   r   rK  r@  rº   rÜ  ztyping.Optional[Font]rÿ   rœ  rö  rú  r  r6   Úwarnrè   r"  r>  rs  rµ   r,   )rþ  s   "r'   rÿ  ÚTextWriter.__annotate__åA  sŽ   € ÷ `ñ `Ø ð`àð`ð *ð`ð ð	`ð
 (ð`ð ð`ð !ð`ð ð`ð ð`ð  ð`ð ð`ð ñ`r)   c                ó8
  a aaa
a%a&a'a(€ \        V4      pVP                  '       d   \        R4      h\        S4      \        Jd   \	        R4      oVVV
3R lo(VVV
3R lo&VVV
V 3R lo%SR,          pS(! R4      pVP
                  V,
          o'VP                  V,           pV&3R lpV%V'V(3R	 lpSP                  pSP                  pV'       g   VV,
          ^8:  d   R
pMVV,
          pMTpSV,          pS'pVe   \        V4      pMVP                  VSV,          3,           pW19  d   \        R4      hV\        8X  d   RpMV\        8X  d   RpM^ p\        V4      \        J d   VP                  4       pM*. pV F"  pVP                  VP                  4       4       K$  	  \!        VP"                  VP$                  ,
          V,          4      ^,           p. p. p\'        V4       EF¤  w  ppVR9   dJ   VP)                  VV34       VP
                  V,
          pVP)                  \+        V4      ^,
          4       KW  V^ 8X  d   VP,                  VP.                  ,
          pMVP
                  V,
          pV	'       d   S P1                  V4      pS(! V4      pVV8:  d7   VP)                  VV34       VP)                  \+        V4      ^,
          4       Kí  VP3                  R4      pV! VV4      w  pp\+        V4      p RP5                  VRV 4      p \7        VRV 4      VV^,
          ,          ,           p!V!V8:  d,   VP)                  V V!34       VVR pVVR p\+        V4      pRp M	V^,          p\+        V4      ^ 8X  d   EK›  V'       d   K�  Q h	  \+        V4      p"V"V8”  d5   RV RV" R2p#Vf   M&V'       d   \9        RV#,           4       M\        V#4      h\        4       p$V\+        V4      ^,
          .,          p\;        V4       Fï  p VP=                  ^ 4      w  ppT	'       d   RP5                  \E        T4      4      pT^ 8X  d   Tp$T\F        8X  d:   TT9  d3   TS'8  d,   T! T$T4       TT$n        T$;P$                  T,          un        K‡  T^ 8”  g   TP.                  T8X  d(   T$;P.                  TT,
          T,          ,          un        S%! T$T4       TT$n        T$;P$                  T,          un        Kñ  	  V#   \>         d    \@        ^8¼  d   \C        4          T# i ; i)a  Fill a rectangle with text.

Args:
    writer: pymupdf.TextWriter object (= "self")
    rect: rect-like to receive the text.
    text: string or list/tuple of strings.
    pos: point-like start position of first word.
    font: pymupdf.Font object (default pymupdf.Font('helv')).
    fontsize: the fontsize.
    lineheight: overwrite the font property
    align: (int) 0 = left, 1 = center, 2 = right, 3 = justify
    warn: (bool) text overflow action: none, warn, or exception
    right_to_left: (bool) indicate right-to-left language.
zfill rect must not empty.rñ  c                ó,   <€ SP                  V SSR7      # )zReturn length of a string.©rÿ   r>  )rˆ  ©ri  rÜ  rÿ   r>  s   &€€€r'   r‡  Ú(TextWriter.fill_textbox.<locals>.textlenB  s"   ø€ à×#Ñ#Ø˜H°ð $ó ð r)   c                ó,   <€ SP                  V SSR7      # )z5Return list of single character lengths for a string.r2  )rA  r3  s   &€€€r'   rA  Ú-TextWriter.fill_textbox.<locals>.char_lengthsB  s   ø€ à×$Ñ$ Q°ÀjÐ$ÓQÐQr)   c                ó2   <€ SP                  WSSSR 7      pV# ))rÜ  rÿ   r>  r†
  )r@  r   rI   rÜ  rÿ   r>  rÒ  s   && €€€€r'   Úappend_thisÚ,TextWriter.fill_textbox.<locals>.append_thisB  s&   ø€ Ø—-‘-Ø D°8È
ð  ó ˆCð ˆJr)   çš™™™™™É?r³   c                ót  <€ . p. pV F«  pS! V4      p\        V4      pW`8:  d%   VP                  V4       VP                  V4       K@  \        V4      pV^ 8”  g   KT  \        VRV 4      pW`8:  d;   VP                  VRV 4       VP                  V4       WGR pWWR p\        V4      pKW  V^,          pKb  	  W#3# )z.Cut any word in pieces no longer than 'width'.N)rã  ro   r9   )	rˆ  r*  ÚnwordsÚword_lengthsr   Úwl_lstÚwlrG   rA  s	   &&      €r'   Ú
norm_wordsÚ+TextWriter.fill_textbox.<locals>.norm_wordsB  sÀ   ø€ àˆFØˆLÛ�Ù% a›�Ü˜“[�Ø”;Ø—M‘M !Ô$Ø ×'Ñ'¨Ô+Ùô ˜“K�Ø˜!–eÜ˜V B Q˜Z›�BØ”{ØŸ™ a¨¨ eÔ,Ø$×+Ñ+¨BÔ/Ø˜b˜E˜Ø!'¨ ˜Ü ›Kšà˜Q�šñ' ð( Ð'Ð'r)   c                óŽ  <€ VP                  R4       Uu. uF  q"R8w  g   K  VNK  	  pp\        V4      pV^ 8X  d   R# V^8X  d   S
! W^ ,          4       R# \        V Uu. uF  pS! V4      NK  	  up4      pV^,
          pSV,
          V,          pV F%  pS
! W4      w  r‰V	P                  V,           V n        K'  	  R# u upi u upi )zJustified output of a line.r³   r`   N)r8   r9   rã  ri  )rÇ  rs   r   r*  r<  r*  ÚgapsÚgaplr@  r‰  r8  Ú	std_widthr‡  s   &&        €€€r'   Úoutput_justifyÚ/TextWriter.fill_textbox.<locals>.output_justify5B  s¸   ø€ ð !%§
¡
¨3¤Ó;¡˜1¸±7—Q�Q¡ˆEÐ;Ü˜“ZˆFØ˜Œ{ÙØ˜Œ{Ù˜E¨¥8Ô,ÙÜ©%Ó0©% Q‘g˜a–j©%Ñ0Ó1ˆBØ˜A•:ˆDØ •N dÕ*ˆDÛ�Ù# EÓ-‘�ØŸ$™$ �+�–ñ ñ ùò <ùò 1s   •B=¢B=ÁCrŸ  NzText must start in rectangle.r   rÔ  r`   zOnly fitting ú of z lines.z	Warning: )r`   r³   )$r+  rº  rÃ   rÈ   rã  rˆ  rµ  r:  r;  r)  r*  rÀ  rÁ  ræ  r  r±  r6   r¶  rj  rZ  ro   r9   r´  ri  r  r8   r  rã  rv   rS  rÈ  r¤  r  r{   rÅ  rÂ  ))rÒ  rü   r   r@  rÜ  rÿ   rö  r  r.  r"  r>  Ú	toleranceÚ	space_lenÚ	std_startr@  rF  rR  rS  r’  Ú
LINEHEIGHTrˆ  rÏ  Ú	textlinesrs   Ú	max_linesÚ	new_linesÚ
no_justifyrg  r*  r*  r=  rG   Úline0r?  r   rž   rÇ  r8  rA  rE  r‡  s)   f&&&ff&&&&f                          @@@@r'   Úfill_textboxÚTextWriter.fill_textboxåA  s|  ÿ€ ô6 �D‹zˆØ�=�=ˆ=ÜÐ8Ó9Ð9Ü�‹:œTÓ!Ü˜“<ˆD÷	÷	R÷	ð 	ð ˜s•Nˆ	Ù˜C“Lˆ	Ø—J‘J Õ*ˆ	Ø—G‘G˜iÕ'ˆ	õ	(÷4	ð$ �m‰mˆØ�n‰nˆßØ�S�y˜AŒ~Ø‘à �)‘à ˆGà Õ'ˆ
Øˆð Š?Ü˜“*‰Cà—'‘'˜Y¨°3­Ð7Õ7ˆCØŒ?ÜÐ<Ó=Ð=ð Ô%Ô%Ø‰FØÔ&Ô&Ø‰FàˆFô �‹:œÓØŸ™Ó)‰IàˆIÛ�Ø× Ñ  §¡Ó!2Ö3ñ ô ˜Ÿ™ 3§5¡5�¨JÕ6Ó7¸!Õ;ˆ	àˆ	Øˆ
Ü  ×+‰GˆAˆtØ�yÔ Ø× Ñ  $¨	Ð!2Ô3ØŸ
™
 YÕ.�Ø×!Ñ!¤3 y£>°AÕ#5Ô7ÙØ�AŒvØŸ™ #§%¡%�‘àŸ
™
 YÕ.�çØ×'Ñ'¨Ó-�Ù˜“ˆBØ�UŒ{Ø× Ñ  $¨ Ô,Ø×!Ñ!¤3 y£>°AÕ#5Ô7Ùð —J‘J˜s“OˆEñ #-¨U°EÓ":ÑˆE�<ä�E“
ˆAØØŸ™  r¨ Ó+�Ü˜ b qÐ)Ó*¨Y¸!¸a½%Õ-@Õ@�Ø˜”;Ø×$Ñ$ e¨R [Ô1Ø! ! "˜I�EØ#/°°Ð#3�LÜ˜E›
�AØ ‘Eà˜•F�Aä�u“: ”?Úß‘q��qñQ ,ô^ �Y“ˆØ�IÔØ! ) ¨D°°¸Ð@ˆCØŠ|ØßÜ˜ cÕ)Õ*ä  “oÐ%ä“ˆØ”s˜9“~¨Õ)Ð*Õ*ˆ
Ü�yÖ!ˆAðØ$Ÿ=™=¨Ó+‘��b÷
 Ø—w‘wœx¨›~Ó.�à�AŒvØ�àÔ*Ô*¨q¸
Ô/BÀrÈIÄ~Ù˜u dÔ+Ø#�”Ø—’˜:Õ%•Ùà�1Œu˜Ÿ™ Ô*Ø—’˜E B�J¨&Õ0Õ0•á˜˜tÔ$ØˆEŒGØ�GŠG�zÕ!�Gñ1 "ð4 Ðøô/ ô Ü'¨1Ô,´Ô0@Ùð* Ðð/ús   ÐS4Ó4 TÔTc	                óÀ  € \        V4       \        V P                  VP                  ,
          4      R8”  d   \        R4      hVeZ   \	        V4      \
        \        39  g5   \	        V^ ,          4      \        Jg   \	        V^,          4      \        Jd   \        R4      hVe   Ve   \        R4      h\        VRR4      e   VR'8X  d   V P                  pVf   V P                  p VP                  4       p	^p
V^ 8¼  d
   V^8  d   Tp
^p. R(OpV'       d   \        V4      w  r¼V^8X  d   \        P                  ! 4       pM2V^8X  d   \        P                   ! 4       pM\        P"                  ! 4       p\        P$                  ! V	P'                  4       ^4      p\        P(                  ! R4      p\        P*                  ! V	P'                  4       \        P,                  ! 4       Wï4      p\        P.                  ! VV P0                  \        P,                  ! 4       VVV
\        P2                  ! \        P4                  4      4       \        P6                  ! V4       \9        Wž4      p\;        V4      pVV3pTpV^ ,          pV^,          pVw  ppVP=                  4       pVP?                  V4      pVe
   RV R	2pR
pMR;ppR.pV'       d   VPA                  V4       VPB                  pVPD                  R)9   d3   VP                  PF                  VP                  PH                  ,
          pM^ pVPJ                  p\M        V4      '       g   VPN                  ^ 8w  g   V^ 8w  dM   VPA                  R\Q        VPR                  VPT                  VPN                  ,           V,
          34       R24       V'       dc   V^ ,          V PV                  ,          p \        ^^4      PY                  V PR                  V PT                  4      pV( V^,          ,          V,          pV'       g	   V'       d+   VPA                  \Q        \[        V4      4      R,           4       V EF  p!V!P]                  R4      '       d   K  V!R8X  d)   VPA                  V!4       VPA                  VR R24       KL  V!P]                  R4      '       d8   \_        V!Pa                  4       ^ ,          R,          4      V,           p"RV"R R2p!EM\V!P]                  R4      '       dœ   V!Pa                  4       p#\c        V#^,          4      p$V^ 8w  d   V$R,          p%M^p%VPA                  \Q        V%4      R,           4       \_        V#^ ,          R,          4      V,           p&RPe                  RV&R 2.V#R,          ,           4      p!MªV!P]                  R4      '       d#   VPA                  V!Pg                  RR4      4       MqV!P]                  R4      '       d#   VPA                  V!Pg                  RR 4      4       M8V!P]                  R!4      '       d"   VPA                  V!Pg                  R!R"4      4       VPA                  V!4       EK
  	  V'       d   VPA                  V4       VPA                  R#4       R$Pe                  V4      Pi                  R%4      p\j        Pm                  VVVR&7       RpV Pn                   F  p&\q        VV&4       K  	  V# )*a’  Write the text to a PDF page having the TextWriter's page size.

Args:
    page: a PDF page having same size.
    color: override text color.
    opacity: override transparency.
    overlay: put in foreground or background.
    morph: tuple(Point, Matrix), apply a matrix with a fixpoint.
    matrix: Matrix to be used instead of 'morph' argument.
    render_mode: (int) PDF render mode operator 'Tr'.
rV  zincompatible page rectNz%morph must be (Point, Matrix) or Nonez$only one of matrix, morph is allowedr•  rè  r†  z BDCÚEMCr`   rc  r|  z cmÚBTrH  z Trz gsºrš  NNz/Alpú TfrG  z wr+  r³   z/Fr‰	  z rgr´  ÚRGz gz Gz kz Kr�  r#   r  )rÝ  r¨  r¯  r¢  )9ro  r,  rü   rÃ   rÈ   rµ   r´   r)  r  rî   r]  rp  r,  rB  r£   ré  Úfz_device_cmykÚfz_device_grayrZ  r1  r0
  Úpdf_new_pdf_devicer|  Úfz_fill_textrÄ   rÎ  Úfz_default_color_paramsr¼  ÚJM_merge_resourcesrÙ  r  r°  ro   rß  ru  r3  rˆ  rJ  rè   r·  r¶   ri  rj  r8  rK  r©  r  r6   r8   rœ  r  r  r  r  r¤  r  Úrepair_mono_font)'r&   rÖ   rp  r]  rÝ  r-  rî  rI  rÙ  râ  rñ  ÚncolÚ	dev_colorrð  ri  rK  r¿  Úmax_numsÚcont_stringr“  r  r§  Úmax_alpÚmax_fontÚold_cont_linesr�  rž  rŸ  Únew_cont_linesrÔ  r}  r  r²  rs   Úalpr  r7  r   rÜ  s'   &&&&&&&&&                              r'   rÎ  ÚTextWriter.write_textÇB  sh  € ô 	�DÔÜˆt�y‰y˜4Ÿ9™9Õ$Ó%¨Ô,ÜÐ5Ó6Ð6ØÒÜ�U“¤E¬4 =Ô0Ü˜E !�H“~¬UÓ2Ü˜E !�H“~¬VÓ3ä Ð!HÓIÐIØÒ %Ò"3ÜÐCÓDÐDÜ�7˜K¨Ó.Ò6¸'ÀR¼-Ø—l‘lˆGØŠ=Ø—J‘JˆEàØ—n‘nÓ&ˆGØˆEØ˜!Œ| ¨!¤Ø�ØˆDÚ$ˆIßÜ"7¸Ó">‘�Ø�qŒyÜ"×0Ò0Ó2‘
Ø˜”Ü"×1Ò1Ó3‘
ä"×1Ò1Ó3�
ä×*Ò*¨7¯;©;«=¸!Ó<ˆIÜ×*Ò*¨4Ó0ˆHÜ×*Ò*¨G¯K©K«M¼5¿>º>Ó;KÈYÓaˆCä×ÒØØ—I‘IÜ—N’NÓ$ØØØÜ×'Ò'¬×(EÑ(EÓFôô ×!Ò! 3Ô'ô *¨7Ó>ˆHÜ0°(Ó;ˆKØ Ð,ˆFØˆCà�q•6ˆØ�a•&ˆØ$Ñˆ�Ø ×+Ñ+Ó-ˆà×,Ñ,¨RÓ0ˆØÒØ˜'˜ $Ð'ˆCØ‰CàˆNˆC�#à˜ˆßØ×!Ñ! #Ô&à×"Ñ"ˆØ�=‰=˜IÔ%Ø—I‘I×$Ñ$ t§y¡y§¡Õ6‰EàˆEØ�]‰]ˆÜ��8Š8�r—u‘u ”z U¨a¤ZØ×!Ñ! H¬Y¸¿¹¸b¿d¹dÀRÇUÁU½lÈUÕ>RÐ7SÓ-TÐ,UÐUXÐ"YÔZçØ�a•˜4Ÿ9™9Õ$ˆAÜ˜1˜a“L×-Ñ-¨a¯c©c°1·3±3Ó7ˆEØ�V˜e A�hÕ&¨Õ.ˆFß—FØ×!Ñ!¤)¬H°VÓ,<Ó"=ÀÕ"EÔFä"ˆDØ�}‰}˜U×#Ò#ÙØ�tŒ|Ø×%Ñ% dÔ+Ø×%Ñ%¨°Q¨°sÐ&;Ô<ÙØ�}‰}˜U×#Ò#Ü˜$Ÿ*™*›, q�/¨"Õ-Ó.°Õ8�Ø˜c !˜W CÐ(’Ø—‘˜u×%Ò%Ø—z‘z“|�Ü˜d 1�g›�Ø !Ô#Ø �‘Aà�AØ×%Ñ%¤i°£l°TÕ&9Ô:Ü˜4 �7 2�;Ó'¨(Õ2�Ø—x‘x 2 d¨1 X  °$°rµ(Õ :Ó;‘Ø—‘˜u×%Ò%Ø×%Ñ% d§l¡l°4¸Ó&>Õ?Ø—‘˜t×$Ò$Ø×%Ñ% d§l¡l°4¸Ó&>Õ?Ø—‘˜t×$Ò$Ø×%Ñ% d§l¡l°4¸Ó&>Ô?Ø×!Ñ! $×'ñ5 #÷6 Ø×!Ñ! #Ô&Ø×Ñ˜eÔ$Ø—)‘)˜NÓ+×2Ñ2°7Ó;ˆÜ×Ñ˜t W°gÐÔ>ØˆØ—O”OˆDÜ˜T 4Ö(ñ $àˆ
r)   )
rp  ró  r8  r  r]  rü   rÏ  rÄ   rõ   r  r›  )Nrr  Nrx   rx   )Nrr  NF)NNrr  Nrx   NFF)Nr¨  r™  NNrx   rx   )r/   r0   r1   r2   r‘   r{  r  ro   r'  r  rR  rÎ  r3   r,   r)   r'   rÍ  rÍ  jA  s?   † ôð" ñó ðô
*ôX/ò,÷\`÷DDð Dr)   rÍ  c                  óž  € ] tR tRtRtR tR tR tR tR t	R t
R	R
RR
RR
RR
RR
RR
/R ltR tR tR tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       tR tR R ltR  tR! tR" tR# t]R$ 4       t]R% 4       t ]R& 4       t!R' t"R( t#R) t$]R* 4       t%]R+ 4       t&]R, 4       t']R- 4       t(R. t)R/ t*]R0 4       t+]t,]t-]'t.](t/R1t0R
# )2râ  iNC  zù
IRect() - all zeros
IRect(x0, y0, x1, y1) - 4 coordinates
IRect(top-left, x1, y1) - point and 2 coordinates
IRect(x0, y0, bottom-right) - 2 coordinates and point
IRect(top-left, bottom-right) - 2 points
IRect(sequ) - new from sequence or rect-like
c                	óH   € \         P                  W4      P                  4       # r+   )r+  rî  rÿ  rû  s   &&r'   rî  ÚIRect.__add__XC  ó   € Ü�|‰|˜DÓ$×*Ñ*Ó,Ð,r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r“  rÿ  r9  s   &&r'   r“  ÚIRect.__and__[C  rn  r)   c                	ó,   € \         P                  W4      # r+   )r+  r|  r9  s   &&r'   r|  ÚIRect.__contains__^C  s   € Ü× Ñ  Ó)Ð)r)   c                	ó6  € \        VR 4      '       g   R# \        V4      ^8H  ;'       dq    V P                  V^ ,          8H  ;'       dS    V P                  V^,          8H  ;'       d5    V P                  V^,          8H  ;'       d    V P
                  V^,          8H  # rö  )r=   r9   rµ  r·  r´  r¶  r€  s   &&r'   rø  ÚIRect.__eq__aC  sz   € Ü�q˜)×$Ò$ÙÜ�1‹v˜‰{×jÐj˜tŸw™w¨!¨A­$™×jÐj°4·7±7¸aÀ½d±?×jÐjÀtÇwÁwÐRSÐTUÕRVÁ×jÐjÐ[_×[bÑ[bÐfgÐhiÕfjÑ[jÐjr)   c                	ól   € V P                   V P                  V P                  V P                  3V,          # r+   rž  r•  s   &&r'   rŒ  ÚIRect.__getitem__fC  rR  r)   c                	ó*   € \        \        V 4      4      # r+   r  r-   s   &r'   rT  ÚIRect.__hash__iC  r  r)   rˆ  NrJ  rµ  r·  r´  r¶  c               	ób   € \        VR VRVRVRVRVRV/ w  V n        V n        V n        V n        R# )rˆ  rJ  rµ  r·  r´  r¶  N)Úutil_make_irectrµ  r·  r´  r¶  r¤  s   &$$$$$$*r'   r‘   ÚIRect.__init__lC  s?   € Ü-<¸tÐ-nÈÐ-nÈrÐ-nÐVXÐ-nÐ]_Ð-nÐdfÐ-nÐkmÑ-nÑ*ˆŒ�”˜$œ' 4¦7r)   c                	ó   € ^# rY  r,   r-   s   &r'   rÖ  ÚIRect.__len__oC  r  r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r  rÿ  rí  s   &&r'   r  ÚIRect.__mul__rC  rn  r)   c                	óv   € \        V P                  ) V P                  ) V P                  ) V P                  ) 4      # r+   )râ  rµ  r·  r´  r¶  r-   s   &r'   r  ÚIRect.__neg__uC  s+   € Ü�d—g‘g�X §¡˜x¨$¯'©'¨°D·G±G°8Ó<Ð<r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r±  rÿ  r9  s   &&r'   r±  ÚIRect.__or__xC  s   € Ü�{‰{˜4Ó#×)Ñ)Ó+Ð+r)   c                	ó   € \        V 4      # r+   ©râ  r-   s   &r'   r  ÚIRect.__pos__{C  rq  r)   c                	ó8   € R \        \        V 4      4      ,           # r…  r  r-   s   &r'   rï   ÚIRect.__repr__~C  r  r)   c                	ó¦   € \        V4      pV^ 8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# V^8X  d	   W n        R# \        R4      hr"  )r6   rµ  r·  r´  r¶  r¤  r#  s   &&&r'   r$  ÚIRect.__setitem__�C  s_   € Ü�‹FˆØ�!ŒV˜q”Wñ ð �!ŒV˜q”Wñ
 ð	 �!ŒV˜q”Wñ ð �!ŒV˜q”Wñ ô Ð1Ó2Ð2r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r'  rÿ  rû  s   &&r'   r'  ÚIRect.__sub__‹C  rn  r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r.  rÿ  rí  s   &&r'   r.  ÚIRect.__truediv__ŽC  s   € Ü×Ñ Ó(×.Ñ.Ó0Ð0r)   c                óB   € \        V P                  V P                  4      # r¿  rÀ  r-   s   &r'   r1  ÚIRect.bottom_left‘C  rÂ  r)   c                óB   € \        V P                  V P                  4      # rÄ  rÅ  r-   s   &r'   r.  ÚIRect.bottom_right–C  rÂ  r)   c                	óP   € \        ^ V P                  V P                  ,
          4      # ru  rÍ  r-   s   &r'   r3  ÚIRect.height›C  rÏ  r)   c                ó$   € V P                  V4      # )zCheck if x is in the rectangle.rÈ  r9  s   &&r'   rÉ  ÚIRect.containsŸC  rË  r)   c               ó   € V ^8„  d   QhRR/# rÑ  r,   )rþ  s   "r'   rÿ  ÚIRect.__annotate__£C  rÓ  r)   c                óD   € \        V P                  V P                  V4      # rÕ  rÖ  rƒ  s   &*r'   rØ  ÚIRect.get_area£C  rÚ  r)   c                óP   € V P                   P                  V4      pVP                  # )z$Extend rectangle to include point p.)rü   r¯  r  )r&   r²  rü   s   && r'   r¯  ÚIRect.include_point§C  s    € à�y‰y×&Ñ& qÓ)ˆØ�z‰zÐr)   c                óP   € V P                   P                  V4      pVP                  # )z(Extend rectangle to include rectangle r.)rü   r°  r  )r&   r$  rü   s   && r'   r°  ÚIRect.include_rect¬C  s    € à�y‰y×%Ñ% aÓ(ˆØ�z‰zÐr)   c                óH   € \         P                  W4      P                  4       # )z4Restrict rectangle to intersection with rectangle r.)r+  r’  rÿ  r€  s   &&r'   r’  ÚIRect.intersect±C  s   € ä�~‰~˜dÓ&×,Ñ,Ó.Ð.r)   c                	ó,   € \         P                  W4      # r+   )r+  ræ  r9  s   &&r'   ræ  ÚIRect.intersectsµC  s   € Ü�‰˜tÓ'Ð'r)   c                óv   € V P                   V P                  8¬  ;'       g    V P                  V P                  8¬  # ré  rê  r-   s   &r'   rº  ÚIRect.is_empty¸C  rì  r)   c                óÊ   € V P                   V P                  u;8H  ;'       d
    \        8H  Mu ;'       d/    V P                  V P                  u;8H  ;'       d
    \
        8H  # u # )zTrue if rectangle is infinite.rî  r-   s   &r'   r¹  ÚIRect.is_infinite½C  rð  r)   c                óv   € V P                   V P                  8*  ;'       d    V P                  V P                  8*  # rò  rê  r-   s   &r'   ró  ÚIRect.is_validÂC  rõ  r)   c                óp   € V P                   '       d   \        4       # V P                  P                  W4      # r÷  rø  rù  s   &&&r'   r-  ÚIRect.morphÇC  rû  r)   c           	     	óv   € \         P                  ! \        V  Uu. uF  qV,          NK  	  up4      4      # u upi r+   rà  rä  s   & r'   rO  Ú
IRect.normÏC  rç  rè  c                óþ   € V P                   V P                  8  d$   V P                   V P                  uV n        V n         V P                  V P                  8  d$   V P                  V P                  uV n        V n        V # )z)Replace rectangle with its valid version.r°  r-   s   &r'   rs  ÚIRect.normalizeÒC  r   r)   c                ón   € \        V P                  V P                  V P                  V P                  4      # r  r  r-   s   &r'   rM  Ú
IRect.quadÚC  r  r)   c                	ó   € \        V 4      # r+   r´  r-   s   &r'   rü   Ú
IRect.rectßC  s   € ä�D‹zÐr)   c                óB   € \        V P                  V P                  4      # r
  r  r-   s   &r'   r-  ÚIRect.top_leftãC  rÂ  r)   c                óB   € \        V P                  V P                  4      # r  r  r-   s   &r'   r0  ÚIRect.top_rightèC  rÂ  r)   c           	     óê  € \        V4      pV P                  '       g7   V P                  '       g%   VP                  '       g   VP                  '       d   \        R4      h\	        ^^ ^ ^V P
                  ) V P                  ) 4      \	        VP                  V P                  ,          VP                  V P                  ,          4      ,          \	        ^^ ^ ^VP
                  VP                  4      ,          # r  r  r€  s   &&r'   r  ÚIRect.torectíC  s§   € ä�‹GˆØ××Ð˜tŸ}Ÿ}˜}°··°ÀÇÇÀÜÐFÓGÐGä�q˜!˜Q  D§G¡G 8¨d¯g©g¨XÓ6Ü˜Ÿ™ 4§:¡:Õ-¨q¯x©x¸$¿+¹+Õ/EÓFõGä˜˜A˜q ! Q§T¡T¨1¯4©4Ó0õ1ð	r)   c                	óH   € \         P                  W4      P                  4       # r+   )r+  r  rÿ  rí  s   &&r'   r  ÚIRect.transformøC  s   € Ü�~‰~˜dÓ&×,Ñ,Ó.Ð.r)   c                	óP   € \        ^ V P                  V P                  ,
          4      # ru  r  r-   s   &r'   rˆ  ÚIRect.widthûC  rÏ  r)   rê  )1r/   r0   r1   r2   rc  rî  r“  r|  rø  rŒ  rT  r‘   rÖ  r  r  r±  r  rï   r$  r'  r.  r{  r1  r.  r3  rÉ  rØ  r¯  r°  r’  ræ  rº  r¹  ró  r-  rO  rs  rM  rü   r-  r0  r  r  rˆ  r+  r¤  r*  r«  r3   r,   r)   r'   râ  râ  NC  s´  † ñò-ò-ò*òkò
7ò!ðo ð o¨$ð o°4ð o¸Dð oÀTð oÈdô oòò-ò=ò,òò*òò-ò1ð ñ'ó ð'ð ñ'ó ð'ð ñ)ó ð)ò$õ9òò
ò
/ò(ð ñ8ó ð8ð ñ_ó ð_ð ñ9ó ð9ò%ò3òð ñ8ó ð8ð ñó ðð ñ'ó ð'ð ñ'ó ð'ò	ò/ð ñ)ó ð)ð 
€BØ	€BØ	€BØ	„Br)   râ  ÚPDF_ENUM_NAME_ÚCourierúCourier-ObliqueúCourier-BoldúCourier-BoldObliqueÚ	HelveticaúHelvetica-ObliqueúHelvetica-BoldúHelvetica-BoldObliqueúTimes-RomanúTimes-Italicú
Times-BoldúTimes-BoldItalicr>  r=  rñ  ÚheitÚheboÚhebiÚcourÚcoitÚcoboÚcobiÚtiroÚtiboÚtiitÚtibiÚsymbÚzadbr  i€ÿÿÚfitzÚColorÚ	ColorBurnÚ
ColorDodgeÚDarkenÚ
DifferenceÚ	ExclusionÚ	HardLightÚHueÚLightenrÝ  ÚMultiplyÚNormalÚOverlayÚ
SaturationÚScreenÚ	Softlightr  c                ó0   € R V  R\        WV34       RV R2# )z<</A<</S/GoTo/D[z	 0 R/XYZ z	]>>/Rect[ú]/BS<</W 0>>/Subtype/Link>>rP  )r   rI  rõ  rH  rh  s   &&&&&r'   rê
  rê
  .E  s2   € Ð)9¸!¸¸IÄiÐQRÐWXÐPYÓFZÐE[Ð[dÐefÐdgð  hCñ  (Dr)   Úgoto2c                ó   € R V  RV R2# )z<</A<</S/GoTo/Dz>>/Rect[rè  r,   rQ  s   &&r'   rê
  rê
  /E  s   €  °¨s°(¸1¸#Ð=XÑYr)   r  c                ó<   € R V  R\        WV34       RV RV RV R2# )z<</A<</S/GoToR/D[z /XYZ z]/F<</F(ú)/UF(ú)/Type/Filespec>>>>/Rect[rè  rP  r~  s   &&&&&&&r'   rê
  rê
  0E  sP   € Ð0AÀ!ÀÀFÌ9ÐVWÐ\]ÐU^ÓK_ÐJ`Ð`hÐijÐhkÐkpÐqrÐpsð  tMð  NOð  MPð  Pkñ  /lr)   r  c                ó   € R V  RV RV R2# )z<</A<</S/GoToR/Dz/F(ú	)>>/Rect[rè  r,   ©r   rI  rõ  s   &&&r'   rê
  rê
  1E  s   € Ð$4°Q°C°s¸1¸#¸YÀqÀcÐIdÑ"er)   r  c                ó   € R V  RV RV R2# )z<</A<</S/Launch/F<</F(rì  rí  rè  r,   rð  s   &&&r'   rê
  rê
  2E  s   € Ð$:¸1¸#¸UÀ1À#ÐE^Ð_`Ð^aÐa|Ñ"}r)   r  c                ó   € R V  RV R2# )z<</A<</S/URI/URI(rï  rè  r,   rQ  s   &&r'   rê
  rê
  3E  s   € Ð/°¨s°)¸A¸3Ð>YÑZr)   rü  c                ó   € R V  RV R2# )z<</A<</S/GoTo/D(z)/Type/Action>>/Rect[rè  r,   rQ  s   &&r'   rê
  rê
  4E  s   € Ð 0°°Ð3HÈÈÐKfÑgr)   c                  ó   € ] tR tRtRtRtR# )r½  i7E  z0Raised for documents with file structure issues.r,   N©r/   r0   r1   r2   rc  r3   r,   r)   r'   r½  r½  7E  s   † Ù:Ûr)   r½  c                  ó   € ] tR tRtRtRtR# )r¿  i;E  zRaised if file does not exist.r,   Nrõ  r,   r)   r'   r¿  r¿  ;E  s   † Ù(Ûr)   r¿  c                  ó   € ] tR tRtRtRtR# )r¹  i?E  z5Raised when creating documents from zero-length data.r,   Nrõ  r,   r)   r'   r¹  r¹  ?E  s   † Ù?Ûr)   r¹  r  r:  Úbidir6  r�  rÔ  rõ  r‰  rp  rð  r§  r©  zcs-nameÚdarŠ  Údescriptionr;  r¶  Úeffectrå  rj   r   rÐ  Ú
char_flagsrÜ  ró  r3  rY  rî  rD   rÈ  r[  r  rª  r   r]  rU  rü   rÉ  r  Úspansr“  r‰  r«  r¨  rÈ   rW  rˆ  r=  r  rò  ró  )ÚfontdescriptorsÚfontbuffersÚloaderc                ó®   € V'       d
   V^ ,          MRpRRRRRRRR/pWC,          ^ ,          WC,          ^,          ,          ^,          pWP,          V,          # )	rx   rà  r&  r'  r(  )r™  r™  r)  r+  r,  r,   )rˆ  r3  r  r2  r3  r  s   &&&   r'   r×  r×  ™G  sM   € çˆ4�Ž7 €DØ	ˆv�t˜[¨$°¸dÀLÐQ€AØ	
����a•g˜a•jÕ	  QÕ&€AØ�9�vÕÐr)   c                óÈ   € . pV P                  4       '       g   V# \        V4       F/  pVP                  \        P                  ! WV,           4      4       K1  	  \        V4      # r+   )r  rS  ro   r£   ró  r  )rÛ  r[  rG   rI   rg  s   &&&  r'   Ú_read_samplesr   G  sN   € ð €CØ�>‰>×Òàˆ
Ü�AŽYˆØ�
‰
”E×(Ò(¨&¸1µ*Ó=Ö>ñ ä�#‹;Ðr)   c                ó"   € W8*  ;'       d    W8*  # r+   r,   )rH   ÚlowÚhighs   &&&r'   rÕ  rÕ  ¬G  s   € Ø‰8×!Ð!˜™	Ð!r)   c           
     óH  € \         P                  ! V 4      p\        V4       EF{  pTpWA9   d   K  \         P                  ! W4      p\         P                  ! V\        R 4      4      pVP                  '       g   KX  \         P                  ! V4      p\        V^,
          R	R	4       EFô  p\         P                  ! Wh4      p	\         P                  ! \         P                  ! V	\        R4      4      \        R4      4      '       g   K`  \         P                  ! V	\        R4      4      p
\         P                  ! V	\        R4      4      pV
P                  '       dg   \         P                  ! \         P                  ! V
\        R4      4      \        R4      4      '       g   Kø  \         P                  ! V
\        R4      4      pR	p\         P                  ! V4      '       d/   \         P                  ! V^ 4      p\         P                  ! W4      pMe\         P                  ! V4      '       dJ   \         P                  ! V P                  4       \         P                  ! V4      4      w  p pVP                   pV^ 8  d   EKÓ  TpWA9   g   EKÞ  \         P"                  ! Wh4       EK÷  	  EK~  	  R# )
r¦  r¶  r   rÓ  rÒ  r�
  ÚGoTorÔ  Nr¨  )r£   r  rS  r  r  r  rÌ   r«  r¬  rö  rI  Úpdf_lookup_page_numberrÂ  r÷	  rÇ   r  rÖ   r­  )ra  rP  Ú	pagecountrg  rQ  r  r¯  rÆ  rŒ  r±  re  r8
  r{  r¸  r'  r@  s   &&              r'   rO  rO  °G  så  € Ü×%Ò% cÓ*€IÜ�9×ˆØˆØŒ=Ùä×+Ò+¨SÓ4ˆÜ×#Ò# W¬h°xÓ.@ÓAˆØ× × Ð ÙÜ×"Ò" 6Ó*ˆÜ�t˜a•x  R×(ˆAÜ×#Ò# VÓ/ˆAÜ×$Ò$¤e×&8Ò&8¸!¼XÀiÓ=PÓ&QÔS[Ð\bÓSc×dÒdÙÜ×'Ò'¨¬H°S«MÓ:ˆFÜ×%Ò% q¬(°6Ó*:Ó;ˆDØ× × Ð Ü×(Ò(¬%×*<Ò*<¸fÄhÈsÃmÓ*TÔV^Ð_eÓVf×gÒgÙÜ×)Ò)¨6´8¸C³=ÓA�ØˆCÜ×!Ò! 4×(Ò(Ü×,Ò,¨d°AÓ6�Ü×2Ò2°CÓ@‘Ü×$Ò$ d×+Ò+Ü!&×!6Ò!6¸¿	¹	»ÄU×E]ÒE]Ð_cÓEdÓ!e‘�˜!˜QØ—m‘m�Ø�QŒwÚØˆBØ�}Ü×&Ò&¨×2ô+ )ó r)   c                óØ   € \        V \        P                  \        P                  34      '       g   Q R \	        V 4      : RV : 24       hV P
                  '       g   \        \        4      hR# )ztype(cond)=z cond=N)r@   r£   rÓ   rÆ   rÈ   rÌ   rk   ÚMSG_IS_NO_PDF)Úconds   &r'   Ú
ASSERT_PDFr  ÔG  sV   € Ü�dœUŸ]™]¬E×,=Ñ,=Ð>×?Ò?ÐYÀKÄDÈÃJÁ=ÐPWÐRVÑQXÐAYÓYÐ?Ø�?�?ˆ?ÜœÓ&Ð&ñ r)   c                 ó>   € \        \        \        \        \        4      # r+   )râ  rø  r÷  r,   r)   r'   ÚEMPTY_IRECTr  ÚG  ó   € Ü”¤/´?ÄOÓTÐTr)   c                 ó*   € \        4       P                  # r+   )Ú
EMPTY_RECTrM  r,   r)   r'   Ú
EMPTY_QUADr  ÞG  s   € Ü‹<×ÑÐr)   c                 ó>   € \        \        \        \        \        4      # r+   )r+  rø  r÷  r,   r)   r'   r  r  âG  ó   € Ü”¤´/Ä?ÓSÐSr)   c                ó>   € \        V 4      '       g   \        R 4      hR# )z No journalling operation startedN)ÚJM_have_operationrk   ©ra  s   &r'   rd  rd  æG  s   € Ü˜S×!Ò!ÜÐ:Ó;Ð;ñ "r)   c                 ó>   € \        \        \        \        \        4      # r+   )râ  r÷  rø  r,   r)   r'   ÚINFINITE_IRECTr  ëG  r  r)   c                 ó*   € \        4       P                  # r+   )r™  rM  r,   r)   r'   r|  r|  ïG  s   € Ü‹?×ÑÐr)   c                 ó>   € \        \        \        \        \        4      # r+   )r+  r÷  rø  r,   r)   r'   r™  r™  óG  r  r)   c                óv   € \        V \        P                  4      '       g   Q h\        P                  ! V 4      pV# )z+
Turn fz_buffer into a Python bytes object
)r@   r£   rF  r7  )r4  rI   s   & r'   r#  r#  ÷G  s0   € ô �gœuŸ~™~×.Ò.Ð.Ð.Ü
×
&Ò
& wÓ
/€CØ€Jr)   c                óÄ   € V f   R# \        V \        4      '       g   Q R\        V 4      : 24       hV P                  RR4      pRpV F  pV\	        V4      ,          pK  	  V# )Nr`   ztype(c)=rS  Úsurrogateescape)r@   ræ  rÈ   r  rn  )rõ  rI  rI   Úbbs   &   r'   rÃ  rÃ   H  s`   € ð& 	‚yÙÜ�aœ×ÒÐ, (¤$ q£'¡˜}Ó,ÐØ	�‰�Ð*Ó+€AØ
€CÛˆØŒs�2‹w�Šñ à€Jr)   c                ó�  € \        V \        \        34      '       d   T pM’\        V R4      '       dl   V P	                  4       p\        V\
        4      '       d   VP                  R4      p\        V\        \        34      '       g   \        R\        V4       24      hM\        P                  ! 4       # \        P                  ! V4      # )z‚
Make fz_buffer from a PyBytes, PyByteArray or io.BytesIO object. If a text
io.BytesIO, we convert to binary by encoding as utf8.
rÄ  r  z&.getvalue() returned unexpected type: )r@   r  r©  r=   rÄ  ræ  r  rk   rÈ   r£   rF  rå  )r   rË  s   & r'   r.  r.  H  s�   € ô
 �&œ5¤)Ð,×-Ò-Ø‰Ü	�˜×	$Ò	$Ø�‰Ó ˆÜ�dœC× Ò Ø—;‘;˜wÓ'ˆDÜ˜$¤¬	Ð 2×3Ò3ÜÐDÄTÈ$ÃZÀLÐQÓRÐRð 4ô �~Š~ÓÐÜ×/Ò/°Ó5Ð5r)   c                óJ   € \        V 4      '       g   R # \        W,          4      # r+   )rJ  rœ  )r  rë  s   &&r'   ÚJM_FLOAT_ITEMr$  /H  s   € Ü˜C× Ò ÙÜ�•‹?Ðr)   c                óv   € V\        V 4      8  d)   W,          p\        V\        \        34      '       d   ^ V3# R# )rx   r›  )r9   r@   r6   rœ  )r  rë  r  s   && r'   rö  rö  4H  s3   € Ø
ŒS�‹X„~Ø�xˆÜ�dœS¤%˜L×)Ò)Ø�d�7ˆNØ€Nr)   c                ó‚  € ^ p^p^p	Rp
V
'       d   TpMTpRpTp\        V4      p\        P                  ! V4      p\        V4      p\        P                  ! VV4      p\        P
                  ! Wþ4      p\        P                  ! V4      p\        P                  ! V 4      pVP                  '       dF   \        P                  ! V4      \        P                  ! V4      8X  d   \        P                  ! V4      pW·8w  EdA   \        P                  ! V4      pVP                  '       d�   \        P                  ! V4      pW¹8X  d:   \        V4       F)  p\        P                  ! VV\        P                  4       K+  	  MÃ\        V4       F)  p\        P                  ! VV\        P                   4       K+  	  MŠ\        P"                  ! V4      '       d   \        P$                  ! ^ 4      pMWVP                  '       dF   \        P                  ! V4      \        P                  ! V4      8w  d   \        P$                  ! ^ 4      p\        P&                  ! VVWÄ4      pV'       d   \        P(                  ! V4       M\        P*                  ! V^ÿ4       \        P,                  ! VV4      pV'       dA   \        P.                  ! VV\        P0                  ! 4       \        P2                  ! 4       4       M?\        P4                  ! VV\        P0                  ! 4       \        P2                  ! 4       4       \        P6                  ! V4       V# )zZ
Pixmap creation directly using a short-lived displaylist, so we can support
separations.
TN)rè  r£   r·  r  Úfz_intersect_rectrà  Úfz_round_rectÚfz_document_output_intentrÌ   r@  Úfz_keep_colorspaceÚfz_page_separationsÚfz_count_separationsrS  Úfz_set_separation_behaviorÚFZ_SEPARATION_SPOTÚFZ_SEPARATION_COMPOSITEÚfz_page_uses_overprintÚfz_new_separationsrã  r/  r0  rM  r»  r|  rj  Úfz_run_page_contentsr¼  )r1  rÖ   ró  rô  rñ  r¯  r  Ú
SPOTS_NONEÚSPOTS_OVERPRINT_SIMÚ
SPOTS_FULLÚFZ_ENABLE_SPOT_RENDERINGÚspotsrþ  rð  rî  rü   Úrclipr6  ÚoirG   rg  rõ  r¿  s   &&&&&&&                r'   r  r  <H  sR  € ð
 €JØÐØ€Jà#ÐßØ#‰àˆà€DØ€Jä˜sÓ#€FÜ×Ò˜tÓ$€DÜ˜DÓ!€EÜ×"Ò" 4¨Ó/€DÜ×"Ò" 4Ó0€DÜ×Ò˜tÓ$€Dô 
×	(Ò	(¨Ó	-€Bà	‡}‡}€}Ü× Ò  Ó$¬×(=Ò(=¸bÓ(AÔAÜ×1Ò1°"Ó5ˆJð ÕÜ×(Ò(¨Ó.ˆØ�?�?ˆ?Ü×*Ò*¨4Ó0ˆAØÔ"Ü˜qž�AÜ×4Ò4°T¸1¼e×>VÑ>VÖWò "ô ˜qž�AÜ×4Ò4°T¸1¼e×>[Ñ>[Ö\ò "ä×)Ò)¨$×/Ò/ô ×+Ò+¨AÓ.‰DØ�]�]ˆ]œu×4Ò4°RÓ8¼E×<QÒ<QÐR\Ó<]Ô]ô
 ×+Ò+¨AÓ.ˆDä
×
'Ò
'¨
°D¸$Ó
F€CçÜ×Ò˜cÕ"ä×(Ò(¨¨dÔ3ä
×
"Ò
" 6¨3Ó
/€CßÜ×Ò˜$ ¤U§^¢^Ó%5´u·~²~Ó7GÕHä×"Ò" 4¨¬e¯nªnÓ.>ÄÇÂÓ@PÔQÜ	×Ò˜#ÔØ€Jr)   c                ó   € V # r+   r,   r«  s   &r'   r‹  r‹  ‚H  s   € à€Hr)   c               ó    € V ^8„  d   QhRRRR/# ©r†  r±  útyping.Sequencers  rµ   r,   )rþ  s   "r'   rÿ  rÿ  ˆH  s   € ÷ Iñ I�ð I Eñ Ir)   c                ó.   € \        \        R  V 4      4      # )c                ó>   € \        V 4      R 8¼  d   \        V ^4      # ^ # )g-Cëâ6?©r,  rÿ  r«  s   &r'   rê
  ÚJM_TUPLE.<locals>.<lambda>‰H  ó   € ¬c°!«f¸¬nœu Q¨›{ÐCÀ!ÐCr)   ©rµ   r  ©r±  s   &r'   r©  r©  ˆH  ó   € Ü”ÑCÀQÓGÓHÐHr)   c               ó    € V ^8„  d   QhRRRR/# r<  r,   )rþ  s   "r'   rÿ  rÿ  ŒH  s   € ÷ Iñ I�ð I Uñ Ir)   c                ó.   € \        \        R  V 4      4      # )c                ó>   € \        V 4      R 8¼  d   \        V ^4      # ^ # )rV  r@  r«  s   &r'   rê
  ÚJM_TUPLE3.<locals>.<lambda>�H  rB  r)   rC  rD  s   &r'   Ú	JM_TUPLE3rJ  ŒH  rE  r)   c                ó¼   € V f   R# \        V \        4      '       d   V P                  R4      p \        V \        4      '       g   Q R\	        V 4      : RV : 24       hV # )Nr`   rS  ztype(s)=z s=)r@   r  rå  ræ  rÈ   ©rŸ  s   &r'   r	  r	  �H  sS   € Ø‚yÙÜ�!”U×ÒØ�H‰H�VÓˆÜ�aœ×ÒÐ1 (¤$ q£'¡¨4¨Q©DÐ1Ó1ÐØ€Hr)   c                óª  € \        V \        P                  4      '       g   Q h\        V 4      p\        P                  ! V 4      p\        V4      p^ p \         RV V 2pWd9  d   MV^,          pK   \        V4      p\        P                  ! V\        V4      4      p\        P                  ! VRV4       ^ VP                  4       P                  n        R# )zs
Add a unique /NM key to an annotation or widget.
Append a number to 'stem' such that the result is a unique name.
Ú-r/  N)r@   r£   rä   rà   r  r�  ÚJM_annot_id_stemr‹  Úpdf_new_stringr9   r°  r1  rÌ   rX  )	rß   ÚstemrÖ   r&  rs  rg  Ústem_idÚresponser   s	   &&       r'   r/  r/  ™H  s´   € ô
 �eœUŸ^™^×,Ò,Ð,Ð,Ü˜5Ó!€DÜ×#Ò# UÓ+€IÜ  Ó&€EØ	€AØ
Ü%Ð& a¨ v¨a¨SÐ1ˆØÔØØ	ˆQ�ŠÜ˜GÓ$€HÜ×Ò ¬3¨x«=Ó9€DÜ	×Ò˜	 4¨Ô.Ø-.€D‡H�HƒJ×ÑÖ*r)   c                óÖ  € \         P                  ! W^ 4      p\         P                  ! V4      '       g   \        \        \
        4       \         P                  ! V\        R4      4      p\         P                  ! V\        R4      4      ^ 8X  g&   \         P                  ! V\        R4      4      ^ 8X  d$   \         P                  ! V\        R4      V4       R# \        \        \
        4       R# )z)
Add OC object reference to a dictionary
r  rs  ÚOCMDr×  N)
r£   r¹  r…  rÁ  ÚMSG_BAD_OC_REFrª	  r  r  r‰  rU  )ra  ré  r  Úindobjrb  s   &&&  r'   rÏ  rÏ  ®H  s�   € ô ×#Ò# C¨qÓ1€FÜ×Ò˜V×$Ò$Ü”Ô 0Ô1Ü×Ò˜v¤x°Ó'7Ó8€EÜ×Ò˜¤¨£Ó0°AÔ5Ü×Ò ¤x°Ó'7Ó8¸AÔ=ä×Ò˜3¤¨£°Ö7ä”Ô 0Ö1r)   c                ó¸  € \        4       pR pR
pR
pR p\        P                  ! V \        R4      4      p\        P                  ! V4      '       d¿   \        P
                  ! \        P                  ! V^4      4      p\        P                  ! V4      ^8X  dy   \        P                  ! V^4      p\        \        P                  ! V4      4       F>  p\        P                  ! \        P                  ! Wg4      4      pVP                  V4       K@  	  \        P                  ! V \        R4      4      p	V	P                  '       Ed   \        P
                  ! \        P                  ! V	\        R4      4      4      p\        P                  ! \        P                  ! V	\        R4      4      4      pVR8X  d   R p\        P                  ! V	\        R4      4      pVP                  '       db   \        \        P                  ! V4      4       F>  p\        P                  ! \        P                  ! WW4      4      pVP                  V4       K@  	  \        P                  ! V \        R4      4      pVP                  '       d5   \        P                  ! \        P                  ! V\        R4      4      4      p\        4       p
W:\        &   \        V4      V
\         &   W*\"        &   WJR	&   V
# )NÚBorderÚBSr:  r�
  r`   rÔ  ÚBEÚIr‹  r¨  )r´   r£   r  r  rI  r  r¬  r«  rS  r  ro   rÌ   r„  r7   r£  rµ   Údictkey_dashesÚdictkey_style)r&  Údash_pyr‰  rˆ  r‹  r  Údashrg  r  Úbs_or%  s   &          r'   r‘  r‘  ¾H  s
  € Ü‹f€GØ€EØ€EØ€FØ
€Cä
×
Ò
˜i¬°(Ó);Ó
<€CÜ×Ò˜3×ÒÜ×!Ò!¤5×#6Ò#6¸¸QÓ#?Ó@ˆÜ×Ò Ó$¨Ô)Ü×&Ò&¨¨QÓ/ˆDÜœE×/Ò/°Ó6Ö7�Ü×&Ò&¬×(;Ò(;¸TÓ(EÓF�Ø—‘ Ö$ñ 8ô ×Ò˜y¬(°4«.Ó9€DØ‡‡�Ü×!Ò!¤5×#5Ò#5°t¼XÀc»]Ó#KÓLˆÜ×!Ò!¤5×#5Ò#5°t¼XÀc»]Ó#KÓLˆØ�BŒ;ØˆEÜ× Ò  $¬°«Ó6ˆØ�>�>ˆ>ÜœE×/Ò/°Ó5Ö6�Ü×&Ò&¬×(;Ò(;¸SÓ(DÓE�Ø—‘ Ö$ñ 7ô ×
Ò
˜i¬°$«Ó
8€CØ
‡~‡~€~Ü×!Ò!¤5×#5Ò#5°s¼HÀS»MÓ#JÓKˆä
‹&€CØŒÑÜ  '›?€CŒÑØŒÑØˆ�NØ€Jr)   c                óÖ  € \        4       p\        4       p\        4       p\        P                  ! V \        P                  4      p\        P
                  ! V4      '       dd   \        P                  ! V4      p\        V4       F>  p\        P                  ! \        P                  ! WF4      4      pVP                  V4       K@  	  W!\        &   \        P                  ! V R 4      p\        P
                  ! V4      '       dd   \        P                  ! V4      p\        V4       F>  p\        P                  ! \        P                  ! WF4      4      pVP                  V4       K@  	  W1\        &   V# )r:  )r7   r´   r£   r  ÚPDF_ENUM_NAME_CrI  r«  rS  r  r¬  ro   Údictkey_stroker  Údictkey_fill)r&  r%  ÚbcÚfcr±  rG   rg  rf  s   &       r'   r¢  r¢  æH  s  € Ü
‹&€CÜ	‹€BÜ‹€BÜ×Ò˜9¤e×&;Ñ&;Ó<€AÜ×Ò˜!×ÒÜ×Ò Ó"ˆÜ�q–ˆAÜ×#Ò#¤U×%8Ò%8¸Ó%>Ó?ˆCØ�I‰I�cŽNñ ð ŒÑä×Ò˜I tÓ,€AÜ×Ò˜!×ÒÜ×Ò Ó"ˆÜ�q–ˆAÜ×#Ò#¤U×%8Ò%8¸Ó%>Ó?ˆCØ�I‰I�cŽNñ ð ŒÑØ€Jr)   c                óÜ  € \        V \        4      '       g   Q hR p^ pV P                  \        4      pV P                  \        4      pV P                  \
        4      pV P                  RR
4      p\        V4      p	\        P                  ! V\        R4      4       \        P                  ! V\        R4      4       \        P                  ! V\        R4      4       V^ 8  d   V	P                  \        4      pVf   V	P                  \        4      pVf   V	P                  \
        4      pV^ 8  d   V	P                  RR
4      p\        V\        4      '       d{   \        V4      ^ 8”  dk   \        V4      p\        P                  ! W4      p
V F  p\        P                  ! W«4       K  	  \        P                  ! W*\        R4      \        R4      4       \        P                  ! V\        P                  ! V4      \        R4      \        R4      4       V^ 8X  d   \!        V4      pM\        R4      p\        P                  ! W#\        R4      \        R4      4       V^ 8”  d�   \        P"                  ! V\        R4      ^4       \        P$                  ! V\        R4      4      p\        P&                  ! V\        R4      \        R4      4       \        P(                  ! V\        R	4      V4       R # R # )Nr‹  rZ  r[  rY  rÔ  r:  r�
  rü  r\  r¨  )r@   r7   r:   r£  r]  r^  r‘  r£   rH  r  rµ   r9   rR  Úpdf_array_push_intrV  Úpdf_new_realÚJM_get_border_stylerY  r  rU  rP  )r”  r1  r&  r  ÚdashlenÚnwidthÚndashesÚnstyleÚncloudsÚoborderÚdarrrH  s   &&&         r'   rŽ  rŽ  ýH  s&  € Ü�fœd×#Ò#Ð#Ð#Ø
€CØ€GØ�Z‰ZœÓ'€FØ�j‰jœ.Ó)€GØ�Z‰ZœÓ'€FØ�z‰z˜8 RÓ(€Gô ˜yÓ)€Gô 
×Ò˜	¤8¨D£>Ô2Ü	×Ò˜	¤8¨D£>Ô2Ü	×Ò˜	¤8¨HÓ#5Ô6ð �„zØ—‘œmÓ,ˆØ‚Ø—+‘+œ~Ó.ˆØ‚~Ø—+‘+œ}Ó-ˆØ�„{Ø—;‘; ¨"Ó-ˆä�7œE×"Ò"¤s¨G£}°qÔ'8Ü�w“-ˆÜ×"Ò" CÓ1ˆÛˆAÜ×$Ò$ dÖ.ñ ä×Ò˜Y¬h°t«n¼hÀs»mÔLä	×ÒØÜ×Ò Ó'Ü�T‹NÜ�S‹Mô	ð �!„|Ü! 6Ó*‰ä�s‹mˆÜ	×Ò˜¬°$«¼À#»ÔGà�„{Ü×Ò ¬H°T«N¸AÔ>Ü× Ò  )¬X°d«^Ó<ˆÜ×Ò˜C¤¨#£´¸³Ô>Ü×Ò ¤X¨c£]°GÖ<ñ	 r)   c                ó¦   € V ^\8X  d   R# ^ T u;8:  d   ^8:  g
   M V ^
8X  d   \        V 4      # RT u;8:  d
   R8:  d    R#  V R8:  d   RV R 2# RV R	 2# )
é\   z\u005ci Ø  iÿß  z\ufffdéÿÿ  z\urU  z\UÚ08x©rn  ©r?  s   &r'   Úmake_escapery  3I  s^   € Ø	ˆR„xÙØ	ˆrŽ�SŽ˜B "œHÜ�2‹wˆØ	�2Ö	˜Õ	Ùð 
 à	ˆvŒØ�R˜�Hˆ~Ðà�R˜�Hˆ~Ðr)   c                óF   € \         P                  ! V \        V4      4       R# )z?
APPEND non-ascii runes in unicode escape format to fz_buffer.
N)r£   rÙ  ry  )r—  r?  s   &&r'   r{  r{  @I  s   € ô 
×Ò˜4¤¨R£Ö1r)   c                ó  € \        V4      pVP                  VP                  VP                  VP                  VVVV3pV P                  V4       V^,           \        P                  ! \        P                  P                  4      3# )z
Functions for wordlist output
)	rÙ  rµ  r·  r´  r¶  ro   r£   rq  rv  )r[  r—  rï  r  rƒ  rð  rŸ  r‡  s   &&&&&&  r'   rë  rë  GI  sm   € ô 	˜tÓ$€Aà�H‰HØ�H‰HØ�H‰HØ�H‰HØØØØð	€Eð 
‡L�L�ÔØ�A�:”u—|’|¤E§L¡L×$<Ñ$<Ó=Ð=Ð=r)   c                ó¤  € \        V 4      p\        P                  ! V\        R4      4      p\        P                  ! V4      '       g"   \        P
                  ! V\        R4      ^4      p\        P                  ! V ^4      p\        P                  ! V\        R4      V4       Ve"   \        P                  ! V\        R4      V4       \        P                  ! V\        R4      \        R4      4       \        P
                  ! V\        R4      ^4      pV'       g   M \        P                  ! V\        R4      4      p\        V4      p	\        V	4       Ff  p
^ p\        W:4      w  rËV^8X  d   K  \        P                  ! W^ 4      p\        P                  ! W�4      '       g   KP  \        P                  ! W}4       Kh  	  \        P                  ! WV4       R# )	z)
Add OC configuration to the PDF catalog
r}  r*  Nry  Ú	BaseStater€  r  r|  )r�  r£   r  r  rI  rX  rZ  r¯  rU  r9   rS  rö  r¹  Úpdf_array_containsrK  )ra  r   rn  r  rŒ  ÚconfigsrÔ  Úonarrayrv  rG   rg  r  rh  Úinds   &&&&          r'   rl  rl  ZI  sX  € ô ! #Ó
&€CÜ× Ò  #¤x°	Ó':Ó;€GÜ×Ò˜w×'Ò'Ü×*Ò*¨C´¸)Ó1DÀaÓHˆÜ×Ò˜C Ó#€AÜ	×"Ò" A¤x°Ó'7¸Ô>ØÒÜ×&Ò&¨¬8°IÓ+>ÀÔHÜ	×Ò˜œ8 KÓ0´(¸5³/ÔBÜ×&Ò&¨¬8°D«>¸1Ó=€GßØä×!Ò! 3¬°Ó(8Ó9ˆÜ�‹GˆÜ�q–ˆAØˆDÜ! "Ó(‰GˆAØ�AŒvÙÜ×(Ò(¨#°QÓ7ˆCÜ×'Ò'¨×3Ô3Ü×$Ò$ gÖ3ñ ô 
×Ò˜'Ö%r)   c                óH  € \        W4      p\        P                  ! V4      pV P                  P                  '       g   V# VP
                  VP                  VP                  P                  ,           8  d-   VP
                  VP                  P                  ,
          Vn        V# )z
return rect of char quad
)ÚJM_char_quadr£   r`  rÌ   r=  r¶  r·  rÉ  )rs   r?  rc  r$  s   &&  r'   ry  ry  xI  sq   € ô 	�TÓ€AÜ×Ò Ó"€AØ�?‰?× × Ð ØˆØ‡t�tˆa�d‰d�R—]‘]×'Ñ'Õ'Ô'Ø�t‰t�b—m‘m×(Ñ(Õ(ˆŒØ€Hr)   c                óŽ  € ^ pV'       d   V'       d   V\        W4      ,          pV\        P                  ! V 4      \        ,          ,          pV\        P                  ! V 4      \
        ,          ,          pV\        P                  ! V 4      \        ,          ,          pV\        P                  ! V 4      \        ,          ,          pV# ru  )
Údetect_super_scriptr£   rq  ÚTEXT_FONT_ITALICrx  ÚTEXT_FONT_SERIFEDrt  ÚTEXT_FONT_MONOSPACEDrn  ÚTEXT_FONT_BOLD)rÜ  rs   r?  rÐ  s   &&& r'   ÚJM_char_font_flagsrŠ  …I  sŒ   € Ø€Eß—ØÔ$ TÓ.Õ.ˆØ	ŒU×$Ò$ TÓ*Ô-=Õ=Õ=€EØ	ŒU×#Ò# DÓ)Ô,=Õ=Õ=€EØ	ŒU×(Ò(¨Ó.Ô1EÕEÕE€EØ	ŒU×"Ò" 4Ó(¬>Õ9Õ9€EØ€Lr)   c                ó¸  € \         '       d@   \        P                  ! \        P                  ! V P
                  VP
                  4      4      # \        V \        P                  4      '       g   Q h\        V\        P                  4      '       g   Q h\        P                  '       d   VP                  # V P
                  P                  '       d   VP                  # \        P                  ! \        P                  ! VP
                  P                  4      4      p\!        V4      p\#        V4      pVP
                  P$                  pW4,
          \&        ,           pV^8¼  d@   \        P(                  ^ 8X  d+   \        P                  ! VP
                  P                  4      # VP
                  P$                  p\        P*                  ! V4      pVP,                  VP.                  ,
          pVR8  d   RpRpRp\        P(                  '       g   V^8  d   WF,          pW6,          pW4,
          pW5,          V,          pWE,          V,          pV P
                  P0                  P2                  p	V P
                  P0                  P4                  p
\        P6                  ! Wš) W©^ ^ 4      p\        P6                  ! WšV
) V	^ ^ 4      pV	R8X  d   ^Vn        ^Vn        \        P6                  ! ^^ ^ ^VP
                  P:                  P2                  ) VP
                  P:                  P4                  ) 4      p\        P6                  ! ^^ ^ ^VP
                  P:                  P2                  VP
                  P:                  P4                  4      p\        P<                  ! \        P                  ! VP
                  P                  4      V4      p\        P<                  ! Wû4      pV	^8X  d]   VP>                  P4                  ^ 8”  dB   W?P>                  n        W?P@                  n        WOPB                  n        WOPD                  n        MHV) VP>                  n        V) VP@                  n        V) VPB                  n        V) VPD                  n        VPB                  P2                  ^ 8  d#   ^ VPB                  n        ^ VP>                  n        VPD                  P2                  VPB                  P2                  ,
          pV\&        8  d¶   \        PF                  ! W!P
                  PH                  4      pV'       d„   \        PJ                  ! VVV P
                  P                  4      pVPB                  P2                  W…,          ,           VPD                  n        VPD                  P2                  VP@                  n        \        P<                  ! Wü4      p\        P<                  ! Wþ4      pV# )zA
re-compute char quad if ascender/descender values make no sense
rV  çÍÌÌÌÌÌì?rÔ  çš™™™™™¹¿r¨  )&r  r£   rV  r   rƒ  rÌ   r@   ÚFzStextLineÚFzStextCharr¸  r�   rM  r=  ÚFzFontÚll_fz_keep_fontrÜ  ÚJM_font_ascenderÚJM_font_descenderrÉ  ÚFLT_EPSILONrŽ   r3  r´  rµ  r¶  ri  rj  r  rH  rU  Úfz_transform_quadrû  r×  rÕ  rÖ  rï  rõ  rð  )rs   r?  rÜ  rR  rS  r7  Úasc_dscr6  Úfwidthrõ  rŸ  Útrm1Útrm2Úxlate1Úxlate2rM  Úcwidthró  s   &&                r'   rƒ  rƒ  �I  sû  € ÷ ‹[ô �|Š|œE×.Ò.°·±ÀÇÁÓOÓPÐPä�dœE×-Ñ-×.Ò.Ð.Ð.Ü�bœ%×+Ñ+×,Ò,Ð,Ð,Ü×%×%Ð%Ø�w‰wˆØ‡�××ÐØ�w‰wˆÜ�<Š<œ×-Ò-¨b¯m©m×.@Ñ.@ÓAÓB€DÜ
˜4Ó
 €CÜ
˜DÓ
!€CØ�M‰M×Ñ€EØ�iœ+Õ%€GØ�!„|œ×4Ñ4¸Ô9Ü�|Š|˜BŸM™M×.Ñ.Ó/Ð/ð
 �M‰M×Ñ€EÜ×Ò˜dÓ#€DØ�W‰W�t—w‘wÕ€FØ
ˆT„zØˆØˆØˆä×#×#Ð# w°¤{Ø�mˆØ�mˆØ�i€GØ
�+˜Õ
€CØ
�+˜Õ
€Cð
 	�‰×Ñ×Ñ€AØ�‰×Ñ×Ñ€AÜ×Ò  2 q¨Q°Ó2€DÜ×Ò  q b¨!¨Q°Ó2€DØ	ˆRŒØˆŒØˆŒÜ×!Ò! ! Q¨¨1¨r¯}©}×/CÑ/C×/EÑ/EÐ.EÈÏÉ×H\ÑH\×H^ÑH^ÐG^Ó_€FÜ×!Ò! ! Q¨¨1¨b¯m©m×.BÑ.B×.DÑ.DÀbÇmÁm×FZÑFZ×F\ÑF\Ó]€Fä×"Ò"¤5§<¢<°·±×0BÑ0BÓ#CÀVÓL€DÜ×"Ò" 4Ó.€Dð 	ˆA„v�$—'‘'—)‘)˜a”-Ø�‰Œ	Ø�‰Œ	Ø�‰Œ	Ø�‰�	à�Dˆ�‰Œ	Ø�Dˆ�‰Œ	Ø�Dˆ�‰Œ	Ø�Dˆ�‰Œ	ð
 ‡w�w‡y�y�1„}Øˆ�‰Œ	Øˆ�‰Œ	à�W‰W�Y‰Y˜Ÿ™Ÿ™Õ"€FØ”ÔÜ×)Ò)¨4·±·±ÓAˆßÜ×+Ò+¨T°5¸$¿/¹/×:OÑ:OÓPˆFØŸ™Ÿ	™	 F¥NÕ2ˆD�G‰GŒIØŸ™Ÿ	™	ˆD�G‰GŒIä×"Ò" 4Ó.€DÜ×"Ò" 4Ó0€DØ€Kr)   c           
     ó  € \         P                  ! V P                  4      p\         P                  ! V ^ 4      p\	        V4      pV^ 8X  d   R# \         P
                  ! V\        R4      4      p. p\        V4       EF  p\         P                  ! \         P                  ! WF4      4      pV^8X  d’   \         P                  ! \         P                  ! \         P                  ! WF4      ^ 4      4      \         P                  ! \         P                  ! \         P                  ! WF4      ^4      4      3pVP                  V4       KÆ  \         P                  ! \         P                  ! WF4      4      pVP                  V4       EK  	  V# )z0
return list of choices for list or combo boxes
NÚOpt)r£   r  rÄ   Úpdf_choice_widget_options2r9   r  r  rS  r«  r¬  r  ro   )	rß   r&  rU  rG   Úoptarrr  rg  r‹  r  s	   &        r'   ÚJM_choice_optionsr¡  éI  s  € ô ×#Ò# U§Z¡ZÓ0€Iä×+Ò+¨U°AÓ6€DÜˆT‹
€AØˆA„vÙä×Ò ¬H°U«OÓ<€FØ€Eä�A�YˆÜ×Ò¤×!4Ò!4°fÓ!@ÓAˆØ�Œ6ä×,Ò,¬e×.AÒ.AÄ5×CVÒCVÐX^ÓCbÐdeÓ.fÓgÜ×,Ò,¬e×.AÒ.AÄ5×CVÒCVÐX^ÓCbÐdeÓ.fÓgðˆCð �L‰L˜#Öä×*Ò*¬E×,?Ò,?ÀÓ,KÓLˆCØ�L‰L˜#×ñ ð €Lr)   c                ó¬  € \         P                  ! V\         P                  ! V 4      4      pVP                  VP                  ,
          pVP
                  VP                  ,
          pV^ 8:  g   V^ 8:  d   ^ # V P                  4       pWRP                  V P                  4       ,
          ,          V P                  4       VP                  V P                  4       ,
          ,          ,           p\         P                  ! V P                  4       4      ^8X  dõ   ^ÿV,
          p Tp\        ^ V4       F»  p\         P                  ! W^ 4       V^,          p\         P                  ! W^ 4       V^,          p\         P                  ! W^ 4       V^,          p\         P                  ! WV4       V^,          pV P                  4       '       g   K›  \         P                  ! W^ÿ4       V^,          pK½  	  We,          pV^ 8X  d    ^# V^,          pKë   Tp\        V4       F¢  p\        V P                  4       ^,
          4       F#  p	\         P                  ! WV4       V^,          pK%  	  V P                  4       '       d#   \         P                  ! W^ÿ4       V^,          pK‚  \         P                  ! WV4       V^,          pK¤  	  We,          pV^ 8X  d    ^# V^,          pKÑ  )zG
Clear a pixmap rectangle - my version also supports non-alpha pixmaps
)r£   Úfz_intersect_irectrR  r´  rµ  r¶  r·  rñ  rj  rG   ri  r@  rð  rS  rò  rñ  )
r8
  r¸   rI  r   rj  ÚdestspanÚdestprŸ  ri  rô  s
   &&&       r'   r1  r1  J  s$  € ô 	× Ò  ¤E×$8Ò$8¸Ó$>Ó?€AØ	�‰ˆq�t‰t�€AØ	�‰ˆq�t‰t�€AØˆA„v��a”Ùà�{‰{‹}€HØŸ™˜tŸv™v›x�Õ(¨4¯6©6«8°q·t±t¸d¿f¹f»hµÕ+GÕG€Eô ×Ò˜TŸ_™_Ó.Ó/°1Ô4Ø�e•ˆØØˆAÜ˜1˜a–[�Ü×$Ò$ T¨aÔ0Ø�Q•�Ü×$Ò$ T¨aÔ0Ø�Q•�Ü×$Ò$ T¨aÔ0Ø�Q•�Ü×$Ò$ T¨eÔ4Ø�Q•�Ø—:‘:—<”<Ü×(Ò(¨°#Ô6Ø˜•F’Añ !ð ÕˆEØ�AŒvØáð ��FŠAð ØˆÜ�q–ˆAÜ˜4Ÿ6™6›8 A�:Ö&�Ü×$Ò$ T¨eÔ4Ø�Q•’ñ 'ð �z‰z�|Š|Ü×$Ò$ T¨cÔ2Ø�Q•’ä×$Ò$ T¨eÔ4Ø�Q•’ñ ð 	ÕˆØ�Œ6Øáð 	
ˆQ�Šr)   c                óJ  € \        V \        \        34      '       d   V .p \        V \        \        34      '       g   R. 3# \        V 4      R9  d   R. 3# V R,          p\        \        V4      4       F#  pW,          ^ 8  g   W,          ^8”  g   K  ^W&   K%  	  \        V4      V3# )r™  rV   r¨  )rx   r™  r   rš  )r@   r6   rœ  r´   rµ   r9   rS  )rp  rI   rg  s   &  r'   rB  rB  <J  sŒ   € ä�%œ#œu˜×&Ò&Ø�ˆä�uœt¤U˜m×,Ò,Ø�2ˆvˆä
ˆ5ƒz˜Ô%Ø�2ˆvˆà
��(€CÜ”3�s“8Ž_ˆØ�6�AŒ:˜� !žØˆC‹Fñ ô ˆs‹8�Sˆ=Ðr)   c                óF   €  \        P                  ! T P                  T4      # rv  )r  r   Úll_JM_color_countrÌ   r7   r£   rR  r£  r(  r  rñ  r´  rµ  r¶  r·  rG   rj  ri  r  Úfz_is_empty_irectrS  r:   )rS  r  r¦   r9  r  rñ  rˆ  r3  rG   Ú	substriderŸ  Úoldpixrg  rŒ  Únewpixr:  rõ  s   &&               r'   r4  r4  NJ  s   € ØÜ×&Ò& r§}¡}°dÓ;Ð;r)   c                óö   € \         P                  ! V \         P                  4      w  rV'       d   V^ 8X  d   R# \         P                  ! \         P                  ! W4      4      p\         P
                  ! W24       V# )z"
compress char* into a new buffer
N)r£   Ú fz_new_deflated_data_from_bufferÚFZ_DEFLATE_BESTrF  Úfz_new_buffer_from_dataÚfz_resize_buffer)ÚinbufferrË  Úcompressed_lengthrÓ  s   &   r'   ÚJM_compress_bufferr´  vJ  s_   € ô $×DÒDØÜ×!Ñ!óÑ€D÷
 Ð$¨Ô)ÙÜ
�.Š.œ×6Ò6°tÓOÓ
P€CÜ	×Ò˜3Ô2Ø€Jr)   c                óÎ  € ^ p\         P                  ! 4       pV  F·  pVP                  P                  \        P
                  8w  d   K.  V Fƒ  p^ pV Fl  p\        WW4      p\        W4      '       g   K!  ^pV'       d   VP                  R4       ^ pVP                  \        VP                  P                  4      4       Kn  	  V'       g   K�  ^pK…  	  K¹  	  VP                  4       p	V	# )rx   r#   )r;   ÚStringIOrÌ   rÈ   r£   rw  ry  rz  r   ry  rõ  rÄ  )
rÖ   rl  Úneed_new_liner3
  r�  rs   Úline_had_textr?  r$  rŸ  s
   &&        r'   rä  rä  †J  s¸   € Ø€MÜ�[Š[‹]€FÛˆØ×Ñ× Ñ ¤E×$=Ñ$=Ô=ÙÛˆDØˆMÛ�Ü  Ó*�Ü# D×,Ô,Ø$%�Mß$ØŸ™ TÔ*Ø()˜Ø—L‘L¤¨R¯]©]¯_©_Ó!=Ö>ñ ÷ ‰}Ø !’ó ñ ð  	�‰Ó€AØ€Hr)   c                ó  € \         P                  ! 4       p^pTpTpW8”  d   RpTpTp\        V4      pTp	 \        W–V4      '       g   MÕ\         P                  ! W	4      p
\         P
                  ! V
4      p\         P                  ! WK4      w  rÍp\         P                  ! W¬\         P                  ! 4       \         P                  ! 4       4       \         P                  ! V4       Rp\         P                  ! WKW�V4      p\         P                  ! VRV4       W•,          p	Ké  \         P                  ! 4       p^Vn        ^Vn        ^Vn        ^Vn        ^Vn        ^ Vn        ^ Vn        ^ Vn        ^ Vn        ^Vn        ^ Vn        \         P2                  ! R4      p\         P4                  ! V4      p\         P6                  ! VVV4       VP9                  4        \         P:                  ! V4      p\=        V\>        4      '       g   Q hV# )zl
Convert any MuPDF document to a PDF
Returns bytes object containing the PDF, created via 'write' function.
Ni    r¨  ) r£   rÆ   r   rÕ  rm	  r·  Úpdf_page_writer»  r|  rj  r¼  rH  rI  rS
  rZ
  rV
  rW
  rX
  r^
  rT
  rU
  rY
  r\
  r]
  r[
  r0
  r1
  ri
  rE	  r7  r@   r  )r1  rÃ  rT  r`  r	  r-  rŸ  rh  ry  rg  rÖ   rJ  r¿  ri  rK  rL  rU  r%  rF	  rõ  s   &&&&                r'   r¬  r¬  �J  s³  € ô
 ×ÒÓ €FØ€DØ
€AØ
€AØ	„wØˆØˆØˆÜ
˜6Ó
"€CØ
€AØ
Ü˜˜a× Ò ØÜ×!Ò! #Ó)ˆÜ×&Ò& tÓ,ˆÜ#(×#7Ò#7¸Ó#IÑ ˆ˜Ü×Ò˜$¤U§^¢^Ó%5´u·~²~Ó7GÔHÜ×Ò˜cÔ"ØˆÜ×%Ò% f¸ÈÓQˆÜ×Ò˜f b¨(Ô3Ø	�	Šô × Ò Ó"€DØ€D„OØ€DÔØ€DÔØ€DÔØ€DÔØ€DÔØ€D„MØ€DÔØ€D„NØ€D„MØ€D„Nä
×
Ò
˜dÓ
#€CÜ
�.Š.˜Ó
€CÜ	×Ò˜V S¨$Ô/Ø×ÑÔÜ×$Ò$ SÓ)€AÜ�aœ×ÒÐÐØ€Hr)   c           
     ó,  € \         P                  ! \         P                  ! \         P                  ! V 4      R 4      4      p\         P                  ! V\         P
                  4      p\         P                  ! V4      p \        WV4       \         P                  ! V\        R4      V4       V\         P                  8X  dv   V\        \        ,          ,          p\         P                  ! \         P                  ! V 4      \         P                  ! V4      \        R4      \        R4      \        R4      4       \         P                  ! \         P                  ! V 4      R4      pVP                  '       ga   \         P                   ! V ^4      p\         P                  ! \         P                  ! V 4      V\        R4      \        R4      \        R4      4       \         P"                  ! W†4       V#   \$         d¡    \&        '       d   \)        4        \         P*                  ! Y4       T\         P                  8X  d^   \         P                  ! \         P                  ! T 4      \         P                  ! T4      \        R4      \        R4      \        R4      4       h i ; i)zRoot/AcroForm/SigFlagsr+  rà  rá  rº  zRoot/AcroForm/Fieldsr  )r£   r  r|  rä  Úpdf_create_annot_rawrT  r  ÚJM_set_field_typer¯  r  ÚPDF_WIDGET_TYPE_SIGNATUREÚSigFlag_SignaturesExistÚSigFlag_AppendOnlyrV  rU  rÌ   rR  rK  rk   r  r{   rª  )	r1  rÖ   rÈ   Ú	fieldnameÚold_sigflagsrß   r&  r»  rœ	  s	   &&&&     r'   r‘  r‘  ÒJ  sã  € Ü×#Ò#¤E×$7Ò$7¼×8IÒ8IÈ#Ó8NÐPhÓ$iÓj€Lô
 ×&Ò& t¬U×-CÑ-CÓD€EÜ×#Ò# EÓ*€Ið&Ü˜#¨$Ô/Ü×&Ò& y´(¸3³-ÀÔKà”5×2Ñ2Ô2Ø#Ô'>ÔASÕ'SÕTˆHÜ×ÒÜ×%Ò% cÓ*Ü×%Ò% hÓ/Ü˜VÓ$Ü˜ZÓ(Ü˜ZÓ(ôô ×"Ò"¤5×#4Ò#4°SÓ#9Ð;QÓRˆØ��ˆÜ×&Ò& s¨AÓ.ˆDÜ×ÒÜ×%Ò% cÓ*ØÜ˜VÓ$Ü˜ZÓ(Ü˜XÓ&ôô 	×Ò˜TÔ-ð €Løô ô ßÓ¤NÔ$4Ü×Ò˜tÔ+à”5×2Ñ2Ô2Ü×ÒÜ×%Ò% cÓ*Ü×%Ò% lÓ3Ü˜VÓ$Ü˜ZÓ(Ü˜ZÓ(ôð 	ðús   Á<C3G( Å0A6G( Ç(JÇ?BJc                óÈ  € \         '       d   \        P                  ! V 4      # \        V 4      p\        P
                  ! \        P                  ! V \        R4      4      4      p\        P                  ! V4      '       g   \        P                  ! V4      '       d   TpVP                  VP                  ,
          pVP                  VP                  ,
          pW2n        WBn
        V# )z
return a PDF page's CropBox
r  )r  r   rµ	  ri  r£   r  r  r  rç  ræ  r¶  r·  )rL  rJ  r¶	  r·  r¶  s   &    r'   rµ	  rµ	  K  s¤   € ÷ ƒ{Ü×Ò Ó)Ð)ä˜8Ó$€HÜ×ÒÜ×.Ò.¨x¼À)Ó9LÓMó€Gô × Ò  ×)Ò)¬U×-CÒ-CÀG×-LÒ-LØˆØ	�‰�w—z‘zÕ	!€BØ	�‰�w—z‘zÕ	!€BØ„JØ„JØ€Nr)   c                óà   € \        V 4      p\        VP                  VP                  ,
          4      p\        VP                  VP
                  ,
          4      p\        P                  ! W#4      pV# r+   )rµ	  r,  r´  rµ  r¶  r·  r£   Úfz_make_point)rL  rü   r   r"  rÉ  s   &    r'   ÚJM_cropbox_sizerÆ  K  sO   € Ü�hÓ€DÜˆD�G‰G�d—g‘gÕÓ€AÜˆD�G‰G�d—g‘gÕÓ€AÜ×Ò˜qÓ$€DØ€Kr)   c                óD   € \        V 4      p\        P                  ! V4      # )z
just the inverse of rotation
)rß  r£   r*  )rÖ   Úmps   & r'   re  re   K  s   € ô 
˜tÓ	$€BÜ×!Ò! "Ó%Ð%r)   c                óì  € ^ p\         P                  ! V ^4      p\         P                  ! V\        R4      ^4       \         P                  ! V\        R4      ^4      p\         P                  ! V\        R4      V4       \         P                  ! V\        R4      V4       \         P                  ! V\        R4      V4       \         P
                  ! V\        R4      \        R4      4       Rp	\         P                  ! V \         P                  ! V	4      \         P                  ! 4       ^ 4      p
\         P
                  ! V\        R4      V
4       \        W
W4       \         P                  ! V4      w  rk\         P                  ! V
\        R	4      V4       \         P                  ! V
\        R
4      V4       \         P                  ! V
\        R4      ^4      p\         P                  ! V\        R4      V4       V# )z=
embed a new file in a PDF (not only /EmbeddedFiles entries)
r¿  r·  r¸  rº  r»  r  ÚFilespecs     rR  r¼  r½  r¾  )r£   rZ  rY  r  r¯  rU  r/  rå  r0  r0  rT  rP  )ra  rÓ  rj   rW  rÊ  r¤  rÆ  r  ÚefÚbsr  r@  Úparamss   &&&&&&       r'   r·  r·  (K  sp  € ð €DÜ
×
Ò
˜S !Ó
$€CÜ	×Ò˜C¤¨$£°Ô3Ü	×	 Ò	  ¤h¨t£n°aÓ	8€BÜ	×"Ò" 3¬°«°xÔ@Ü	×"Ò" 3¬°«¸	ÔBÜ	×"Ò" 3¬°Ó(8¸$Ô?Ü	×Ò�sœH VÓ,¬h°zÓ.BÔCØ	€BÜ×ÒØä×0Ò0°Ó4Ü�LŠL‹NØó	€Aô 
×Ò�rœ8 C›=¨!Ô,Ü�S˜SÔ+Ü×%Ò% cÓ*�G€DÜ	×Ò˜1œh t›n¨dÔ3Ü	×Ò˜1œh xÓ0°$Ô7Ü×$Ò$ Q¬°Ó(:¸AÓ>€FÜ	×Ò˜6¤8¨FÓ#3°TÔ:Ø€Jr)   c                ó  € \         P                  ! \         P                  ! V 4      \        R4      4      p\         P                  ! V\        R4      4      pVP                  '       d<   \         P
                  ! V4      ^ 8X  d!   \         P                  ! V\        R4      4       \         P                  ! V\        R4      \        R4      \        R4      4      pVP                  '       d$   \         P                  ! V\        R4      R4       R# R# )zœ
perform some cleaning if we have /EmbeddedFiles:
(1) remove any /Limits if /Names exists
(2) remove any empty /Collection
(3) set /PageMode/UseAttachments
rà  Ú
Collectionr¨  r©  rÊ	  r  N)	r£   r  rä  r  rÌ   r†  rH  r   r\  )ra  r¹  ÚcollÚefiless   &   r'   rf
  rf
  MK  sÅ   € ô ×Òœu×0Ò0°#Ó6¼ÀÓ8HÓI€Dô ×Ò˜d¤H¨\Ó$:Ó;€DØ‡‡€œ5×-Ò-¨dÓ3°qÔ8Ü×Ò˜4¤¨,Ó!7Ô8ä× Ò ØÜ�WÓÜ�_Ó%Ü�WÓó	€Fð ××ÐÜ×Ò ¤h¨zÓ&:Ð<LÖMñ r)   c                ót   € V P                   '       g   R # \        P                  ! V 4      p\        VRR7      pV# )r`   r  ©Úerrors)rÌ   r£   r7  rå  )r—  rŸ  r  s   &  r'   rÙ  rÙ  eK  s/   € Ø�?�?ˆ?ÙÜ×$Ò$ TÓ*€AÜ
*¨1°YÔ
?€CØ€Jr)   c           	     ó:  € \         P                  ! \         P                  ! V 4      \        R4      4      pVP                  '       gÕ   \         P
                  ! ^4      pRpV F  pV\        V4      ,          pK  	  \         P                  ! \         P                  ! V 4      \        R4      ^4      p\         P                  ! V\         P                  ! V\        V4      4      4       \         P                  ! V\         P                  ! V\        V4      4      4       R# R# )z
Store ID in PDF trailer
r
  r`   N)r£   r  rä  r  rÌ   Ú
fz_memrnd2rn  rX  rK  rP  r9   )ra  rÔ  Úrnd0Úrndrg  s   &    r'   rg
  rg
  mK  sÇ   € ô ×
Ò
œe×/Ò/°Ó4´h¸t³nÓ
E€CØ�>�>ˆ>Ü×Ò Ó#ˆð ˆÛˆAØ”3�q“6�MŠCñ ä×&Ò&¬×(9Ò(9¸3Ó(?ÄÈ$ÃÐQRÓSˆÜ×Ò˜c¤5×#7Ò#7¸¼cÀ#»hÓ#GÔHÜ×Ò˜c¤5×#7Ò#7¸¼cÀ#»hÓ#GÖHñ r)   c                ó  € \         P                  ! \         P                  ! \         P                  ! V 4      \        R4      4      \        R4      4      pVP                  '       d   V# \         P                  ! \         P                  ! V 4      \        R4      4      p\         P
                  ! V\        R4      ^4      p\         P                  ! V\        R4      ^ 4       \         P
                  ! V\        R4      ^4      p\         P                  ! V\        R4      ^ 4       \         P                  ! V\        R4      ^ 4       \         P                  ! V\        R4      ^ 4       \         P                  ! V\        R4      ^ 4       V# )	z/
Ensure OCProperties, return /OCProperties key
rà  rX  r|  rÔ  r  r€  r~  ÚRBGroups)r£   r  rä  r  rÌ   rY  rX  )ra  rŒ  r¹  rÔ  s   &   r'   r�  r�  }K  s  € ô ×
Ò
œU×/Ò/´×0AÒ0AÀ#Ó0FÌÐQWÓHXÓYÔ[cÐdrÓ[sÓ
t€CØ
‡~‡~€~Øˆ
Ü×Òœe×/Ò/°Ó4´h¸vÓ6FÓG€DÜ
×
!Ò
! $¬°Ó(@À!Ó
D€CÜ	×Ò˜S¤(¨6Ó"2°AÔ6Ü×Ò ¤X¨c£]°AÓ6€AÜ	×Ò˜Q¤¨£°Ô2Ü	×Ò˜Q¤¨£°Ô3Ü	×Ò˜Q¤¨Ó 1°1Ô5Ü	×Ò˜Q¤¨Ó 4°aÔ8Ø€Jr)   c                óª  € V '       g   R# V P                  R4      '       d   R# V P                  R4      '       d   R# V P                  R4      '       d   R# V P                  R4      '       d   R# V P                  R4      '       d   R	# V P                  R
4      '       d   R	# V P                  R4      '       d   R# V P                  R4      '       d   R# R# )z
Make /DA string of annotation
r„  ÚCor£  ÚcoÚTir¤  ÚtiÚSyÚSymbrB  ÚZar¥  Úza)r5   r,  s   &r'   ÚJM_expand_fnamerä  �K  s”   € ÷ ™6Ø‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vØ‡��t×Ò¡vÙr)   c                óH  € V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P
                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# R# )	z
String from widget type
ÚButtonÚCheckBoxÚRadioButtonÚTextÚListBoxÚComboBoxÚ	Signaturer¿  )r£   r»  r¼  r¬  ÚPDF_WIDGET_TYPE_TEXTÚPDF_WIDGET_TYPE_LISTBOXÚPDF_WIDGET_TYPE_COMBOBOXr¾  )r•  s   &r'   ÚJM_field_type_textrð  ŸK  s~   € ð ”×,Ñ,Ô,ÙØ”×.Ñ.Ô.ÙØ”×1Ñ1Ô1ÙØ”×*Ñ*Ô*ÙØ”×-Ñ-Ô-ÙØ”×.Ñ.Ô.ÙØ”×/Ñ/Ô/ÙÙr)   c                ó  € \        V \        P                  4      '       g   Q h\        P                  ! V\        P                  ! V 4      4      pVP
                  VP                  ,
          pVP                  VP                  ,
          pV^ 8:  g   V^ 8:  d   ^ # V P                  4       pWRP                  V P                  4       ,
          ,          V P                  4       VP                  V P                  4       ,
          ,          ,           p Tp\        V4       FI  p\        V P                  4       4       F)  p	\        P                  ! WW,          4       V^,          pK+  	  KK  	  We,          pV^,          pV^ 8X  g   Ku   ^# ru  )r@   r£   rä  r£  rR  r´  rµ  r¶  r·  rñ  rj  rG   ri  rS  rò  )
r8
  rf  rI  r   rj  r¤  r¥  rŸ  ri  rg  s
   &&&       r'   rË  rË  ´K  s  € Ü�dœEŸN™N×+Ò+Ð+Ð+ä× Ò  ¤E×$8Ò$8¸$Ó$?Ó@€AØ	�‰ˆq�t‰t�€AØ	�‰ˆq�t‰t�€AØˆA„v��a”ÙØ�{‰{‹}€HØŸ™˜tŸv™v›x�Õ(¨4¯6©6«8°q·t±t¸d¿f¹f»hµÕ+GÕG€EØ
ØˆÜ�q–ˆAÜ˜DŸF™F›HÖ%�Ü×$Ò$ T¨c­fÔ5Ø�Q•’ó &ñ ð 	ÕˆØ	ˆQ�ˆØ�Ž6ØÙr)   c                ó,  € \        V \        P                  4      '       g   Q hRp\        P                  ! V 4      p^ p\	        V 4      p\        P
                  ! V4      p \        V\        P                  4      '       g   Q hVP                  '       g   Mv\        P                  ! V4      p\        P                  ! VR4      pVP                  '       d    \        P                  ! Wb4      '       g   ^pM\        P                  ! V4      pK¬  V'       d   V# R# )z‰
Return the first annotation whose /IRT key ("In Response To") points to
annot. Used to remove the response chain of a given annotation.
Nr;  )
r@   r£   rä   r  rà   rJ  rÌ   r  r‰  rU  )rß   r®  r&  r°  rÖ   Úirt_annot_objr±  s   &      r'   r©  r©  ËK  sÚ   € ô
 �eœUŸ^™^×,Ò,Ð,Ð,Ø€IÜ×#Ò# EÓ*€IØ€Eä˜5Ó!€DÜ×%Ò% dÓ+€IØ
Ü˜)¤U§^¡^×4Ò4Ð4Ð4Ø×#×#Ð#ØÜ×+Ò+¨IÓ6ˆÜ×Ò ¨uÓ5ˆØ�<�<ˆ<Ü×#Ò# A×1Ò1Ø�ØÜ×(Ò(¨Ó3Š	ßØÐñ r)   c                ó¢   € \        V \        P                  4      '       g   Q h\        P                  '       d   R# \        P
                  ! V 4      # )ú+
need own versions of ascender / descender
rT  )r@   r£   r�  r¸  r�   r/  )rÜ  s   &r'   r’  r’  æK  s;   € ô �dœEŸL™L×)Ò)Ð)Ð)Ü×%×%Ð%ÙÜ×!Ò! $Ó'Ð'r)   c                ó¦   € \        V \        P                  4      '       g   Q h\        P                  '       d   R# \        P
                  ! V 4      pV# )rõ  gš™™™™™É¿)r@   r£   r�  r¸  r�   rD  )rÜ  rI   s   & r'   r“  r“  ðK  sA   € ô �dœEŸL™L×)Ò)Ð)Ð)Ü×%×%Ð%ØˆÜ
×
!Ò
! $Ó
'€CØ€Jr)   c                óž   €  V ^ 8:  g   V ^ 8X  g   RT u;8:  d
   R8:  d    R#  MR# V'       g   R# \        V 4      pV F  pW28X  g   K   R# 	  R# )z7Check if ch is an extra word delimiting character.
    i*   i.   TFrw  )r?  rì  rb  rH  s   &&  r'   ré  ré  ûK  sW   € ð 	
Ø�Œ8Ø�Œ9Ø�RÖ!˜6Õ!ñ ñ	 "ñ ßÙÜˆr‹7€DÛˆØŽ9Úñ ñ r)   c                ó&   € V R 8  g   V R8”  d   R# R# )i�  i 	  FTr,   rx  s   &r'   rê  rê  L  s   € Ø	ˆE„z�R˜%”ZÙÙr)   c                óö   € \        V \        P                  4      '       g   Q h\        P                  ! V 4      pVP	                  R 4      p\
        P                  '       g   VR8X  g   V^8w  d   V# W^,           R # )rG  Nr¨  )r@   r£   r�  rƒ  r§   r¸  r�   )rÜ  r   rŸ  s   &  r'   ÚJM_font_namerú  L  sa   € Ü�dœEŸL™L×)Ò)Ð)Ð)Ü×Ò˜dÓ#€DØ�	‰	�#‹€AÜ× × Ð  A¨¤G¨q°A¬vØˆØ�A•�ˆ<Ðr)   c           	     óÄ  € ^p\         P                  ! V4      p\        V4       EF7  p\         P                  ! W4      p\         P                  ! W4      p\         P
                  ! V4      '       gH   \         P                  ! R\         P                  ! V4       R\         P                  ! V4       R24       K“  \         P                  ! V\         P                  4      p	\         P                  ! V\         P                  4      p
V
P                  '       d   \         P                  ! V
4      '       d'   \         P                  ! V\         P                  4      pMT
p\         P                  ! V\         P                  4      p\         P
                  ! V4      '       d&   \         P                  ! V\         P                   4      p\         P                  ! V4      pRpV'       d   \#        W4      pVV\         P                  ! V	4      \%        \         P                  ! V4      4      \         P                  ! V4      \         P                  ! V4      V3pVP'                  V4       EK:  	  V# )r™  rí   z' is no font dict (ú 0 R)rõ  )r£   r†  rS  rˆ  r‡  r…  Úfz_warnr„  r  r  ÚPDF_ENUM_NAME_SubtypeÚPDF_ENUM_NAME_BaseFontrÌ   r÷  ÚPDF_ENUM_NAME_NameÚPDF_ENUM_NAME_EncodingÚPDF_ENUM_NAME_BaseEncodingrø  rÃ  ro   )ra  Údict_ÚfontlistÚstream_xrefr¦   rG   rg  Úrefnamer7  rý  rþ  r   r  r  rå  rª  s   &&&&            r'   ÚJM_gather_fontsr  L  s½  € Ø	
€BÜ×Ò˜5Ó!€AÜ�1�Xˆä×(Ò(¨Ó2ˆÜ×)Ò)¨%Ó3ˆÜ× Ò  ×*Ò*Ü�MŠM˜Qœu×0Ò0°Ó9Ð:Ð:MÌe×N^ÒN^Ð_gÓNhÐMiÐinÐoÔpÙä×$Ò$ X¬u×/JÑ/JÓKˆÜ×%Ò% h´×0LÑ0LÓMˆØ×"×"Ð"¤e×&7Ò&7¸×&AÒ&AÜ×%Ò% h´×0HÑ0HÓI‰DàˆDÜ×%Ò% h´×0LÑ0LÓMˆÜ×Ò˜X×&Ò&Ü×)Ò)¨(´E×4TÑ4TÓUˆHÜ×Ò Ó)ˆØˆßÜ& sÓ1ˆCàØÜ×!Ò! 'Ó*Ü#¤E×$5Ò$5°dÓ$;Ó<Ü×!Ò! 'Ó*Ü×!Ò! (Ó+Øðˆð 	�‰˜×ñ= ð> €Ir)   c               ó    € V ^8„  d   QhRRRR/# )r†  r  úmupdf.PdfObjr  r6   r,   )rþ  s   "r'   rÿ  rÿ  CL  s   € ÷ %ñ % ð %Àcñ %r)   c           	     ó¸  € \        V \        P                  4      '       g   Q h^p\        P                  ! V4      p\	        V4       EF  p\        P
                  ! W4      p\        P                  ! W4      p\        P                  ! V4      '       gH   \        P                  ! R\        P                  ! V4       R\        P                  ! V4       R24       K“  \        P                  ! V\        R4      4      p	\        P                  ! V	\        R4      4      '       g   KÛ  \        P                  ! V\        R4      4      p
\        P                  ! V\        R4      4      pVP                  '       d   \        P                  ! V4      pM\        P                   ! 4       pV
P                  '       d-   \        P"                  ! \        P$                  ! V
4      V4      pM.\        P&                  ! \        P&                  P(                  4      p\        P                  ! V4      pV\        P                  ! V4      V\+        V4      3pVP-                  V4       EK  	  V# )z.
Store info of a /Form xobject in Python list
rí   z' is no form dict (rü  r¶  ÚFormr,  r  )r@   r£   rÆ   r†  rS  rˆ  r‡  r…  rý  r„  r  r  r  rö  rÌ   Úpdf_to_matrixr|  rà  r  rq  rr  rp  ro   )r1  r  Ú	imagelistr  r¦   rG   rg  r  Ú	imagedictrb  r±  r‹  r€  r6  r  rª  s   &&&&            r'   ÚJM_gather_formsr  CL  s¹  € ô �cœ5×,Ñ,×-Ò-Ð-Ð-Ø	
€BÜ×Ò˜5Ó!€AÜ�1�XˆÜ×(Ò(¨%Ó3ˆÜ×*Ò*¨5Ó4ˆ	Ü× Ò  ×+Ò+Ü�MŠM˜Qœu×0Ò0°Ó9Ð:Ð:MÌe×N^ÒN^Ð_hÓNiÐMjÐjoÐpÔqÙä×"Ò" 9¬h°yÓ.AÓBˆÜ× Ò  ¬°Ó(8×9Ò9Ùä×Ò˜y¬(°6Ó*:Ó;ˆÜ×Ò˜y¬(°8Ó*<Ó=ˆØ�<�<ˆ<Ü×%Ò% aÓ(‰Cä—.’.Ó"ˆCØ�<�<ˆ<Ü×*Ò*¬E×,=Ò,=¸aÓ,@À#ÓF‰Dä—<’<¤§¡× ;Ñ ;Ó<ˆDÜ×Ò 	Ó*ˆð Ü×!Ò! 7Ó+ØÜ Ó%ð	ˆð 	×Ñ˜×ñ; ð< €Ir)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  zmupdf.PdfDocumentr  r	  r  r6   r,   )rþ  s   "r'   rÿ  rÿ  kL  s#   € ÷ 7ñ 7Ð+ð 7°Lð 7ÐZ]ñ 7r)   c                óF  € ^p\         P                  ! V4      p\        V4       EFø  p\         P                  ! W4      p\         P                  ! W4      p\         P
                  ! V4      '       gH   \         P                  ! R\         P                  ! V4       R\         P                  ! V4       R24       K“  \         P                  ! V\        R4      4      p	\         P                  ! V	\        R4      4      '       g   KÛ  \         P                  ! V4      p
^ p\         P                  ! V\        R4      \        R4      4      pVP                  '       d   \         P                  ! V4      p\         P                  ! V\        R4      \        R	4      4      p\         P                  ! V4      '       d   \         P                  ! V^ 4      p\         P                   ! ^ 4      p\         P                  ! V\        R
4      \        R4      4      p\         P                  ! V4      '       d°   Tp\         P                  ! V^ 4      p\         P                  ! V\        R4      4      '       g'   \         P                  ! V\        R4      4      '       dK   \         P                  ! V^4      p\         P                  ! V4      '       d   \         P                  ! V^ 4      p\         P                  ! V\        R4      \        R4      4      p\         P                  ! V\        R4      \        R4      4      p\         P                  ! V\        R4      \        R4      4      pV
V\         P"                  ! V4      \         P"                  ! V4      \         P"                  ! V4      \%        \         P                  ! V4      4      \%        \         P                  ! V4      4      \%        \         P                  ! V4      4      \%        \         P                  ! V4      4      V3
pVP'                  V4       EKû  	  V# )z'
Store info of an image in Python list
rí   z' is no image dict (rü  r¶  r  r  r  ÚFilterr¸  Ú
ColorSpaceÚCSÚDeviceNÚ
SeparationrÃ  r:  rÄ  rA  ÚBitsPerComponentÚBPC)r£   r†  rS  rˆ  r‡  r…  rý  r„  r  r  r  rö  r  rÌ   rI  r¬  r0  r  rÃ  ro   )r1  r  r  r  r¦   rG   rg  r  r  rb  r  Úgenr  rž  Úaltcsrô  Úcsesrˆ  r3  rÔ  rª  s   &&&&                 r'   ÚJM_gather_imagesr  kL  s  € ð 
€BÜ×Ò˜EÓ"€AÜ�1�XˆÜ×(Ò(¨Ó2ˆÜ×*Ò*¨5Ó4ˆ	Ü× Ò  ×+Ò+Ü�MŠM˜Aœe×/Ò/°Ó8Ð9Ð9MÌe×N^ÒN^Ð_hÓNiÐMjÐjoÐpÔqÙä×"Ò" 9¬h°yÓ.AÓBˆÜ× Ò  ¬°Ó(9×:Ò:Ùä×Ò 	Ó*ˆØˆÜ×#Ò# I¬x¸Ó/@Ä(È6ÓBRÓSˆØ××ÐÜ×"Ò" 5Ó)ˆCä×%Ò% i´¸(Ó1CÄXÈcÃ]ÓSˆÜ×Ò˜g×&Ò&Ü×)Ò)¨'°1Ó5ˆGä—’˜Q“ˆÜ× Ò  ¬H°\Ó,BÄHÈTÃNÓSˆÜ×Ò˜b×!Ò!ØˆDÜ×$Ò$ T¨1Ó-ˆBÜ×!Ò! "¤h¨yÓ&9×:Ò:Ü×(Ò(¨¬X°lÓ-C×DÒDä×+Ò+¨D°!Ó4�Ü×%Ò% e×,Ò,Ü!×/Ò/°°qÓ9�EÜ×#Ò# I¬x¸Ó/@Ä(È3Ã-ÓPˆÜ×$Ò$ Y´¸Ó0BÄHÈSÃMÓRˆÜ×!Ò! )¬XÐ6HÓ-IÌ8ÐTYË?Ó[ˆð ØÜ× Ò  Ó'Ü× Ò  Ó(Ü× Ò  Ó%Ü#¤E×$5Ò$5°bÓ$9Ó:Ü#¤E×$5Ò$5°eÓ$<Ó=Ü#¤E×$5Ò$5°gÓ$>Ó?Ü#¤E×$5Ò$5°gÓ$>Ó?Øðˆð 	×Ñ˜×ña ðb €Ir)   c                óf  € \        V \        P                  4      '       g   Q h^ p\        P                  ! V 4      p VP                  '       g   MJV\        P
                  ! \        P                  ! V4      4      8X  d   ^pM\        P                  ! V4      pK^  V'       g   \        RVR R24      hV# )z
retrieve annot by its xref
úxref rH  z is not an annot of this page)	r@   r£   rÓ   rJ  rÌ   r  r  rU  rk   )rÖ   r  r°  rß   s   &&  r'   rÿ  rÿ  ¥L  s—   € ô �dœEŸM™M×*Ò*Ð*Ð*Ø€Eä×!Ò! $Ó'€EØ
Ø××ÐØØ”5×#Ò#¤E×$7Ò$7¸Ó$>Ó?Ô?ØˆEØÜ×$Ò$ eÓ,ŠßÜ˜%  Q˜xÐ'DÐEÓFÐFØ€Lr)   c                ó¨  € \        V \        P                  4      '       g   Q hV'       g   R# ^ p\        P                  ! V 4      p VP                  '       g   Mb\        P
                  ! \        P                  ! \        P                  ! V4      R4      4      w  rEW8X  d   ^pM\        P                  ! V4      pKv  V'       g   \        RV R24      hV# )z"
retrieve annot by name (/NM key)
Nr/  rí   z' is not an annot of this page)
r@   r£   rÓ   rJ  rÌ   Úpdf_to_stringr  r  rU  rk   )rÖ   r   r°  rß   rS  rÆ  s   &&    r'   rþ  rþ  ¹L  s¯   € ô �dœEŸM™M×*Ò*Ð*Ð*ßÙØ€Eä×!Ò! $Ó'€EØ
Ø××ÐØä×,Ò,¬U×-@Ò-@Ä×ATÒATÐUZÓA[Ð]aÓ-bÓc‰ˆØÔØˆEØÜ×$Ò$ UÓ+ŠßÜ˜!˜D˜6Ð!?Ð@ÓAÐAØ€Lr)   c                ó°  € . p\         P                  ! V P                  4       \         P                  4      pVP                  '       g   V# \        \         P                  ! V4      4       Fi  p\         P                  ! W#4      p\         P                  ! VR 4      pVP                  '       g   KD  VP                  \         P                  ! V4      4       Kk  	  V# )r/  )r£   r  r  ÚPDF_ENUM_NAME_AnnotsrÌ   rS  r«  r¬  r  ro   r  )rÖ   rs  r¯  rg  r&  r   s   &     r'   r�  r�  ÑL  sœ   € Ø€EÜ×Ò §¡£¬U×-GÑ-GÓH€FØ××ÐØˆÜ”E×'Ò'¨Ó/Ö0ˆÜ×'Ò'¨Ó2ˆ	Ü×"Ò" 9¨dÓ3ˆØ�?�?Š?Ø�L‰LÜ×(Ò(¨Ó.öñ	 1ð €Lr)   c                ó   € \         '       d   \        P                  ! V 4      pV# . p\        P                  ! V \        R4      4      p\        P                  ! V4      p\        V4       Fâ  p\        P                  ! W$4      p\        P                  ! V4      p\        P                  ! V\        R4      4      pVP                  '       g   Kc  \        P                  ! \        P                  ! V4      4      pV\        P                  8X  d   K¤  \        P                  ! VR4      p	VP                  Wh\        P                   ! V	4      34       Kä  	  V# )zC
return the xrefs and /NM ids of a page's annots, links and fields
r¦  r¶  r/  )r  r   r°	  r£   r  r  r«  rS  r¬  r  rÌ   rº  r„  ÚPDF_ANNOT_UNKNOWNr  ro   r  )
rL  rs  r¯  rG   rg  r&  r  rý  rb  rÔ  s
   &         r'   r°	  r°	  ßL  sÿ   € ÷ ƒ{Ü×,Ò,¨hÓ7ˆØˆà€EÜ×Ò ¬8°HÓ+=Ó>€FÜ×Ò˜VÓ$€AÜ�AŽYˆÜ×'Ò'¨Ó3ˆ	Ü×Ò Ó+ˆÜ×$Ò$ i´¸)Ó1DÓEˆØ×!×!Ð!ÙÜ×0Ò0´%×2CÒ2CÀWÓ2MÓNˆØ”E×+Ñ+Ô+ÙÜ×!Ò! 9¨dÓ3ˆØ�‰�t¤E×$<Ò$<¸cÓ$BÐCÖDñ ð €Lr)   c                ó�   € V P                  R R7      p V P                  '       g   \        4       # \        V P	                  4       4      # ©Frß  )r,  rÌ   r´   r°	  r  rÕ   s   &r'   r’  r’  øL  s3   € Ø�>‰> 5ˆ>Ó)€DØ�?�?ˆ?Ü‹vˆÜ! 4§8¡8£:Ó.Ð.r)   c                ó²  € \         P                  pV f   V# T pVP                  R4      '       g   VP                  R4      '       d   \         P                  pV# VP                  R4      '       g   VP                  R4      '       d   \         P                  pV# VP                  R4      '       g   VP                  R4      '       d   \         P
                  pV# VP                  R4      '       g   VP                  R4      '       d   \         P                  pV# VP                  R	4      '       g   VP                  R
4      '       d   \         P                  pV# )z/
return pdf_obj "border style" from Python str
rI  rþ  rH  rÔ  rg  r\  r3  ÚUrŸ  r�
  )r£   ÚPDF_ENUM_NAME_Sr5   ÚPDF_ENUM_NAME_BÚPDF_ENUM_NAME_DÚPDF_ENUM_NAME_IÚPDF_ENUM_NAME_U)r‰  r  rŸ  s   &  r'   rk  rk  ÿL  s  € ô ×
Ñ
€CØ‚}Øˆ
Ø€AØ	
�‰�c×	Ò	˜aŸl™l¨3×/Ò/¼%×:OÑ:O°Cð
 €Jð	 
�‰�c×	Ò	˜aŸl™l¨3×/Ò/¼%×:OÑ:O°Cð €Jð 
�‰�c×	Ò	˜aŸl™l¨3×/Ò/¼%×:OÑ:O°Cð €Jð 
�‰�c×	Ò	˜aŸl™l¨3×/Ò/¼%×:OÑ:O°Cà€Jð 
�‰�c×	Ò	˜aŸl™l¨3×/Ò/¼%×:OÑ:O°CØ€Jr)   c
                ó²  a	€ V	3R lp
^ pRpV'       d!   \         P                  ! RW^ 4      pV
! V4      # V'       d,   \        V4      p\         P                  ! RWÛ^ 4      pV
! V4      # VR8”  d   \         P                  ! V4      pV
! V4      # V '       dP   \         P
                  ! V 4      pVP                  '       d	   V
! V4      # \         P                  ! WV4      pV
! V4      # \         P                  ! W44      w  rïpRpV'       d   \         P                  ! RWïV^ 4      pVP                  '       d	   V
! V4      # \         P                  ! W4W†V4      pV
! V4      # )z.
return a fz_font from a number of parameters
c                óÄ   <€ V P                   '       g   \        \        4      hV P                   P                  P                  '       g   \
        P                  ! V S4       V # r+   )rÌ   rÞ   ÚMSG_FONT_FAILEDrÐ  rZ  r£   Úfz_set_font_embedding)rÜ  r(  s   &€r'   ÚfertigÚJM_get_font.<locals>.fertigM  sB   ø€ Ø��ˆÜœÓ/Ð/à�‰×$Ñ$×0×0Ð0Ü×'Ò'¨¨eÔ4Øˆr)   Nr¨  )r£   Úfz_new_font_from_filer.  rî  Úfz_new_cjk_fontÚfz_new_base14_fontrÌ   Úfz_new_builtin_fontÚfz_lookup_noto_fontrë  Úfz_load_fallback_font)rþ   r%  r&  r$  rH  ræ  r%  r&  r'  r(  r2  r  rÜ  r%  rË  rÉ  s   &&&&&&&&&f      r'   r#  r#  M  s+  ø€ õð €EØ€Dßä×*Ò*¨D°(À1ÓEˆÙ�d‹|Ðçä  Ó,ˆÜ×,Ò,¨d°CÀÓBˆÙ�d‹|Ðà�"„}ä×$Ò$ XÓ.ˆÙ�d‹|Ðçô ×'Ò'¨Ó1ˆØ�?�?ˆ?Ù˜$“<ÐÜ×(Ò(¨¸IÓFˆÙ�d‹|Ðô ×1Ò1°6Ó@Ñ€D�Ø€DßÜ×,Ò,¨d°DÀÀqÓIˆØ‡‡€Ù�d‹|ÐÜ×&Ò&¨°hÈÓS€DÙ�$‹<Ðr)   c                ó6  € V^8  d   R# \         P                  ! W4      p\         P                  ! V\        R4      4      pVP                  '       dM   \         P
                  ! \         P                  ! V^ 4      4      p\         P                  ! V\        R4      4      pM \         P                  ! V\        R4      4      pVP                  '       g   \        R4       R# TpRp\         P                  ! V\        R4      4      pVP                  '       d   Tp\         P                  ! V\        R4      4      pVP                  '       d   Tp\         P                  ! V\        R4      4      pVP                  '       dö   Tp\         P                  ! V\        R4      4      pVP                  '       d*   \         P                  ! V4      '       g   \        R	4       R# \         P                  ! V\        R
4      4      '       d   Mq\         P                  ! V\        R4      4      '       d   MJ\         P                  ! V\        R4      4      '       d   M#\        R\         P                  ! V4      : 24       V'       g   \        R4       R# \         P                  ! V4      # )z8
Return the contents of a font file, identified by xref
Nr9  rH  z%invalid font - FontDescriptor missingÚFontFileÚ	FontFile2Ú	FontFile3r¶  úinvalid font descriptor subtypeÚType1CÚCIDFontType0CÚOpenTypezwarning: unhandled font type zwarning: unhandled font type)r£   rJ  r  r  rÌ   rú  r¬  rv   rô  rö  r„  r"  )r1  r  r±  Údesftr  r   s   &&    r'   rí  rí  MM  sæ  € ð ˆa„xÙÜ×Ò˜cÓ(€AÜ×Ò˜q¤(Ð+<Ó"=Ó>€EØ××ÐÜ×(Ò(¬×)<Ò)<¸UÀAÓ)FÓGˆÜ× Ò  ¤hÐ/?Ó&@ÓA‰ä× Ò  ¤HÐ-=Ó$>Ó?ˆà�>�>ˆ>ÜÐ7Ô9Ùà€Aà€Fä
×
Ò
˜Q¤¨Ó 4Ó
5€CØ
‡~‡~€~Øˆä
×
Ò
˜Q¤¨Ó 5Ó
6€CØ
‡~‡~€~Øˆä
×
Ò
˜Q¤¨Ó 5Ó
6€CØ
‡~‡~€~Øˆä× Ò  ¤h¨yÓ&9Ó:ˆØ�>�>ˆ>¤%×"3Ò"3°C×"8Ò"8ÜÐ5Ô6Ùä×Ò˜S¤(¨8Ó"4×5Ò5ØÜ×Ò˜s¤H¨_Ó$=×>Ò>ØÜ×Ò˜s¤H¨ZÓ$8×9Ò9ØäÐ3´E×4EÒ4EÀcÓ4JÑ3MÐNÔOçÜÐ.Ô/Ùä× Ò  Ó(Ð(r)   c                ó¼  € \         P                  ! V \        R4      \        R4      4      pVP                  '       g   R# \         P                  ! V4      pV^8  d   R# . p\        V4       Fm  p\         P                  ! W4      p\         P                  ! W4      p\         P                  ! V4      p\         P                  ! V4      pVP                  Wx34       Ko  	  V# )zy
Return the items of Resources/Properties (used for Marked Content)
Argument may be e.g. a page object or a Form XObject
r<  Ú
Propertiesr,   )r£   r   r  rÌ   r†  rS  rˆ  r‡  r„  r  ro   )	ré  Ú
propertiesrG   r¦   rg  r�  r  rõ  r  s	   &        r'   r³  r³  „M  s·   € ô
 ×$Ò$ S¬(°;Ó*?ÄÈ,ÓAWÓX€JØ× × Ð Øˆ	ä×Ò˜zÓ*ˆØˆqŒ5ØˆIØˆÜ�q–ˆAÜ×(Ò(¨Ó7ˆCÜ×(Ò(¨Ó7ˆCÜ×!Ò! #Ó&ˆAÜ×#Ò# CÓ(ˆDØ�I‰I�q�iÖ ñ ð €Ir)   c                ó2  € Rp\         P                  ! V 4      pVP                  '       dM   \         P                  ! V4      pV\         P                  ! V4      8X  d   RpM\         P
                  ! V4      pK^  V'       g   \        RV R24      h\        V4      # )z
retrieve widget by its xref
FTr  z is not a widget of this page)r£   rR  rÌ   r  r  rV  rk   râ   )rÖ   r  r°  rß   r&  s   &&   r'   re  re  šM  s‚   € ð €EÜ×"Ò" DÓ)€EØ
×
×
Ð
Ü×'Ò'¨Ó/ˆ	Ø”5×#Ò# YÓ/Ô/ØˆEØÜ×%Ò% uÓ-ŠßÜ˜5  Ð&CÐDÓEÐEÜ�%‹=Ðr)   c                ó,  a€ \         P                  ! V P                  4      p\        V P                  4      pVP	                  4       pT pV3R lpR p\         P
                  ! VP                  4      pVSn        V\         P                  8X  d1   \         P                  ! WB4      '       d   V! RR4       MV! RR4       M	V! RR4       V! SR\        \         P                  ! V4      4      4       V! SR\        \        V4      4      4       \         P                  ! V4      p	V! SR	V	4       R
 p
V
! V\        R4      4      pVe   V! SRV4       RpV\         P                  8X  d™   \         P                  ! V\        R4      4      pVP                   '       d   V! SR\         P"                  ! V4      4       \         P                  ! V\        R4      4      pVP                   '       d   \         P$                  ! V4      pV'       g   \         P&                  ! V4      pV! SR\        V4      4       V! SR\         P(                  ! V4      4       \         P*                  ! \         P,                  ! V\        R4      \        R4      4      4      pV^ 8X  d   ^pV! SRV4       \         P,                  ! V\        R4      \        R4      4      p\         P.                  ! V4      '       dk   \         P0                  ! V4      p^ .V,          p\3        V4       F1  p\         P4                  ! \         P6                  ! VV4      4      VV&   K3  	  V! SRV4       V! SR\         P8                  ! VP                  4      4       V! SR\         P:                  ! VP                  4      4       \         P,                  ! V\        R4      \        R4      4      p\         P.                  ! V4      '       dk   \         P0                  ! V4      p^ .V,          p\3        V4       F1  p\         P*                  ! \         P6                  ! VV4      4      VV&   K3  	  V! SRV4       \         P,                  ! V\        R4      \        R4      4      p\         P.                  ! V4      '       dk   \         P0                  ! V4      p^ .V,          p\3        V4       F1  p\         P*                  ! \         P6                  ! VV4      4      VV&   K3  	  V! SRV4       V! SR\=        V 4      4       \         P>                  ! \         P@                  ! V\        R4      4      4      pV! SR \        V4      4       \         P,                  ! V\        R4      \        R!4      4      pVP                   '       d(   V! SR"\        \         P>                  ! V4      4      4       V! SR#\         PB                  ! V4      4       SPE                  4        \         P                  ! V\        R$4      4      p\G        V4      pV! SR%V4       V! SR&\G        \         P,                  ! V\        R'4      \        R(4      4      4      4       V! SR)\G        \         P,                  ! V\        R'4      \        R*4      4      4      4       V! SR+\G        \         P,                  ! V\        R'4      \        R,4      4      4      4       V! SR-\G        \         P,                  ! V\        R'4      \        R.4      4      4      4       V! SR/\G        \         P,                  ! V\        R'4      \         PH                  ! R04      4      4      4       V! SR1\G        \         P,                  ! V\        R'4      \         PH                  ! R24      4      4      4       R# )3zy
Populate a Python Widget object with the values from a PDF form field.
Called by "Page.first_widget" and "Widget.next".
c                ó    <€ \        SW4       R # r+   ©r÷  )r�  r¸   rZ  s   &&€r'   ÚSETATTRÚ)JM_get_widget_properties.<locals>.SETATTR·M  s   ø€ Ü�˜Ö#r)   c                ó   € \        WV4       R # r+   rI  )Úmodr�  r¸   s   &&&r'   ÚSETATTR_DROPÚ.JM_get_widget_properties.<locals>.SETATTR_DROPºM  s   € ô 	�˜%Ö r)   r“  TFNr†  r‘  r‹  c                ó¼  € T p^p V P                   '       g   R# \        P                  ! W4      pVP                   '       d!   \        P                  ! V4      pV'       d   V# \        P                  ! V \	        R4      4      p V P                   VP                   8X  d   \        R4      hV^,          pV^ 8X  g   Kµ  \        P                  ! V\	        R4      4      p^pKÙ  )zâ
This is a modified version of MuPDF's pdf_dict_get_inheritable(), with
some changes:
* Returns string from pdf_to_text_string() or None if not found.
* Recurses to parent if current node exists but with empty string
  value.
Nr§  zcycle in resources)rÌ   r£   r  r  r  rk   )rò  r�  ÚslowÚhalfbeatr  r¡  s   &&    r'   Ú'pdf_dict_get_inheritable_nonempty_labelÚIJM_get_widget_properties.<locals>.pdf_dict_get_inheritable_nonempty_labelÑM  s­   € ð ˆØˆØØ—?—?�?ÙÜ×$Ò$ TÓ/ˆCØ�~�~ˆ~Ü×0Ò0°Ó5�ßØ �LÜ×%Ò% d¬H°XÓ,>Ó?ˆDØ�‰ $§/¡/Ô1ÜÐ 4Ó5Ð5Ø˜�MˆHØ˜1Ž}Ü×)Ò)¨$´¸Ó0BÓC�Ø’r)   ÚTUrŒ  r§  rŠ  rª  r�  r�  rZ  r:  r‡  rÔ  rˆ  r–  r—  ÚMKÚBGr_  ÚBCrü  r‰  r^  r˜  r=  r’  rŽ  rÓ  r$  r™  rW  ÚKrš  r¸  r›  ÚVrœ  rü  r�  ÚBlrž  ÚFo)%r£   r  rÄ   rà   r1  Úpdf_widget_typer�  r¾  Úpdf_signature_is_signedr	  Úpdf_field_border_stylerð  Úpdf_load_field_namer  r¬  r  rÌ   r  r„  Úpdf_field_valueÚpdf_field_displayr  r   rI  r«  rS  r  r¬  Úpdf_text_widget_max_lenÚpdf_text_widget_formatr¡  r  r  Úpdf_field_flagsr  ÚJM_get_scriptrå  )rß   rZ  r&  rÖ   ra  ÚtwrJ  rN  r�  r‹  rS  r¡  Úfvaluer  r‡  rG   rH  rg  rf  rù  rŸ  Ússs   &f                    r'   ÚJM_get_widget_propertiesrj  «M  sÍ  ø€ ô ×#Ò# E§J¡JÓ/€Iä˜5Ÿ:™:Ó&€DØ
�(‰(‹*€CØ	€Bõ$ò!ô ×&Ò& r§w¡wÓ/€Jà"€FÔØ”U×4Ñ4Ô4Ü×(Ò(¨×8Ò8Ù�K Õ&á�K Õ&á�˜TÔ"Ù�˜Ô):¼5×;WÒ;WÐXaÓ;bÓ)cÔdÙ�Ð,Ô.?Ô@RÐS]Ó@^Ó._Ô`ä×*Ò*¨9Ó5€JÙ�˜ zÔ2òñ8 4°I¼xÈ»~ÓN€EØÒÙ�V˜]¨EÔ2à€FØ”U×6Ñ6Ô6Ü× Ò  )¬X°hÓ-?Ó@ˆØ�>�>ˆ>Ù˜ ¬e×.>Ò.>ÀÓ.DÔEÜ× Ò  ¬H°T«NÓ;ˆØ�>�>ˆ>Ü×&Ò& sÓ+ˆFßÜ×&Ò& yÓ1ˆÙ�˜Ô(9¸&Ó(AÔBá�˜¬%×*AÒ*AÀ)Ó*LÔMä×$Ò$¤U×%8Ò%8¸ÄHÈTÃNÔT\Ð]`ÓTaÓ%bÓc€LØ�qÔØˆÙ�˜¨Ô6ä
×
Ò
˜i¬°$«¼À#»Ó
G€CÜ×Ò˜#×ÒÜ×Ò Ó$ˆØˆC�!�GˆÜ�q–ˆAÜ×#Ò#¤E×$7Ò$7¸¸QÓ$?Ó@ˆAˆa‹Dñ á�V˜_¨aÔ0á�˜¬×(EÒ(EÀbÇgÁgÓ(NÔOá�˜¬×(DÒ(DÀRÇWÁWÓ(MÔNä
×
Ò
˜i¬°$«¼À$»Ó
H€CÜ×Ò˜#×ÒÜ×Ò Ó$ˆØˆc�A�gˆÜ�q–ˆAÜ×&Ò&¤u×':Ò':¸3ÀÓ'BÓCˆC�‹Fñ á�V˜\¨3Ô/ä
×
Ò
˜i¬°$«¼À$»Ó
H€CÜ×Ò˜#×ÒÜ×Ò Ó$ˆØˆc�A�gˆÜ�q–ˆAÜ×&Ò&¤u×':Ò':¸3ÀÓ'BÓCˆC�‹Fñ á�V˜^¨SÔ1á�˜Ô*;¸EÓ*BÔCä	×	!Ò	!¤%×"@Ò"@ÀÌHÐUYËNÓ"[Ó	\€BÙ�˜Ô%6°rÓ%:Ô;ä
×
Ò
˜i¬°$«¼À$»Ó
H€CØ
‡~‡~€~Ù�VÐ-Ô/@Ä×AYÒAYÐZ]ÓA^Ó/_Ô`á�˜¬×(=Ò(=¸iÓ(HÔIð ×ÑÔô 	×Ò˜9¤h¨s£mÓ4€AÜ	�qÓ	€BÙ�˜ 2Ô&á�˜Üœ%×-Ò-¨i¼À$»ÌÐRUËÓWÓXôñ �˜Üœ%×-Ò-¨i¼À$»ÌÐRUËÓWÓXôñ �˜Üœ%×-Ò-¨i¼À$»ÌÐRUËÓWÓXôñ �˜Üœ%×-Ò-¨i¼À$»ÌÐRUËÓWÓXôñ �˜Üœ%×-Ò-¨i¼À$»Ì×I[ÒI[Ð\`ÓIaÓbÓcôñ �˜Üœ%×-Ò-¨i¼À$»Ì×I[ÒI[Ð\`ÓIaÓbÓcör)   c                óÌ  € V^8  d   R# \         P                  ! W4      p\         P                  ! V\        R4      4      pVP                  '       dM   \         P
                  ! \         P                  ! V^ 4      4      p\         P                  ! V\        R4      4      pM \         P                  ! V\        R4      4      pVP                  '       g   R# Tp\         P                  ! V\        R4      4      pVP                  '       d   R# \         P                  ! V\        R4      4      pVP                  '       d   R# \         P                  ! V\        R4      4      pVP                  '       d÷   \         P                  ! V\        R	4      4      pVP                  '       d*   \         P                  ! V4      '       g   \        R
4       R# \         P                  ! V\        R4      4      '       d   R# \         P                  ! V\        R4      4      '       d   R# \         P                  ! V\        R4      4      '       d   R# \        R\         P                  ! V4       R24       R# )z>
Return the file extension of a font file, identified by xref
rõ  r9  rH  r;  Úpfar<  ry  r=  r¶  r>  r?  Úcffr@  ÚcidrA  rx  zunhandled font type 'rí   )r£   rJ  r  r  rÌ   rú  r¬  rô  rv   rö  r„  )r1  r  r±  rB  r  s   &&   r'   rø  rø  LN  s´  € ð ˆa„xÙÜ×Ò˜cÓ(€AÜ×Ò˜q¤(Ð+<Ó"=Ó>€EØ××ÐÜ×(Ò(¬×)<Ò)<¸UÀAÓ)FÓGˆÜ× Ò  ¤hÐ/?Ó&@ÓA‰ä× Ò  ¤HÐ-=Ó$>Ó?ˆØ�>�>ˆ>Ùà€Aä
×
Ò
˜Q¤¨Ó 4Ó
5€CØ
‡~‡~€~Ùä
×
Ò
˜Q¤¨Ó 5Ó
6€CØ
‡~‡~€~Ùä
×
Ò
˜Q¤¨Ó 5Ó
6€CØ
‡~‡~€~Ü× Ò  ¤h¨yÓ&9Ó:ˆØ�>�>ˆ>¤%×"3Ò"3°C×"8Ò"8ÜÐ5Ô6ÙÜ×Ò˜S¤(¨8Ó"4×5Ò5ÙÜ×Ò˜s¤H¨_Ó$=×>Ò>ÙÜ×Ò˜s¤H¨ZÓ$8×9Ò9ÙäÐ+¬E×,=Ò,=¸cÓ,BÐ+CÀ1ÐEÔFár)   c                ó,  € \        4       p\        P                  ! V 4      '       dn   \        P                  ! V 4      p\	        V4       FH  p\        P
                  ! W4      p\        P                  ! V4      pWQ9  g   K7  VP                  V4       KJ  	  V# )zx
Get OCG arrays from OC configuration
Returns dict {"basestate":name, "on":list, "off":list, "rbg":list, "locked":list}
)r´   r£   rI  r«  rS  r¬  r  ro   )rp  Úlist_rG   rg  r  rE   s   &     r'   ÚJM_get_ocg_arrays_imprq  xN  ss   € ô
 ‹F€EÜ×Ò˜3×ÒÜ×Ò Ó%ˆÜ�q–ˆAÜ×%Ò% sÓ.ˆCÜ×#Ò# SÓ)ˆDØÖ Ø—‘˜TÖ"ñ	 ð
 €Lr)   c                óT  € \        4       p\        P                  ! V \        R 4      4      p\	        V4      pV'       d   W1R&   \        P                  ! V \        R4      4      p\	        V4      pV'       d   W1R&   \        P                  ! V \        R4      4      p\	        V4      pV'       d   W1R&   \        4       p\        P                  ! V \        R4      4      p\        P                  ! V4      '       d[   \        P                  ! V4      p\        V4       F5  p\        P                  ! W%4      p\	        V4      pVP                  V4       K7  	  V'       d   W1R&   \        P                  ! V \        R4      4      pVP                  '       d   \        P                  ! V4      pW�R	&   V# )
r  ro  r€  r¸
  ÚLockedrb	  rÚ  r¹
  r}  r·
  )r7   r£   r  r  rq  r´   rI  r«  rS  r¬  ro   rÌ   r„  )	Úconfr¦   rp  rp  rG   rg  r  Úlist1rð  s	   &        r'   rY  rY  ˆN  sC  € ä	‹€BÜ
×
Ò
˜d¤H¨T£NÓ
3€CÜ! 3Ó'€EßØˆ4‰Ü
×
Ò
˜d¤H¨U£OÓ
4€CÜ! 3Ó'€EßØˆ5‰	Ü
×
Ò
˜d¤H¨XÓ$6Ó
7€CÜ! 3Ó'€EßØˆ8‰Ü‹F€EÜ
×
Ò
˜d¤H¨ZÓ$8Ó
9€CÜ×Ò˜3×ÒÜ×Ò Ó%ˆÜ�q–ˆAÜ×%Ò% sÓ.ˆCÜ)¨3Ó/ˆEØ�L‰L˜Öñ ÷ Øˆ:‰Ü
×
Ò
˜d¤H¨[Ó$9Ó
:€Cà
‡~‡~€~Ü×!Ò! 3Ó'ˆØˆ;‰Ø€Ir)   c                óø  € \         P                  ! V4      p\        ^ V^4       FÒ  p\         P                  ! \         P                  ! W4      4      p\         P
                  ! V4      p\         P                  ! \         P                  ! W^,           4      4      p\        V^^ 4      p\         P                  ! V4      p\        V\        4      '       g   Q hVP                  R4      pV P                  WX34       KÔ  	  R# )rx   r  N)r£   r«  rS  rú  r¬  r  rÃ  Úfz_buffer_extractr@   r  rå  ro   )	r  rý  rG   rg  r�  r{  r  r%  rõ  s	   &&       r'   rû  rû  ©N  s»   € Ü×Ò˜DÓ!€AÜ�1�a˜Ž^ˆÜ×(Ò(¬%×*=Ò*=¸dÓ*FÓGˆÜ×Ò˜sÓ#ˆÜ×(Ò(¬%×*=Ò*=¸dÈÅEÓ*JÓKˆÜ! # q¨!Ó,ˆÜ×#Ò# CÓ(ˆÜ˜!œU×#Ò#Ð#Ð#Ø�H‰H�WÓˆØ�‰�s�hÖó r)   c                ó"  € V P                   '       g   R# \        P                  ! V \        R4      4      p\        P                  ! V4      pVR8X  d6   \        P                  ! V \        R4      4      pVP                   '       g   R# MR# \        P
                  ! V4      '       d!   \        \        P                  ! V4      4      pM@\        P                  ! V4      '       d#   \        P                  ! V4      p\        V4      pMR# V'       d   V# R# )zÌ
JavaScript extractor
Returns either the script source or None. Parameter is a PDF action
dictionary, which must have keys /S and /JS. The value of /S must be
'/JavaScript'. The value of /JS is returned.
Nr�
  Ú
JavaScriptÚJS)rÌ   r£   r  r  r„  rÂ  r	  r  r!  r"  rÙ  )r�  rŒ  ÚjjÚjsr$  r%  s   &     r'   rf  rf  ¶N  sÉ   € ð �>�>ˆ>Ùä×Ò˜3¤¨£Ó.€AÜ	×	Ò	˜1Ó	€BØ	ˆ\ÔÜ×Ò ¤X¨d£^Ó4ˆØ�}�}ˆ}Ùð ñ 	ä×Ò˜2×ÒÜ"¤5×#;Ò#;¸BÓ#?Ó@‰Ü	×	Ò	˜R×	 Ò	 Ü×#Ò# BÓ'ˆÜ'¨Ó,‰áßØˆÙ
r)   c                ó|   € V P                   P                  '       d    \        P                  ! V ^ 4      '       g   ^ # ^# )z 
Ensure valid journalling state
)rÌ   r)	  r£   r4	  r  s   &r'   r  r  ÕN  s,   € ð ‡~�~××Ð¤e×&=Ò&=¸cÀ1×&EÒ&EÙÙr)   c                óŠ  € V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P
                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R	# V \         P                  8X  d   R
# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# V \         P                  8X  d   R# R# )z'
return extension for MuPDF image type
ÚfaxrÚ  ÚflateÚlzwÚrldÚbmpÚgifÚjb2r¤  ÚjpxÚjxrrå  rœ  Útiffrõ  )r£   ÚFZ_IMAGE_FAXÚFZ_IMAGE_RAWÚFZ_IMAGE_FLATEÚFZ_IMAGE_LZWÚFZ_IMAGE_RLDÚFZ_IMAGE_BMPÚFZ_IMAGE_GIFÚFZ_IMAGE_JBIG2ÚFZ_IMAGE_JPEGÚFZ_IMAGE_JPXÚFZ_IMAGE_JXRÚFZ_IMAGE_PNGÚFZ_IMAGE_PNMÚFZ_IMAGE_TIFF)rb  s   &r'   ÚJM_image_extensionr—  ÞN  sç   € ð ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×$Ñ$Ô$©wØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×$Ñ$Ô$©uØ”×#Ñ#Ô#©vØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×"Ñ"Ô"©uØ”×#Ñ#Ô#©vár)   c                óv  € \        V\        P                  4      '       g   Q h\        P                  ! \        P                  P                  4      p\        P
                  ! \        P                  ! V4      V4      p\        P
                  ! V\        4      pV\        V4      3p\        P                  V4       R # r+   )r@   r£   r|  rq  rE  r•  Úfz_quad_from_rectÚg_img_info_matrixÚJM_py_from_quadÚ
g_img_inforo   )r³  ró  r   rî  r$  rc  r  s   &&&&   r'   ÚJM_image_filterr�  øN  s~   € Ü�cœ5Ÿ>™>×*Ò*Ð*Ð*Ü�Š”U—\‘\×,Ñ,Ó-€AÜ×Ò¤×!8Ò!8¸Ó!;¸SÓA€AÜ×Ò Ô$5Ó6€AØ” Ó#Ð#€DÜ×Ñ�dÖr)   c                óˆ  € V '       g   R# \        V 4      pV^8  d   \        R4       R# T p\        P                  ! V4      pV\        P                  8X  d   R# V'       d   \        P
                  ! W24      pM\        P                  ! W24      p\        P                  ! V4      p\        P                  ! V4      p\        P                  ! V4      w  r‰\        P                  ! V4      p
\        P                  ! VP                  4       4      p\        4       pVP                  4       V\        &   VP!                  4       V\"        &   W¬R&   \%        V4      V\&        &   WŒ\(        &   Wœ\*        &   VP-                  4       V\.        &   VP1                  4       V\2        &   \5        V4      V\6        &   W¼\8        &   V'       d	   Wl\:        &   V# )z€
Return basic properties of an image provided as bytes or bytearray
The function creates an fz_image and optionally returns it.
NrÛ  Úorientation)r9   rv   r£   Úfz_recognize_image_formatÚFZ_IMAGE_UNKNOWNrå  Úfz_new_buffer_from_shared_datarz  Úfz_image_orientation_matrixrÕ  Úfz_image_orientationr<  rð  r7   r   r£  r"  r¤  r{  r¢  r¦  r§  rG   r¥  rÔ  r¨  r—  rù  r  Údictkey_image)r  Ú
keep_imagerÆ  rõ  rb  r%  rî  ró  rò  ró  rŸ  Úcs_namer“  s   &&           r'   ÚJM_image_profiler¨  O  s`  € ÷
 Ùä�	‹?€DØˆa„xÜÐ!Ô"ÙØ€Aä×+Ò+¨QÓ/€EØ”×&Ñ&Ô&ÙçÜ×2Ò2°AÓ<‰ä×2Ò2°AÓ<ˆÜ×*Ò*¨CÓ0€EÜ
×
+Ò
+¨UÓ
3€CÜ×*Ò*¨5Ó1�J€DÜ×,Ò,¨eÓ4€KÜ×&Ò&¨×(8Ñ(8Ó(:Ó;€GÜ‹V€FØ"ŸW™W›Y€FŒMÑØ#Ÿg™g›i€FŒNÑØ(ˆMÑÜ/°Ó4€FŒNÑØ ŒLÑØ ŒLÑØ"'§'¡'£)€FÔÑØ Ÿ9™9›;€FŒKÑÜ-¨eÓ4€FŒKÑØ&ŒOÑçØ!&”ÑØ€Mr)   c                ód  € V P                  4       p\        P                  ! 4       s\        P                  ! 4       p\        P
                  ! W\        4        ! R  R\        P                  4      pV! 4       p\        ^^^^VR7      p. s\        P                  ! WV4       \        \        4      p. sV# )c                  ó.   a € ] tR tRtV 3R ltR tRtV ;t# )Ú0JM_image_reporter.<locals>.SanitizeFilterOptionsi4O  c                	óD   <€ \         SV `  4        V P                  4        R # r+   ©rÇ   r‘   Úuse_virtual_image_filter©r&   r
  s   &€r'   r‘   Ú9JM_image_reporter.<locals>.SanitizeFilterOptions.__init__5O  s   ø€ Ü‰GÑÔØ×)Ñ)Ö+r)   c                	óH   € \        R \        P                  ! V4      W44       R # r+   )r�  r£   r|  )r&   r  ró  r   rî  rp  s   &&&&&&r'   Úimage_filterÚ=JM_image_reporter.<locals>.SanitizeFilterOptions.image_filter8O  s   € Ü˜D¤%§.¢.°Ó"5°tÖCr)   r,   ©r/   r0   r1   r2   r‘   r²  r3   r  ©r
  s   @r'   ÚSanitizeFilterOptionsr«  4O  s   ø† õ	,÷	Dð 	Dr)   r¶  )r˜  r™  r  rš  r	  )r1  r£   r|  rš  rq  rd  ÚPdfSanitizeFilterOptions2rœ  rœ  rÚ  rµ   )rÖ   r1  rJ  r¶  Úsanitize_filter_optionsÚfilter_optionsr¦   s   &      r'   rÓ  rÓ  -O  s™   € Ø
�(‰(‹*€CäŸšÓ(ÐÜ�|Š|‹~€HÜ	×Ò˜TÔ->Ô?ôD¤× ?Ñ ?ô Dñ 4Ó5Ðä+ØØØØØ)ô€Nð €Jä	×"Ò" C¨~Ô>ä	ŒzÓ	€BØ€JØ€Ir)   c                 ó  € \        \        R 4      '       * p \        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        \        R4      '       * p\        4       p	WR	&   \        \        P                  4      V	R
&   \        \        P
                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \        P                  4      V	R&   \        \         4      V	R&   \        \        P"                  4      V	R&   W	R&   W)R&   W9R&   WIR&   WYR&   WiR&   WyR&   W‰R&   \        \        P$                  4      V	R &   V	# )!ÚTOFUÚTOFU_BASE14ÚTOFU_CJKÚTOFU_CJK_EXTÚTOFU_CJK_LANGÚ
TOFU_EMOJIÚTOFU_HISTORICÚTOFU_SILÚTOFU_SYMBOLÚbase14ÚcbzÚepubr   Úiccr2  r†  r|  ra  zplotter-cmykz	plotter-gz	plotter-nzplotter-rgbz	py-memoryr¨  Útofuztofu-cjkztofu-cjk-extztofu-cjk-langz
tofu-emojiztofu-historicztofu-silztofu-symbolÚxps)r=   r£   r7   rè   ÚFZ_ENABLE_CBZÚFZ_ENABLE_EPUBÚFZ_ENABLE_HTMLÚFZ_ENABLE_ICCÚFZ_ENABLE_IMGÚFZ_ENABLE_JPXÚFZ_ENABLE_JSÚFZ_ENABLE_PDFÚFZ_PLOTTERS_CMYKÚFZ_PLOTTERS_GÚFZ_PLOTTERS_NÚFZ_PLOTTERS_RGBÚ	JM_MEMORYÚFZ_ENABLE_SVGÚFZ_ENABLE_XPS)
Ú	have_TOFUÚhave_TOFU_BASE14Úhave_TOFU_CJKÚhave_TOFU_CJK_EXTÚhave_TOFU_CJK_LANGÚhave_TOFU_EMOJIÚhave_TOFU_HISTORICÚhave_TOFU_SILÚhave_TOFU_SYMBOLrI   s
             r'   ÚJM_fitz_configrâ  OO  s  € Ü%¤e¨VÓ4Ô4€IÜ%¤e¨]Ó;Ô;ÐÜ%¤e¨ZÓ8Ô8€MÜ%¤e¨^Ó<Ô<ÐÜ%¤e¨_Ó=Ô=ÐÜ%¤e¨\Ó:Ô:€OÜ%¤e¨_Ó=Ô=ÐÜ%¤e¨ZÓ8Ô8€MÜ%¤e¨]Ó;Ô;Ðä
‹&€CØ.ˆ�MÜ"¤5×#6Ñ#6Ó7€Cˆ�JÜ"¤5×#7Ñ#7Ó8€Cˆ�KÜ"¤5×#7Ñ#7Ó8€Cˆ�KÜ"¤5×#6Ñ#6Ó7€Cˆ�JÜ"¤5×#6Ñ#6Ó7€Cˆ�JÜ"¤5×#6Ñ#6Ó7€Cˆ�JÜ"¤5×#5Ñ#5Ó6€Cˆ�IÜ"¤5×#6Ñ#6Ó7€Cˆ�JÜ"¤5×#9Ñ#9Ó:€CˆÑÜ"¤5×#6Ñ#6Ó7€CˆÑÜ"¤5×#6Ñ#6Ó7€CˆÑÜ"¤5×#8Ñ#8Ó9€CˆÑÜ"¤9›o€CˆÑÜ"¤5×#6Ñ#6Ó7€Cˆ�JØ'ˆ�KØ+ˆ
�OØ/ˆÑØ0ˆÑØ-ˆÑØ0ˆÑØ+ˆ
�OØ.ˆÑÜ"¤5×#6Ñ#6Ó7€Cˆ�JØ€Jr)   c                óî  € \         P                  ! V\        R4      4      p\         P                  ! W\         P                  ! 4       ^ 4      p\         P
                  ! V4      p\         P                  ! V4      '       d;   V'       d   \         P                  ! WE4       V# \         P                  ! WE^ 4        V# \         P                  ! V ^4      pV'       d@   VP                  '       d   \         P                  ! Wt4       \         P                  ! Wu4       M>\         P                  ! Wu4       VP                  '       d   \         P                  ! Wt4       \         P                  ! V\        R4      V4       V# )aO  
Insert a buffer as a new separate /Contents object of a page.
1. Create a new stream object from buffer 'newcont'
2. If /Contents already is an array, then just prepend or append this object
3. Else, create new array and put old content obj and this object into it.
   If the page had no /Contents before, just create a 1-item array.
rS  )r£   r  r  r/  r0  r  rI  rK  r3  rR  rÌ   rU  )ra  r  ÚnewcontrÝ  rK  Únewcontsr  Úcarrs   &&&&    r'   rÚ  rÚ  vO  s
  € ô ×!Ò! '¬8°JÓ+?Ó@€HÜ×#Ò# C´%·,²,³.À!ÓD€HÜ×Ò˜HÓ%€DÜ×Ò˜(×#Ò#ßÜ× Ò  Ô4ð €Kô ×"Ò" 8°qÕ9ð €Kô ×"Ò" 3¨Ó*ˆßØ×"×"Ð"Ü×$Ò$ TÔ4Ü× Ò  Õ0ä× Ò  Ô0Ø×"×"Ð"Ü×$Ò$ TÔ4Ü×Ò˜7¤H¨ZÓ$8¸$Ô?Ø€Kr)   c
                óð  € Rp
RpRp^ p^ p^ pRpRpRpRp\        V 4       V	R8”  d   \        P                  ! V	4      w  pppV'       d9   \        P                  ! RVXV^ 4      p
\        P                  ! W
W–V4      pRp^ pEMV'       d   \        P
                  ! V4      w  ppV'       d6   \        P                  ! WX^ ^ 4      p
\        P                  ! W
V4      pRp^pM¤V'       d   \        P                  ! RW%^ 4      p
MI\        V4      pVP                  '       g   \        \        \        4       \        P                  ! RWµ^ 4      p
V'       g   \        P                  ! W
4      p^ pM\        P                  ! W
V4      p^p\        P                  ! V4      p\!        \        P"                  ! \        P$                  ! V\'        R4      4      4      4      p\)        \        P"                  ! \        P$                  ! V\'        R4      4      4      4      pV'       g   \)        \+        W4      4      p\        P,                  ! V
4      p\        P.                  ! V
4      pVRVRVRVR\1        V4      R	V	R
VRV/.pV# )z
Insert a font in a PDF
Nrõ  rô  r¶  r   rÈ   rå  r<  ræ  r:  r;  r¨  )rd  r£   rê  rë  Úpdf_add_cjk_fontrì  Úpdf_add_simple_fontr4  r.  rÌ   rÁ  r#  rª	  rî  Úpdf_add_cid_fontr  rÃ  r„  r  r  r	  rø  r/  rD  rè   )ra  rä  r%  r&  rù  rë  r=  rL  r  ræ  rÜ  r%  rË  Úixrefr  r<  r¸   r   r¼  ÚextorÉ  rú  rR  rS  s   &&&&&&&&&&              r'   r$  r$  ”O  s/  € ð €DØ
€CØ€DØ€EØ€EØ€FØ
€EØ	€DØ	€DØ€Dä�SÔà�"„}Ü!×4Ò4°XÓ>Ñˆˆd�EßÜ×,Ò,¨T°4¸¸uÀaÓHˆÜ×)Ò)¨#°XÀeÓLˆØˆØŠ÷
 Ü×4Ò4°VÓ<‰JˆD�$ßÜ×0Ò0°¸tÀQÈÓJˆDÜ×0Ò0°¸HÓEˆHØˆDØ‰F÷ Ü×2Ò2°4¸ÈÓJ‘ä(¨Ó4�Ø—~—~�~ÜÔ.Ô0@ÔAÜ×4Ò4°T¸3ÀQÓG�çÜ ×1Ò1°#Ó<�Ø‘ä ×4Ò4°SÀÓI�Ø�ä×Ò˜XÓ&€EÜ¤× 1Ò 1´5×3EÒ3EÀhÔPXÐYcÓPdÓ3eÓ fÓg€Däœe×/Ò/´×1CÒ1CÀXÌxÐXaÓObÓ1cÓdÓe€DçÜ Ô!5°cÓ!AÓBˆä
×
 Ò
  Ó
&€CÜ
×
!Ò
! $Ó
'€Càà˜Ø˜Ø�tØœ$˜v›,Ø˜HØ˜CØ˜Sðð€Eð €Lr)   c                óR  € \        V \        P                  4      '       d   V # \        V \        4      '       dD   \        P                  ! V P                  V P
                  V P                  V P                  4      p V # \        V \        4      '       dZ   \        P                  ! V P                  V P
                  V P                  V P                  4      p\        P                  ! V4      pV# \        V \        P                  4      '       d   \        P                  ! V 4      pV# V '       d"   \        V 4      '       d   \        V 4      ^8w  d%   \        P                  ! \        P                  4      # . ROp\        ^4       Fq  pW,          W#&   W#,          f'   \        P                  ! \        P                  4      u # W#,          \        8  d	   \        W#&   W#,          \        8”  g   Ki  \        W#&   Ks  	  \        P                   ! V^ ,          V^,          V^,          V^,          4      # )z6
PySequence to mupdf.FzIrect. Default: infinite irect
r¯  )r@   r£   rá  râ  rµ  r·  r´  r¶  r+  rq  rJ  rL  ré  rS  r÷  rø  Úfz_make_irect)r$  rI   r  rg  s   &   r'   rK  rK  áO  sj  € ô �!”U—]‘]×#Ò#ØˆÜ�!”U×ÒÜ�MŠM˜1Ÿ4™4 §¡ q§t¡t¨Q¯T©TÓ2ˆØˆÜ�!”T×ÒÜ�lŠl˜1Ÿ4™4 §¡ q§t¡t¨Q¯T©TÓ2ˆÜ�mŠm˜CÓ ˆØˆ
Ü�!”U—\‘\×"Ò"Ü�mŠm˜AÓˆØˆ
ßÔ$ Q×'Ò'¬?¸1Ó+=ÀÔ+BÜ�}Š}œU×4Ñ4Ó5Ð5Ú€AÜ�1ŽXˆØ�tˆ‰Ø�4Š<Ü—=’=¤×!8Ñ!8Ó9Ò9Ø�4”/Ô!Ü"ˆA‰DØ�4”/Ö!Ü"ˆA‹Dñ ô ×Ò˜q �t Q q¥T¨1¨Q­4°°1µÓ6Ð6r)   c                ó  € \         P                  ! V 4      p\         P                  ! V\        R4      4      p\         P                  ! V4      '       d   \         P
                  ! V4      # \         P                  ! V4      p. p\        V4       Fz  p\         P                  ! W%4      p\         P                  ! V4      '       d   \         P                  ! V^4      pVP                  \        \         P
                  ! V4      4      4       K|  	  V# )z
ListBox retrieve value
rZ  )r£   r  r  r  rÂ  r  r«  rS  r¬  rI  ro   r	  )rß   r&  r   rG   r  rg  Úelems   &      r'   ÚJM_listbox_valuerñ  þO  sÊ   € ô
 ×#Ò# UÓ+€IÜ×Ò ¬H°S«MÓ:€FÜ×Ò˜F×#Ò#Ü×'Ò'¨Ó0Ð0ô 	×Ò˜VÓ$€AØ€Eô �AŽYˆÜ×"Ò" FÓ.ˆÜ×Ò˜t×$Ò$Ü×&Ò&¨¨aÓ0ˆDØ�‰Ô'¬×)AÒ)AÀ4Ó)HÓIÖJñ	 ð
 €Lr)   c           	     óä  € R pV^8  d   VR,          pM‰V^8X  d   WR^ ,          R R2,          pMnV^8X  d   Q hV^8X  d+   WR^ ,          R RV^,          R RV^,          R R2,          pM4WR^ ,          R RV^,          R RV^,          R RV^,          R R2,          pVR\        V4       RV R2,          p\        P                  ! \        P                  ! V 4      \        P                  V4       R	# )
r`   z0 g r³  z g r³   z rg z k rˆ	  rX  N)rä  r£   r¯  r  ÚPDF_ENUM_NAME_DA)rß   ra  rf  rþ   rÿ   rÓ  s   &&&&& r'   r  r  P  sñ   € ð
 €CØˆa„xØ��‰Ø	�ŒØ�a•&˜�˜3ÐÕ‰Ø	�ŒØˆqØ	�ŒØ�a•&˜�˜1˜S �V A˜J a¨¨A­¨q z°Ð6Õ6‰à�a•&˜�˜1˜S �V A˜J a¨¨A­¨q z°°3°qµ6¸!°*¸CÐ@Õ@ˆØˆQŒ˜xÓ(Ð)¨¨8¨*°CÐ8Õ8€CÜ	×"Ò"¤5×#6Ò#6°uÓ#=¼u×?UÑ?UÐWZÖ[r)   c                ó4   €  \        P                  ! YY#T4      # rv  )4r  r   ÚJM_make_spanlistr£   rx  rq  rv  ry  rz  rç  rŠ  r�  r‘  rÌ   rÜ  rg  rU  rÉ  rÐ  ÚFZ_STEXT_SYNTHETICrü  rú  Úargbr’  rR  r“  rÊ  rø  Údictkey_charsrÙ  r
  ÚJM_py_from_pointÚdictkey_originrp  r   r|  ro   r7   rÇ  Údictkey_flagsÚdictkey_bidiÚdictkey_char_flagsrÃ  Údictkey_fontrÖ  rn  rõ  Ú	dictkey_crè   r{  ræ  Údictkey_spans)Ú	line_dictrs   rÚ  r—  r€  Ú	char_listÚ	span_listÚ	span_rectÚ	line_rectÚ
char_styleÚ	old_styler‰  rJ  Úspan_originr?  r$  rÐ  rU  rR  rÊ  Ú	char_dicts   &&&&&                r'   rõ  rõ  *P  s   € ØÜ×%Ò% i°sÀ'ÓJÐJr)   c                ó   € V P                  4       p\        V4      p\        P                  ! V P                  4      p V'       d;   V\        P
                  \        P                  39   g   V\        P                  8  d=   \        P                  ! V \        P                  ! \        P                  4      4      pRpMŒVR8X  dR   V P                  4       ^8X  d=   \        P                  ! V \        P                  ! \        P                  4      ^_^4      pM4\        P                  ! \        P                  ! VP                  4      4      p\!        V4      pV P#                  4       V\$        &   V P'                  4       V\(        &   W1\*        &   V P                  4       V\,        &   V P/                  4       V\0        &   V P3                  4       V\4        &   V P7                  4       V\8        &   \;        V4      V\<        &   Wa\>        &   R# )zÆPopulate a dictionary with information extracted from a given image.

Used by 'Document.extract_image' and by 'JM_make_image_block'.
Both of these functions will add some more specific information.
rå  r¤  N) Úfz_compressed_image_typer—  r£   Úll_fz_compressed_image_bufferrÌ   r�  r¡  rŽ  Úfz_new_buffer_from_image_as_pngrÎ  r^  rG   Ú fz_new_buffer_from_image_as_jpegrF  r6  r3
  r#  r   r£  r"  r¤  rù  r¥  rò  r¦  ró  r§  rÔ  r¨  r9   rÇ  r¥  )r2  Úimg_dictÚimg_typerå  Úll_cbufr%  r   s   &&     r'   r	  r	  ÀP  sv  € ð ×+Ñ+Ó-€HÜ
˜XÓ
&€Cô ×1Ò1°#·.±.ÓA€Gà	ßØœ×,Ñ,¬e×.DÑ.DÐEÔEØ”e×(Ñ(Ô(ô ×3Ò3ØÜ×'Ò'¬×(EÑ(EÓFóˆð ‰Ø	�Œ˜3Ÿ5™5›7 aœ<ä×4Ò4Øœ×,Ò,¬U×-JÑ-JÓKÈRÐQRóT‰ô �nŠnœU×4Ò4°W·^±^ÓDÓEˆä˜cÓ"€FØ!Ÿe™e›g€HŒ]ÑØ"Ÿu™u›w€HŒ^ÑØŒ[ÑØ#&§5¡5£7€HÔÑ Ø ŸX™X›Z€HŒ\ÑØ ŸX™X›Z€HŒ\ÑØŸG™G›I€HŒ[ÑÜ  ›[€HŒ\ÑØ$Œ]Ór)   c                óX  € V P                  4       p\        W!4       VP                  4       pVP                  '       dH   VP	                  \
        P                  ! \
        P                  4      4      pVP                  4       VR &   MRVR &   \        V P                  4       4      V\        &   R# )rï  N)r~  r	  rï  rÌ   r  r£   rÎ  r^  rw  r{  r¡  r¢  )r�  r¬  r2  rï  r—  s   &&   r'   ÚJM_make_image_blockr  êP  s   € Ø
�-‰-‹/€CÜ�SÔ%à�8‰8‹:€DØ‡‡€Ø×3Ñ3´E×4GÒ4GÌ×HeÑHeÓ4fÓgˆØ!×3Ñ3Ó5ˆ
�6Òà!ˆ
�6ÑÜ!2°5×3DÑ3DÓ3FÓ!G€JŒ~Ór)   c                ór   €  \        P                  ! T P                  YTP                  TP                  4      # rv  )r  r   ÚJM_make_text_blockrÌ   r£   rq  rv  ræ  r'  r6  rç  r7   rõ  r|  r=  Údictkey_wmoderù  r¶  Údictkey_dirrp  r   ro   Údictkey_lines)
r�  r¬  rÚ  r—  r€  Ú	line_listÚ
block_rectrs   r  r  s
   &&&&&     r'   r  r  ÷P  s-   € ØÜ×'Ò'¨×(8Ñ(8¸*È4Ï?É?Ð\c×\nÑ\nÓoÐor)   c                óF   €  \        P                  ! T P                  Y4      # rv  )r  r   rm  rÌ   r£   r0
  rq  rJ  Úfz_contains_rectr6  rç  rÈ   ÚFZ_STEXT_BLOCK_IMAGEræ  r'  r7   rŸ  rú  rp  r   r  r  ro   Údictkey_blocks)	rT  rn  rÚ  Útext_bufferÚ
block_listr€  r  r�  r¬  s	   &&&      r'   rm  rm  Q  s   € ØÜ×*Ò*¨2¯=©=¸)ÓIÐIr)   c           	     ó®  € . ROp\        V \        P                  4      '       d   V # \        V \        4      '       dX   \        P                  ! V P                  V P
                  V P                  V P                  V P                  V P                  4      # V '       d"   \        V 4      '       d   \        V 4      ^8w  d   \        P                  ! 4       # \        ^4       F1  p\        W4      W&   W,          e   K  \        P                  ! 4       u # 	  \        P                  ! V^ ,          V^,          V^,          V^,          V^,          V^,          4      # )rx   )rx   rx   rx   rx   rx   rx   )r@   r£   r|  r  r   rI  rõ  rH  rh  r  rJ  rL  rS  r$  rq  )r‹  r   rg  s   &  r'   rè  rè  /Q  sâ   € Ú€AÜ�!”U—^‘^×$Ò$ØˆÜ�!”V×ÒÜ�~Š~˜aŸc™c 1§3¡3¨¯©¨Q¯S©S°!·#±#°q·s±sÓ;Ð;ßÔ$ Q×'Ò'¬?¸1Ó+=ÀÔ+BÜ�~Š~ÓÐÜ�1ŽXˆÜ˜QÓ"ˆ‰Ø�4Œ<Ü—<’<“>Ò!ñ ô �>Š>˜!˜A�$  !¥ a¨¥d¨A¨a­D°!°Aµ$¸¸!½Ó=Ð=r)   c           	     óÐ  € \         P                  ! \         P                  P                  4      p\         P                  ! \         P                  ! V \        R4      4      4      p\         P                  ! V4      '       g   \         P                  ! V4      '       d   ^ Vn        ^ Vn	        RVn
        RVn        \         P                  ! \         P                  ! VP                  VP                  4      \         P                  ! VP                  VP                  4      \         P                  ! VP                  VP                  4      \         P                  ! VP                  VP                  4      4      pVP                  VP                  ,
          ^8  g#   VP                  VP                  ,
          ^8  d/   \         P                  ! \         P                  P                  4      pV# )z
return a PDF page's MediaBox
r�  éd  é  )r£   rq  rE  r  r  r  ræ  rç  rµ  r·  r´  r¶  Úfz_minÚfz_max)rL  Úpage_mediaboxrJ  s   &  r'   ri  ri  >Q  s8  € ô —L’L¤§¡×!8Ñ!8Ó9€MÜ× Ò Ü×*Ò*¨8´X¸jÓ5IÓJó€Hô ×Ò˜h×'Ò'¬5×+DÒ+DÀX×+NÒ+NØˆŒØˆŒØˆŒØˆŒä—L’LÜ�LŠL˜Ÿ™ h§k¡kÓ2Ü�LŠL˜Ÿ™ h§k¡kÓ2Ü�LŠL˜Ÿ™ h§k¡kÓ2Ü�LŠL˜Ÿ™ h§k¡kÓ2ó	€Mð 	×Ñ˜=×+Ñ+Õ+¨aÔ/Ø×Ñ -×"2Ñ"2Õ2°QÔ6äŸš¤U§\¡\×%<Ñ%<Ó=ˆàÐr)   c
                ó  € \         '       d    \        P                  ! V VVVVVVVVV	4
      # Tp
^ p\        P                  ! W2,
          4      ^,           pW#8  d\   TpWÓ8:  dR   \        WWÚWVWy4       V^,          pV^ 8”  d    W¸,          ^ 8X  d   \        RV RV R24       V^,          pV
^,          p
KW  R# TpWÓ8¼  dR   \        WWÚWVWy4       V^,          pV^ 8”  d    W¸,          ^ 8X  d   \        RV RV R24       V^,          pV
^,          p
KW  R# )z§
Copy a range of pages (spage, epage) from a source PDF to a specified
location (apage) of the target PDF.
If spage > epage, the sequence of source pages is reversed.
z	Inserted rH  z pages.N)r  r   rû  r£   Úfz_absiÚ
page_mergerv   )Údoc_desÚdoc_srcÚspageÚepageÚapager`  r5  r¯  ræ  Ú	graft_mapÚ	afterpageÚcounterr\  rÖ   s   &&&&&&&&&&    r'   rû  rû  [Q  s$  € ÷" ƒ{Ü×#Ò#ØØØØØØØØØØóð 	ð €IØ€GÜ�MŠM˜%�-Ó(¨1Õ,€Eà„}ØˆØŒmÜ�w¨¸&ÈÔ[Ø�q�LˆGØ˜qÔ  WÕ%<ÀÔ%AÜ˜) G 9¨D°°°wÐ?Ô@Ø�A�IˆDØ˜�NŠIñ ð ˆØŒmÜ�w¨¸&ÈÔ[Ø�q�LˆGØ˜qÔ  WÕ%<ÀÔ%AÜ˜) G 9¨D°°°wÐ?Ô@Ø�A�IˆDØ˜�NŠIñ r)   c                ó   € \         P                  ! V P                  4       \        R4      4      pVP                  '       g0   \         P
                  ! V P                  4       \        R4      ^4      p\         P                  ! V\        R4      4      p\         P                  ! V\        R4      4      p\         P                  ! V\        R4      4      p\         P                  ! V\        R4      4      pRpRp\         P                  ! V4      '       Ed€   \         P                  ! V4      p	\         P                  ! V4      '       d’   \        \         P                  ! V4      4       Fm  p
\         P                  ! \         P                  ! W:4      4      pVP                  R4      '       g   KF  \         P                  ! VR,          4      pWÇ8”  g   Kk  TpKo  	  M!\         P
                  ! V\        R4      V	4      pV^,          p\        V	4       Fƒ  p
\         P                  ! \         P                  ! WZ4      4      p\         P                  ! VR,          4      V,           pRV 2p\         P                  ! WZ4      p\         P                  ! W=V4       K…  	  \         P                  ! V4      '       d’   \        \         P                  ! V4      4       Fm  p
\         P                  ! \         P                  ! WJ4      4      pVP                  R4      '       g   KF  \         P                  ! VR,          4      pWÈ8”  g   Kk  TpKo  	  M!\         P
                  ! V\        R4      ^4      pV^,          p\        \         P                  ! V4      4       Fƒ  p
\         P                  ! \         P                  ! Wj4      4      p\         P                  ! VR,          4      V,           pRV 2p\         P                  ! Wj4      p\         P                  ! WMV4       K…  	  Wx3# )	a?  
Merge the /Resources object created by a text pdf device into the page.
The device may have created multiple /ExtGState/Alp? and /Font/F? objects.
These need to be renamed (renumbered) to not overwrite existing page
objects from previous executions.
Returns the next available numbers n, m for objects /Alp<n>, /F<m>.
r<  r@  rã  ÚAlpr   r¸  r‰	  r¨  )r£   r  r  r  rÌ   rY  r…  r†  rS  r„  rˆ  r5   Úfz_atoir‡  r°  )rÖ   Útemp_resri  Ú	main_extgÚ
main_fontsÚ	temp_extgÚ
temp_fontsre  Ú	max_fontsrG   rg  ri  rŒ  r   r  rÜ  s   &&              r'   r_  r_  ‘Q  s÷  € ô ×"Ò" 4§8¡8£:¬x¸Ó/DÓE€IØ××ÐÜ×+Ò+¨D¯H©H«J¼ÀÓ8MÈqÓQˆ	Ü×"Ò" 9¬h°{Ó.CÓD€IÜ×#Ò# I¬x¸Ó/?Ó@€Jô ×"Ò" 8¬X°kÓ-BÓC€IÜ×#Ò# H¬h°vÓ.>Ó?€Jà€GØ€Iô ×Ò˜×#Ó#Ü×Ò˜yÓ)ˆÜ×Ò˜Y×'Ò'Üœ5×-Ò-¨iÓ8Ö9�ä×'Ò'¬×)?Ò)?À	Ó)MÓN�Ø—~‘~ e×,Ò,ÙÜ—M’M # b¥'Ó*�Ø–;Ø’Gò :ô ×/Ò/°	¼8ÀKÓ;PÐRSÓTˆIà�1�ˆÜ�q–ˆAÜ×#Ò#¤U×%;Ò%;¸YÓ%JÓKˆCÜ—’˜c "�gÓ&¨Õ0ˆAØ˜˜�9ˆDÜ×(Ò(¨)Ó7ˆCÜ×Ò 	°Ö5ñ ô ×Ò˜×$Ò$Ü”u×)Ò)¨*Ó5Ö6ˆAÜ×$Ò$¤e×&<Ò&<¸jÓ&LÓMˆDØ—?‘? 3×'Ò'ÙÜ—’˜d 2�hÓ'ˆAØŽ}Ø’	ò 7ô ×,Ò,¨Y¼ÀÓ8HÈ!ÓLˆ
à�…N€IÜ”5×%Ò% jÓ1Ö2ˆÜ× Ò ¤%×"8Ò"8¸*Ó"HÓIˆÜ�MŠM˜$˜r�(Ó# iÕ/ˆØ�1�#ˆwˆÜ×$Ò$ ZÓ3ˆÜ×Ò˜J¨cÖ2ñ 3ð ÐÐr)   c                óh   € \         P                  V 4       \        '       d   \        RV  24       R# R# )z
redirect MuPDF warnings
zMuPDF warning: N)r«  ro   ÚJM_mupdf_show_warningsrv   ru   s   &r'   ÚJM_mupdf_warningr>  ÓQ  s,   € ô ×"Ñ" 4Ô(ßÓÜ�/ $ Ð(Ö)ñ r)   c                ój   € \         P                  V 4       \        '       d   \        R V  R24       R# R# )zMuPDF error: r#   N)r«  ro   rª  rv   ru   s   &r'   ÚJM_mupdf_errorr@  ÜQ  s,   € Ü×"Ñ" 4Ô(ßÓÜ�- ˜v RÐ(Ö)ñ r)   c                óH   € \        V \        4      '       g   Q h\        W4      # r+   )r@   r´   ÚJM_new_bbox_device_Device)r¦   rX  s   &&r'   rV  rV  âQ  s    € Ü�bœ$×ÒÐÐÜ$ bÓ5Ð5r)   c           
     óœ  € \        V \        P                  4      '       g   Q h\        P                  ! V P                  P
                  4      p\        P                  ! R4      pV  Fã  pVP                  P                  \        P                  8X  g   K.  V F�  pV Ff  p\        V\        WE4      4      '       g   \        P                  ! V4      '       g   K<  \        P                  ! W%P                  P                  4       Kh  	  \        P                  ! V\        R4      4       K‘  	  \        P                  ! V\        R4      4       Kå  	  V# )z)
make a buffer from an stext_page's text
ré  r#   )r@   r£   r  rq  rÌ   rJ  r0
  rÈ   rw  rz  ry  rç  Úfz_append_runerõ  r}  r:  )rÖ   rü   rÓ  r�  rs   r?  s   &     r'   ÚJM_new_buffer_from_stext_pagerE  çQ  sì   € ô �dœE×-Ñ-×.Ò.Ð.Ð.Ü�<Š<˜Ÿ™×0Ñ0Ó1€DÜ
×
Ò
˜cÓ
"€CÛˆØ×Ñ× Ñ ¤E×$=Ñ$=Ö=Û�Û�BÜ,¨T´<ÀÓ3I×JÒJÜ$)×$=Ò$=¸d×$CÒ$Cá Ü×(Ò(¨¯m©m¯o©oÖ>ñ ô ×$Ò$ S¬#¨d«)Ö4ñ ô × Ò  ¤c¨$£iÖ0ñ ð €Jr)   c                ó®  € Vf   R# \        V4      pVf   R# \        P                  ! VP                  R4      4      p\        P                  ! W\        P
                  ! 4       ^ 4      p\        P                  ! V ^4      p\        P                  ! V\        R4      \        P                  ! R4      4       \        P                  ! V\        R4      V4       V# )zƒ
make new PDF action object from JavaScript source
Parameters are a PDF document and a Python string.
Returns a PDF action object.
NrS  r�
  ry  rz  )
r‹  r£   rå  r  r/  r0  rG  rU  r  rå  )ra  r¸   rË  r%  r·  Ú	newactions   &&    r'   ÚJM_new_javascriptrH  üQ  s    € ð ‚}áÜ˜Ó€DØ‚|áä
×
.Ò
.¨t¯{©{¸6Ó/BÓ
C€CÜ×!Ò! #¬E¯LªL«N¸AÓ>€FÜ×&Ò& s¨AÓ.€IÜ	×Ò�y¤(¨3£-´×1CÒ1CÀLÓ1QÔRÜ	×Ò�y¤(¨4£.°&Ô9ØÐr)   c                ó   € \        V 4      # r+   )ÚJM_new_output_fileptr_Output©r¬  s   &r'   rC	  rC	  R  s   € Ü'¨Ó-Ð-r)   c                ón   € V ^ 8  d   V R,          p K  V R8¼  d   V R,          p K  V ^Z,          ^ 8w  d   ^ # V # )z:
# return normalized /Rotate value:one of 0, 90, 180, 270
rí  r,   )r`  s   &r'   r   r   R  s8   € ð �1Œ*Ø�#�ŠØ
�CŒ-Ø�#�ŠØ�…{�aÔÙØ€Mr)   c                óØ   € \         P                  ! R 4      p\         P                  ! V4      p\         P                  ! W@W4       VP	                  4        \         P
                  ! V4       V# )r/
  )r£   r0
  r1
  r2
  rE	  Úfz_terminate_buffer)r  r¤  r™  r%  rF	  s   &&&  r'   rÃ  rÃ  #R  sO   € Ü
×
Ò
˜cÓ
"€CÜ
�.Š.˜Ó
€CÜ	×Ò˜ 8Ô3Ø×ÑÔÜ	×Ò˜cÔ"Ø€Jr)   c                ón  € V P                   '       g   V# T pVP                   '       Ed   \        P                  ! V4      pW19   g1   \        P                  ! V\	        R4      4      P                   '       d    V# VP                  V4       \        P                  ! V\	        R4      4      p\        P                  ! V4      '       d   \        WA4      p\        P                  ! V\	        R4      4      p\        P                  ! V\	        R4      4      p\        P                  ! V4      '       d   EK  TpEK  V# )zs
Return list of outline xref numbers. Recursive function. Arguments:
'obj' first OL item
'xrefs' empty Python list
r  ró  ÚNextr§  )rÌ   r£   r  r  r  ro   r…  rô  )r  r÷  ÚthisobjÚnewxrefrù  rì   s   &&    r'   rô  rô  ,R  sé   € ð �>�>ˆ>ØˆØ€GØ
×
×
Ñ
Ü×"Ò" GÓ,ˆØÔœu×1Ò1°7¼HÀVÓ<LÓM×X×XÐXàð €Lð 	�‰�gÔÜ×"Ò" G¬X°gÓ->Ó?ˆÜ×Ò˜e×$Ò$Ü$ eÓ3ˆEÜ×$Ò$ g¬x¸Ó/?Ó@ˆÜ×#Ò# W¬h°xÓ.@ÓAˆÜ× Ò  '×*Õ*Ø‹GØ€Lr)   c                ó²   € ^ p\         P                  ! V P                  4       \         P                  4      p\         P                  ! V4      p\        V4      pV# )z=
return a PDF page's /Rotate value: one of (0, 90, 180, 270)
)r£   r  r  rt  r  r   )rÖ   r`  r  s   &  r'   r~  r~  ER  sF   € ð €Fä
×
(Ò
(¨$¯(©(«*´e×6PÑ6PÓ
Q€CÜ×Ò˜cÓ"€FÜ˜fÓ%€FØ€Mr)   c                óè   € \         P                  ! \        VR4      4      p\         P                  ! V4      p\         P                  ! \         P
                  4      p\         P                  ! WV4      pV# )zH
create PDF object from given string (new in v1.14.0: MuPDF dropped it)
rS  )r£   rå  r  r¢  Ú	PdfLexbufÚPDF_LEXBUF_SMALLÚpdf_parse_stm_obj)r1  r4  r4  r   Úlexbufr“  s   &&    r'   ræ  ræ  QR  sV   € ô ×2Ò2´5¸¸fÓ3EÓF€GÜ×!Ò! 'Ó*€FÜ�_Š_œU×3Ñ3Ó4€FÜ×$Ò$ S°&Ó9€FØ€Mr)   c                óÔ  € \        V \        P                  4      '       g   Q hVf   \        P                  ! 4       pVe8   \        V\        P                  4      '       g   Q R\	        V4      : RV 24       h\        P
                  ! V 4      p\        V4      p\        V4      p\        P                  ! Wh4      p\        P                  ! Wg4      p\        P                  ! V4      p	\        V\        P                  4      '       g   Q h\        P                  ! W)WS4      p
V'       d   \        P                  ! V
4       M\        P                  ! V
^ÿ4       \        P                  ! V4      '       gX   \        P                   ! WzV	4      p\        P"                  ! W\        P$                  ! 4       V\        P&                  ! 4       4       M�\        P(                  ! Wz4      p\        P"                  ! W\        P$                  ! 4       \        P*                  ! \        P*                  P,                  4      \        P&                  ! 4       4       \        P.                  ! V4       \1        RV
4      # )z„
Version of fz_new_pixmap_from_display_list (util.c) to also support
rendering of only the 'clip' part of the displaylist rectangle
ztype(seps)=r€   rÚ  )r@   r£   rO  rë  rÈ   rf  rè  r  r'  rà  r(  r-  rã  r/  r0  rç  rN  ri  r|  rj  rM  rq  rr  r¼  rì  )rp  ró  rô  rñ  r  rþ  rü   rî  r8  r  rõ  r¿  s   &&&&&&      r'   r`  r`  _R  s®  € ô �eœU×0Ñ0×1Ò1Ð1Ð1Ø‚|Ü×"Ò"Ó$ˆØŠ<œ: d¬E×,?Ñ,?×@Ò@ÐZÀ[ÄTÈ$ÃZÁMÐQSÐTXÐSYÐBZÓZÐ@ä×&Ò& uÓ-€DÜ˜sÓ#€FÜ˜DÓ!€EÜ×"Ò" 4Ó/€Dä×"Ò" 4Ó0€DÜ×Ò Ó%€Eä�rœ5×-Ñ-×.Ò.Ð.Ð.ä
×
'Ò
'¨°4Ó
?€CßÜ×Ò˜cÕ"ä×(Ò(¨¨dÔ3ä×$Ò$ U×+Ò+Ü×0Ò0°¸eÓDˆÜ×!Ò! %¬e¯nªnÓ.>ÀÄuÇ~Â~ÓGWÕXä×&Ò& vÓ3ˆÜ×!Ò! %¬e¯nªnÓ.>ÄÇÂÌUÏ\É\×MhÑMhÓ@iÔkp×kyÒkyÓk{Ô|ä	×Ò˜#Ôä�5˜#ÓÐr)   c                ó*  € \        V \        P                  4      '       d   V # \        V \        4      '       d,   \        P                  ! V P                  V P
                  4      # \        '       d   \        P                  ! V 4      # \        P                  ! ^ ^ 4      p\        V ^ 4      p\        V ^4      pVe   Vf   V# \        V\        4      p\        V\        4      p\        V\        4      p\        V\        4      p\        P                  ! W#4      # )zE
PySequence to fz_point. Default: (FZ_MIN_INF_RECT, FZ_MIN_INF_RECT)
)r@   r£   rg  r)  ri  rj  r  r   r+  r$  r'  r÷  r÷  rø  )r²  rˆ  ri  rj  s   &   r'   r+  r+  ŒR  sË   € ô �!”U—]‘]×#Ò#ØˆÜ�!”U×ÒÜ�}Š}˜QŸS™S !§#¡#Ó&Ð&ßƒ{Ü×%Ò% qÓ)Ð)ä	�Š�q˜!Ó	€BÜ�a˜Ó€AÜ�a˜Ó€AØ‚y�A’IØˆ	ÜˆQ”Ó €AÜˆQ”Ó €AÜˆQ”Ó €AÜˆQ”Ó €AÜ�=Š=˜ÓÐr)   c                óÌ  € \         '       d   \        P                  ! W4      # \        V \        P
                  4      '       g   Q h\        V\        P                  4      '       g   Q h\        P                  ! VP                  P                  4      p^ p^ p^ p^ p\        V4       Fp  w  rxVP                  P                  \        P                  8X  d;   \        V4       F"  w  rš\        V
4       F  w  r¼K  	  VX,          pK$  	  VX	,          pWG,          pKr  	  V FÆ  pVP                  P                  \        P                  8X  g   K.  V F’  p
^ pV
 F^  p\        W¬4      p\        P                  ! V4      '       g   \        W-4      '       g   K=  VP                  P                   p\#        W4       K`  	  V^
8w  g   Kr  V^ 8”  g   K{  \        P$                  ! V R4       K”  	  KÈ  	  R# )z¹
Plain text output. An identical copy of fz_print_stext_page_as_text,
but lines within a block are concatenated by space instead a new-line
character (which else leads to 2 new-lines).
r#   N)r  r   rh  r@   r£   rF  r  rq  rÌ   rJ  rZ  rÈ   rw  ry  rç  rz  rõ  r{  rÙ  )r%  rÖ   rü   r„  Ún_blocksÚn_linesÚn_charsÚ	n_blocks2r�  Ún_lines2rs   Ún_chars2r?  Úchbboxs   &&            r'   rh  rh  £R  s€  € ÷ ‹[Ü×0Ò0°Ó;Ð;ä�cœ5Ÿ>™>×*Ò*Ð*Ð*Ü�dœE×-Ñ-×.Ò.Ð.Ð.Ü�<Š<˜Ÿ™×0Ñ0Ó1€DØ€Ià€HØ€GØ€GÜ% tÖ,Ñˆ	Ø×Ñ× Ñ ¤E×$=Ñ$=Ô=Ü"+¨UÖ"3‘�Ü$-¨tÖ$4‘L�HÙñ %5à˜8Õ#’ñ #4ð �xÕˆGØÕŠñ -ó ˆØ×Ñ× Ñ ¤E×$=Ñ$=Ö=Û�Ø�	Û�BÜ)¨$Ó3�FÜ×1Ò1°$×7Ò7Ü/°×=Ô=ð %'§M¡M§O¡O˜	ä& sÖ6ñ ð  –? y°1¦}Ü×*Ò*¨3°Ö5ó ó r)   c                óf  € \         P                  ! W4      p\         P                  ! V 4      pV'       gY   Ve   VP                  '       g   \         P                  ! W4       R# VP                  '       d   \         P                  ! WB4       R# VP                  '       d   VP                  '       g   \        V4      pM\        \         P                  ! WB4      4      pW68w  dP   \        WS4      pVP                  '       g   \         P                  ! WV4       R# \         P                  ! WW4       R# R# )zì
Create a JavaScript PDF action.
Usable for all object types which support PDF actions, even if the
argument name suggests annotations. Up to 2 key values can be specified, so
JavaScript actions can be stored for '/A' and '/AA/?' keys.
N)	r£   r  r›  rÌ   rH  rf  rH  rU  rV  )r&  Úkey1Úkey2r¸   Úkey1_objra  r$  rG  s   &&&&    r'   ÚJM_put_scriptrg  ÎR  sÜ   € ô ×!Ò! )Ó2€HÜ
×
&Ò
& yÓ
1€C÷ ØŠ<˜tŸŸ˜Ü×Ò˜yÔ/ñ 	ð × × Ð Ü×Ò˜xÔ.Ùð �?�?ˆ? (×"5×"5Ð"5Ü˜xÓ(‰äœu×1Ò1°(ÓAÓBˆð „Ü% cÓ1ˆ	Ø��ˆÜ×Ò˜y°	Ö:ä×Ò 	°dÖAñ r)   c                ó^   € V P                   V P                  V P                  V P                  3# r+   rž  rÁ  s   &r'   rS  rS  ïR  ó!   € Ø�4‰4�—‘�q—t‘t˜QŸT™TÐ!Ð!r)   c                óŠ   € V P                   V P                  V P                  V P                  V P                  V P
                  3# r+   rû  )r‹  s   &r'   r{  r{  óR  s-   € Ø�3‰3�—‘�Q—S‘S˜!Ÿ#™#˜qŸs™s A§C¡CÐ'Ð'r)   c                ó2   € V P                   V P                  3# r+   r  )r²  s   &r'   rù  rù  ÷R  s   € Ø�3‰3�—‘ˆ8€Or)   c                ó^  € V P                   P                  V P                   P                  3V P                  P                  V P                  P                  3V P                  P                  V P                  P                  3V P
                  P                  V P
                  P                  33# )z
PySequence from fz_quad.
)rû  ri  rj  r×  rÕ  rÖ  )rc  s   &r'   r›  r›  ûR  sn   € ð
 �T‰T�V‰V�Q—T‘T—V‘VÐØ�T‰T�V‰V�Q—T‘T—V‘VÐØ�T‰T�V‰V�Q—T‘T—V‘VÐØ�T‰T�V‰V�Q—T‘T—V‘VÐð	ð r)   c                ó^   € V P                   V P                  V P                  V P                  3# r+   rž  rÁ  s   &r'   rp  rp  S  ri  r)   c           
     ó:  € \        V \        P                  4      '       d   V # \        V R 4      '       dG   \	        V 4      ^8X  d7   \        V ^ ,          R4      '       d   \        P
                  ! \        V 4      !  p \        V \        P
                  4      '       d   \        P                  ! V 4      # \        V \        4      '       d¾   \        P                  ! V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  4      # \        P                  ! ^ ^ ^ ^ ^ ^ ^ ^ 4      p. ROpV '       d-   \        V \        \         34      '       d   \	        V 4      ^8w  d   V# \#        V ^ 4      f    \        P                  ! \%        V 4      4      # \'        ^4       EFK  pV\	        V 4      8¼  d   Vu # W,          p\)        V4      '       d   \+        V4      ^8w  d   Vu # \#        V^ 4      W#,          n        \#        V^4      W#,          n        W#,          P                  e   W#,          P                  f   Vu # \-        W#,          P                  \.        4      W#,          n        \-        W#,          P                  \.        4      W#,          n        \1        W#,          P                  \2        4      W#,          n        \1        W#,          P                  \2        4      W#,          n        EKN  	  V^ ,          Vn
        V^,          Vn        V^,          Vn        V^,          Vn        V# )rŒ  r•  r¯  )r@   r£   rV  r=   r9   rq  rµ   r™  r)  Úfz_make_quadrû  ri  rj  r×  rÕ  rÖ  r´   r$  r  rS  rJ  rL  r'  r÷  r÷  rø  )r$  rc  r²  rg  r  s   &    r'   r_  r_  S  sW  € Ü�!”U—\‘\×"Ò"Øˆäˆq�-× Ò ¤S¨£V¨q¤[´W¸Q¸q½TÀ;×5OÒ5OÜ�LŠLœ% ›(Ñ#ˆÜ�1”e—l‘l×#Ò#Ü×&Ò&¨Ó*Ð*Ü�1”d×ÒÜ×!Ò!Ø—‘—‘˜Ÿ™Ÿ™Ø—‘—‘˜Ÿ™Ÿ™Ø—‘—‘˜Ÿ™Ÿ™Ø—‘—‘˜Ÿ™Ÿ™ó	ð 	ô 	×Ò˜1˜a  A q¨!¨Q°Ó2€AÚ€Aß”J˜q¤5¬$ -×0Ò0´C¸³F¸a´KØˆä�Q˜ÓÒ"Ü×&Ò&¤°qÓ'9Ó:Ð:ä�1�XˆØ”�A“Œ;ØŠHØ�dˆÜ ×$Ò$¬¸Ó(<ÀÔ(AØŠHä˜s AÓ&ˆ�ŒÜ˜s AÓ&ˆ�ŒØ�4�6‰6Š>˜Q�TŸV™Vš^ØŠHÜ�a•d—f‘fœoÓ.ˆ�ŒÜ�a•d—f‘fœoÓ.ˆ�ŒÜ�a•d—f‘fœoÓ.ˆ�ŒÜ�a•d—f‘fœoÓ.ˆ��ñ ð ˆQ�4€A„DØˆQ�4€A„DØˆQ�4€A„DØˆQ�4€A„DØ€Hr)   c                óâ  € \        V \        P                  4      '       g   Q \        V 4       4       h\        P                  ! V \        P
                  4      p\        P                  ! V4      '       d½   \        P                  ! R4      p\        \        P                  ! V4      4       F�  pV^ 8”  d   \        P                  ! V^ 4       \        P                  ! W4      p\        P                  ! V4      '       g   KU  \        P                  ! V4      p\        P                  ! W%4       Kƒ  	  V# VP                  '       d   \        P                  ! V4      pV# \        P                  ! ^ 4      pV# )zC
Read and concatenate a PDF page's /Contents object(s) in a buffer
rè  )r@   r£   r0  rÈ   r  r¢  rI  rF  rS  r«  r}  r¬  r!  r"  Úfz_append_bufferrÌ   )r  rK  r%  rg  r  rõ  s   &     r'   r.  r.  8S  s  € ô �gœuŸ|™|×,Ò,Ð@´°g³°Ó@Ð,Ü×!Ò! '¬5×+GÑ+GÓH€HÜ×Ò˜(×#Ò#Ü�nŠn˜TÓ"ˆÜ”u×*Ò*¨8Ó4Ö5ˆAØ�1ŒuÜ×$Ò$ S¨"Ô-Ü×%Ò% hÓ2ˆCÜ×"Ò" 3×'Ô'Ü×,Ò,¨SÓ1�Ü×&Ò& sÖ1ñ 6ð €Jð	 
×	×	Ð	Ü×#Ò# HÓ-ˆð €Jô �nŠn˜QÓˆØ€Jr)   c                óH  € \        V \        P                  4      '       d   V # \        V \        P                  4      '       d   \        P                  ! V 4      # \        V \        4      '       dB   \        P
                  ! V P                  V P                  V P                  V P                  4      # \        V \        4      '       dB   \        P
                  ! V P                  V P                  V P                  V P                  4      # V '       d"   \        V 4      '       d   \        V 4      ^8w  d/   \        P                  ! \        P                  P                  4      # . ROp\        ^4       F~  p\        W4      W&   W,          f1   \        P                  ! \        P                  P                  4      u # W,          \         8  d	   \         W&   W,          \"        8”  g   Kv  \"        W&   K€  	  \        P
                  ! V^ ,          V^,          V^,          V^,          4      # )rš  r¯  )r@   r£   rq  rá  r+  r2  rµ  r·  r´  r¶  râ  rJ  rL  rr  rS  r$  r÷  rø  )r$  r  rg  s   &  r'   r  r  NS  s\  € Ü�!”U—\‘\×"Ò"ØˆÜ�!”U—]‘]×#Ò#Ü�|Š|˜A‹ÐÜ�!”T×ÒÜ×!Ò! !§$¡$¨¯©¨a¯d©d°A·D±DÓ9Ð9Ü�!”U×ÒÜ×!Ò! !§$¡$¨¯©¨a¯d©d°A·D±DÓ9Ð9ßÔ$ Q×'Ò'¬?¸1Ó+=ÀÔ+BÜ�|Š|œEŸL™L×7Ñ7Ó8Ð8Ú€AÜ�1ŽXˆÜ˜QÓ"ˆ‰Ø�4Š<Ü—<’<¤§¡× ;Ñ ;Ó<Ò<Ø�4”/Ô!Ü"ˆA‰DØ�4”/Ö!Ü"ˆA‹Dñ ô ×Ò˜a �d A a¥D¨!¨A­$°°!µÓ5Ð5r)   c                óä   €  V P                   VP                  8¼  gR   V P                  VP                  8¼  g7   V P                  VP                   8:  g   V P                  VP                  8:  d   ^ # ^# ru  rê  rQ  s   &&r'   rz  rz  eS  sG   € Ø	Ø�t‰t�q—t‘tŒ|Ø�t‰t�q—t‘tŒ|Ø�t‰t�q—t‘tŒ|Ø�t‰t�q—t‘tŒ|áÙr)   c                ó2  € V e   V P                   '       g   R# \        P                  ! V P                  4       \	        R4      4      pVP                   '       d¿   V P                  4       p\        P                  ! W P                  4       4      p\        P                  ! 4       p\        P                  ! 4       p\        P                  ! WV4       \        P                  ! W WV4      p\        P                  ! VP                   4      V P                   n        R# R# )z4
refreshes the link and annotation tables of a page
Nr¦  )rÌ   r£   r  r  r  r1  r	  rq  r|  rd  Úpdf_load_link_annotsÚll_fz_keep_linkr5  )rÖ   r  ra  r]  r'  rk  rÉ  s   &      r'   rž  rž  pS  s¶   € ð ‚|˜4Ÿ?Ÿ?˜?ÙÜ
×
Ò
˜dŸh™h›j¬(°8Ó*<Ó
=€CØ
‡~‡~€~Ø�h‰h‹jˆÜ×-Ò-¨s·H±H³JÓ?ˆÜŸš›ˆÜ—>’>Ó#ˆÜ× Ò  $°xÔ@Ü×)Ò)¨3°cÀ8ÓLˆÜ %× 5Ò 5°t·±Ó Gˆ�‰Öñ r)   c                óÈ  € V P                   '       g   \        P                  ! 4       # \        V 4      pV^ 8X  d   \        P                  ! 4       # \	        V P                  4       4      pVP                  pVP                  pV^Z8X  d   \        P                  ! ^ ^R^ V^ 4      pV# V^´8X  d   \        P                  ! R^ ^ RW44      pV# \        P                  ! ^ R^^ ^ V4      pV# )z"
calculate page rotation matrices
r¨  )	rÌ   r£   r|  r~  rÆ  r  ri  rj  r  )rÖ   ru  Úcb_sizer   r"  r‹  s   &     r'   rß  rß  �S  sË   € ð �?�?ˆ?Ü�~Š~ÓÐÜ Ó%€Hà�1„}Ü�~Š~ÓÐÜ˜dŸh™h›jÓ)€GØ�	‰	€AØ�	‰	€Aà�2„~Ü× Ò   A r¨1¨a°Ó3ˆð €Hð 
�SŒÜ× Ò   Q¨¨2¨qÓ4ˆð €Hô × Ò   B¨¨1¨a°Ó3ˆà€Hr)   c                óF   €  \        P                  ! T P                  T4      # rv  )r  r   r  rÌ   r£   rq  rJ  r9   rž
  ÚhfuzzÚvfuzzrE  Úfz_string_from_bufferÚfind_stringrÈ   rw  rç  ry  rz  Úon_highlight_char)rÖ   r  rü   rž
  ÚHitsÚhitsr4  Úhaystack_stringÚhaystackÚbeginrÈ  Úinsiderg  r�  rs   r?  r$  s   &&               r'   r  r  ™S  s   € ØÜ×)Ò)¨$¯/©/¸6ÓBÐBr)   c           	     ó  € \         P                  ! V4      '       d   \         P                  ! R4       R#  \         P                  ! V\         P                  4      pV^8X  d3   \         P                  ! V\         P
                  4      p\        WW$4       MAV^8X  d   \        WW$4       M-V^8X  d   \        WW$4       M \         P                  ! V4       R# \         P                  ! V4      p\        V4       FÜ  p	\         P                  ! Wi4      p
\         P                  ! V
4      '       d   \         P                  ! V
4      pM^ p\         P                  ! V
\         P                  4      pVP                   '       g   K‡  TpWÕ9  d!   VP#                  V4       \%        WW#Wµ4       K¯  \         P                  ! R4        \         P                  ! V4       R# 	  \         P                  ! V4       R#   \         P                  ! T4       i ; i)zH
Step through /Resources, looking up image, xobject or font information
z.Circular dependencies! Consider page cleaning.N)r£   Úpdf_mark_objrý  r  ÚPDF_ENUM_NAME_XObjectÚPDF_ENUM_NAME_Fontr  r  r  Úpdf_unmark_objr†  rS  r‡  r!  r  r  rÌ   ro   r  )ra  r  r  r  r  r  ÚxobjrÜ  rG   rg  r  ÚsxrefÚsubrsrcÚsxref_ts   &&&&&&        r'   r  r  âS  sz  € ô ×Ò˜$×ÒÜ�ŠÐFÔGÙð#Ü×!Ò! $¬×(CÑ(CÓDˆà�1Œ9Ü×%Ò% d¬E×,DÑ,DÓEˆDÜ˜C uÕ:Ø�QŒYÜ˜S¨Õ;Ø�QŒYÜ˜C uÕ:àô( 	×Ò˜TÖ"ô# ×Ò˜tÓ$ˆÜ�q–ˆAÜ×(Ò(¨Ó1ˆCÜ×"Ò" 3×'Ò'Ü×(Ò(¨Ó-‘à�Ü×(Ò(¨¬e×.KÑ.KÓLˆGØ×!×!Ò!Ø�ØÔ(Ø—M‘M 'Ô*Ü% s°UÀ%ÖPä—M’MÐ"RÔSØä×Ò˜TÖ"ñ! ô  	×Ò˜TÖ"øŒ×Ò˜TÕ"ús   ¶BG. ÃB#G. Å=?G. ÇG. Ç.Hc                óú  € V'       g   R# \        V\        \        34      '       g   Q h\        V4      pV^ 8X  d   R# \        P
                  ! V 4      p\        P                  ! V4      p\        P                  ! WB4      p\        V4       FÌ  pW,          pTp\        V\        4      '       d   \        P                  ! WX4       K;  \        V\        \        34      '       d   \        V4      ^8X  g   Q R4       hVw  ršV	'       d	   V
'       g   Q R4       h\        P                  ! V^4      p\        P                  ! W¹4       \        P                  ! Wº4       KÎ  	  \        P                  ! V\        R4      V4       R# )z
set ListBox / ComboBox values
Nzbad choice field listrž  )r@   rµ   r´   r9   r£   r  r›  rR  rS  ræ  Úpdf_array_push_text_stringÚpdf_array_push_arrayrU  r  )rß   r  rG   r&  ra  r   rg  r  ÚoptÚopt1Úopt2Ú	optarrsubs   &&          r'   ÚJM_set_choice_optionsr•  T  s  € ÷ ÙÜ�uœu¤d˜m×,Ò,Ð,Ð,ÜˆU‹€AØˆA„vÙÜ×#Ò# UÓ+€IÜ
×
&Ò
&¨	Ó
2€CÜ× Ò  #Ó)€FÜ�1ŽXˆØ�hˆØˆÜ�cœ3×ÒÜ×,Ò,¨fÖ:ä˜s¤U¬D M×2Ò2´s¸C³yÀA´~Ð^ÐG^Ó^ÐEØ‰JˆDßŸDÐ9Ð"9Ó9�=Ü×2Ò2°F¸AÓ>ˆIÜ×,Ò,¨iÔ>Ü×,Ò,¨iÖ>ñ ô 
×Ò˜	¤8¨E£?°FÖ;r)   c                óü  € ^ p^ pRpV\         P                  8X  d   \        R4      p\         P                  pEM*V\         P                  8X  d-   \        R4      p\         P                  p\         P
                  pMéV\         P                  8X  d2   \        R4      p\         P                  \         P
                  ,          pM£V\         P                  8X  d   \        R4      pM‚V\         P                  8X  d   \        R4      p\         P                  pMQV\         P                  8X  d   \        R4      p\         P                  pM V\         P                  8X  d   \        R4      pVe4   VP                  '       d"   \         P                  ! V\        R4      V4       V^ 8w  g   V^ 8w  dU   \         P                  ! V\        R4      4      pWd( ,          pWc,          p\         P                  ! V\        R4      V4       R# R# )z
Set the field type
NÚBtnÚTxÚChÚSigrV  rÁ  )r£   r»  r  ÚPDF_BTN_FIELD_IS_PUSHBUTTONr¬  ÚPDF_BTN_FIELD_IS_RADIOr¼  rí  rî  ÚPDF_CH_FIELD_IS_COMBOrï  r¾  rÌ   rU  r4  rP  )r1  r  rÈ   ÚsetbitsÚ	clearbitsÚtypenamerH  s   &&&    r'   r½  r½  'T  sw  € ð €GØ€IØ€HØŒu×+Ñ+Ô+Ü˜E“?ˆÜ×3Ñ3ŠØ	”×2Ñ2Ô	2Ü˜E“?ˆÜ×5Ñ5ˆ	Ü×.Ñ.‰Ø	”×/Ñ/Ô	/Ü˜E“?ˆÜ×6Ñ6¼×9UÑ9UÕU‰	Ø	”×+Ñ+Ô	+Ü˜D“>‰Ø	”×.Ñ.Ô	.Ü˜D“>ˆÜ×/Ñ/‰	Ø	”×/Ñ/Ô	/Ü˜D“>ˆÜ×-Ñ-‰Ø	”×0Ñ0Ô	0Ü˜E“?ˆàÒ × 3× 3Ð 3Ü×Ò˜3¤¨£°Ô9à�!„|�y A”~Ü×%Ò% c¬8°D«>Ó:ˆØ�
ÕˆØ�ˆÜ×Ò˜s¤H¨T£N°DÖ9ñ	 &r)   c                ó¶  € Rp\         P                  ! V 4      pVP                  R4      p\        V4      pV^,
          pWW,          pWW \        V4      p\         P                  ! W4      p	V	P
                  '       g�   V^ 8”  dz   RP                  V4      p
\         P                  ! \         P                  ! V \        V
4      4      4      '       d   \        R\        V4       R24      hWV^,
           \        V4      pK€  \         P                  ! W\         P                  ! V4      4       \         P                  ! W4      p	\         P                  ! V	4      '       g   \        RV R24      h\         P                  ! V	4      pW³8w  d   \        RV R24      h\        V ^^ 4      p\        V4      pRV RV R2pRV R	V 2pVP!                  Wï^4      p\#        VV4      pV# )
z"
Set a PDF dict key to some value
zfitz: replace me!rˆ	  z	path to 'z' has indirectszcannot insert value for 'rí   rì  rí  r³   )r£   r›  r8   r9   r|  rÌ   r  r9
  r‹  rk   Úpdf_dict_putpr±  rÂ  r  rÃ  rÙ  r  ræ  )r  r�  r¸   Ú
eyecatcherra  rp  rÆ  rg  ÚskeyÚtestkeyrÃ  r  r%  ÚobjstrÚnullvalÚnewvalÚnewstrr]  s   &&&               r'   rÞ  rÞ  MT  s®  € ð %€JÜ
×
&Ò
& sÓ
+€Cà�I‰I�c‹N€EÜˆu‹:€DØˆq�€AØ�8€DàˆÜˆu‹:€DÜ×!Ò! #Ó+€GØ××Ðð �QŒhØ—‘˜“ˆAÜ×$Ò$¤U×%8Ò%8¸¼lÈ1»oÓ%N×OÒOÜ )¬L¸Ó,>Ð+?¸Ð OÓPÐPØ˜Q•h�Ü�u“:ŠDô 
×Ò˜¤%×";Ò";¸JÓ"GÔHÜ×!Ò! #Ó+€GÜ×Ò˜w×'Ò'ÜÐ3°C°5¸Ð:Ó;Ð;Ü×#Ò# GÓ,€DØÔÜÐ3°C°5¸Ð:Ó;Ð;ä
˜c 1 aÓ
(€CÜ# CÓ(€Fð �$��q˜˜ AÐ&€GØ���a˜�wÐ€FØ�^‰^˜G¨QÓ/€Fô " # vÓ.€GØ€Nr)   c                ó˜  € V'       d"   \         P                  ! V \        R 4      V4       VeU   \         P                  ! V \        R4      4       V'       d-   \         P                  ! V \        R4      ^4      p\        Wb4       VeU   \         P                  ! V \        R4      4       V'       d-   \         P                  ! V \        R4      ^4      p\        Wc4       VeU   \         P                  ! V \        R4      4       V'       d-   \         P                  ! V \        R4      ^4      p\        We4       Ve•   \         P                  ! V \        R4      4       V'       dk   \         P                  ! V \        R4      ^4      p\        V4      p\        V4       F-  pWH,          p	\         P                  ! V^4      p
\        W©4       K/  	  R# R# R# )r}  Nr  r€  rs  rÚ  )	r£   r\  r  rH  rX  ÚJM_set_ocg_arrays_impr9   rS  r�  )rt  r·
  ro  r¸
  r¹
  rb	  rp  rG   rg  Úitem0r  s   &&&&&&     r'   r¶
  r¶
  }T  sL  € ßÜ×Ò ¤x°Ó'<¸iÔHà	‚~Ü×Ò˜D¤(¨4£.Ô1ßÜ×*Ò*¨D´(¸4³.À!ÓDˆCÜ! 3Ô+Ø
‚Ü×Ò˜D¤(¨5£/Ô2ßÜ×*Ò*¨D´(¸5³/À1ÓEˆCÜ! 3Ô,ØÒÜ×Ò˜D¤(¨8Ó"4Ô5ßÜ×*Ò*¨D´(¸8Ó2DÀaÓHˆCÜ! 3Ô/ØÒÜ×Ò˜D¤(¨:Ó"6Ô7ßÜ×*Ò*¨D´(¸:Ó2FÈÓJˆCÜ�8‹}ˆAÜ˜1–X�Ø ��Ü×0Ò0°#°qÓ9�Ü% sÖ2ó ñ ñ r)   c                óž   € \         P                  ! V 4      pV F0  p\         P                  ! W#^ 4      p\         P                  ! W4       K2  	  R# )zu
Set OCG arrays from dict of Python lists
Works with dict like {"basestate":name, "on":list, "off":list, "rbg":list}
N)r£   r›  r¹  rK  )rp  rp  ra  r  r  s   &&   r'   r«  r«  ›T  s>   € ô
 ×
&Ò
& sÓ
+€CÛˆÜ×$Ò$ S°Ó2ˆÜ×Ò˜SÖ&ó r)   c                óP  € \         P                  ! V 4      p\         P                  ! W2^ 4      pVP                  '       g   \	        \
        \        4       \         P                  ! V \        R4      4      pVP                  '       g"   \         P                  ! V \        R4      ^4      p\         P                  ! V\        R4      4      pVP                  '       g"   \         P                  ! V\        R4      ^4      p\         P                  ! V\         P                  ! V4      V4       R# )zË
Insert an item into Resources/Properties (used for Marked Content)
Arguments:
(1) e.g. page object, Form XObject
(2) marked content name
(3) xref of the referenced object (insert as indirect reference)
r<  rD  N)r£   r›  r¹  rÌ   rÁ  r¸  rª	  r  r  rY  rU  rå  )ré  r   r  ra  r�  ri  rE  s   &&&    r'   r"  r"  ¦T  sÐ   € ô ×
&Ò
& sÓ
+€CÜ
×
 Ò
  ¨AÓ
.€CØ�>�>ˆ>Ü”Ô.Ô/Ü×"Ò" 3¬°Ó(=Ó>€IØ××ÐÜ×+Ò+¨C´¸+Ó1FÈÓJˆ	Ü×#Ò# I¬x¸Ó/EÓF€JØ× × Ð Ü×,Ò,¨Y¼ÀÓ8NÐPQÓRˆ
Ü	×Ò�z¤5×#5Ò#5°dÓ#;¸SÖAr)   c                óŒ  a€ \        V \        4      '       d   V P                  p \        V \        P                  4      '       g   Q R\        V 4      : R\
        : 24       h\        V 4      pVP                  '       g   Q R4       h\        P                  ! V 4      pVP                  4       pV3R lpV! R4      pTpV! R4      p\        V4      p\        V4      p	\        P                  ! W‰4      p\        P                  ! W4       V! R4      pV'       d{   \        V4      '       dj   \        V4      p
\        P                   ! WJ4      p^ p\#        V
4       F!  pWm,          p\        P$                  ! W¼4       K#  	  \        P&                  ! W;4       V! R4      pV'       dŒ   \        V4      '       d{   \        V4      p
\        P                   ! WJ4      p\#        V
4       F   p\        P(                  ! WæV,          4       K"  	  \        P*                  ! W>\-        R	4      \-        R
4      4       V! R4      pV'       d�   \        V4      '       d~   \        V4      p
\        P                   ! WJ4      p^ p\#        V
4       F!  pWm,          p\        P$                  ! Wü4       K#  	  \        P*                  ! W?\-        R4      \-        R4      4       V! R4      pVe-   \/        V4      p\        P0                  ! V\-        R4      V4       V! R4      pVeJ   \/        V4      p\        P2                  ! V4      pVV8w  d"   \        P0                  ! V\-        R4      V4       V\        P4                  8X  d4   V! R4      pTpV'       d"   \        P6                  ! V\-        R4      V4       V! R4      pTp\        P8                  ! VV4       V\        P:                  \        P<                  39   d   V! R4      p\?        W4       V! R4      p\A        V4      p\        P*                  ! VV\-        R	4      \-        R4      4       V! R4      pTp\        P*                  ! V\        PB                  ! V4      \-        R	4      \-        R4      4       V! R4      p\/        V4      p\        P0                  ! V\-        R4      V4       \        PD                  ! V\-        R4      4       \        PD                  ! V\-        R4      4       V! R4      pVe¨   V\        P<                  8X  d   V\        PF                  ,          pMYV\        PH                  8X  d   V\        PJ                  ,          pM,V\        PL                  8X  d   V\        PN                  ,          p\        P6                  ! V\-        R 4      V4       V! R!4      p\/        V4      pV'       d   \        PP                  ! VV4       V! R"4      p\S        V\-        R#4      \        PT                  ! 4       V4       V! R$4      p\S        V\-        R%4      \-        R&4      V4       V! R'4      p\S        V\-        R%4      \-        R(4      V4       V! R)4      p\S        V\-        R%4      \-        R*4      V4       V! R+4      p\S        V\-        R%4      \-        R,4      V4       V! R-4      p\S        V\-        R%4      \        PV                  ! R.4      V4       V! R/4      p\S        V\-        R%4      \        PV                  ! R04      V4       V! R14      p\/        V4      pV\        PH                  8X  dè   V'       g<   \        PX                  ! WCR2^4       \        PZ                  ! V\-        R34      R24       EMò\        P\                  ! V4      pVP                  '       dR   \        P^                  ! V4      p\        PX                  ! WCV^4       \        PZ                  ! V\-        R34      V4       EMyV'       d"   \        PZ                  ! V\-        R34      V4       EMNV\        P`                  8X  dÕ   \        P\                  ! V4      pVP_                  4       pVR4V39   g   VR58X  d\   \        PX                  ! WCV^4       \        PZ                  ! V\-        R34      V4       \        PZ                  ! V\-        R*4      V4       M¨\        PZ                  ! V\-        R34      R24       \        PZ                  ! V\-        R*4      R24       MeV'       d^   \        PX                  ! WCV^4       V\        P<                  \        P:                  39   d!   \        PD                  ! V\-        R64      4       \        Pb                  ! V 4       \        Pd                  ! V ^4       \        Pf                  ! V ^4       \        Ph                  ! V 4       R# )7zƒ
Update the PDF form field with the properties from a Python Widget object.
Called by "Page.add_widget" and "Annot.update_widget".
ztype(annot)=rv  rÜ   c                ó   <€ \        SV R 4      # r+   )rî   )r   rZ  s   &€r'   ÚGETATTRÚ)JM_set_widget_properties.<locals>.GETATTRÇT  s   ø€ Ü�v˜t TÓ*Ð*r)   r�  rü   r_  rˆ  rZ  rÔ  rü  rV  rX  rŒ  NrU  r‹  r+  r–  ÚMaxLenr�  r‰  r†  r�
  r‡  r:  r˜  r^  r;  r  rŽ  rÁ  r’  r$  rÓ  r™  rW  rY  rš  r¸  r›  rZ  rœ  rü  r�  r[  rž  r\  r�  r«  rª  TÚYesr\  )5r@   râ   rÄ   r£   rä   rÈ   rà   rÌ   r  r1  r  rß  rà  ré  rJ  r9   rR  rS  rT  Úpdf_field_set_fill_colorri  rV  r  r‹  r¯  r`  rí  rP  Úpdf_field_set_displayrî  rï  r•  rk  rj  rH  r�  r¬  rœ  r»  r›  Úpdf_field_set_button_captionrg  r0  rå  Úpdf_set_field_valuer\  Úpdf_button_field_on_stater„  r¼  rV  Úpdf_set_annot_hotÚpdf_set_annot_activerW  )rß   rZ  rÖ   r&  ra  r±  r¸   r�  rü   Úrot_matrG   Úfill_colrf  rg  rŠ  Ú
border_colr¡  r   Úold_namer–  rH  r  r‡  rù  rŽ  r>  r   Úonstatero  s   &f                           r'   ÚJM_set_widget_propertiesrÁ  »T  sw  ø€ ô
 �5œ%× Ò Ø—
‘
ˆÜ�uœeŸn™n×-Ò-ÐH°,´$°u³+±¸wÄÁÐ/HÓHÐ-Ü˜5Ó!€DØ�?�?ˆ?Ð:Ð:Ó:ˆ?Ü×#Ò# EÓ*€IØ
�(‰(‹*€Cõ+ñ �LÓ!€EØ€Jñ �F‹O€EÜ˜5Ó!€DÜ# DÓ)€GÜ×"Ò" 4Ó1€DÜ	×Ò˜UÔ)ñ �LÓ!€EßÔ! %×(Ò(Ü�‹JˆÜ×&Ò& sÓ.ˆØˆÜ�q–ˆAØ•(ˆCÜ×%Ò% hÖ4ñ ô 	×&Ò& yÔ;ñ �OÓ$€EßÔ! %×(Ò(Ü�‹JˆÜ×$Ò$ SÓ,ˆÜ�q–ˆAÜ×$Ò$ V°1­XÖ6ñ ä×Ò˜I¬x¸«~¼xÈ»}ÔMñ �NÓ#€EßÔ! %×(Ò(Ü�‹JˆÜ×(Ò(¨Ó0ˆ
ØˆÜ�q–ˆAØ•(ˆCÜ×%Ò% jÖ6ñ ô 	×Ò˜I´8¸D³>Ä8ÈDÃ>ÔRñ �MÓ"€EØÒÜ˜UÓ#ˆÜ×&Ò& y´(¸4³.À%ÔHñ �LÓ!€EØÒÜ˜EÓ"ˆÜ×,Ò,¨YÓ7ˆØ�8ÔÜ×*Ò*¨9´h¸s³mÀTÔJð ”U×/Ñ/Ô/Ù˜Ó&ˆØˆßÜ×"Ò" 9¬h°xÓ.@À+ÔNÙ�OÓ$€EØ€AÜ	×Ò 	¨1Ô-ð ”e×3Ñ3´U×5SÑ5SÐTÔTÙ˜Ó(ˆÜ˜eÔ+ñ �NÓ#€EÜ
˜eÓ
$€CÜ	×Ò˜	 3¬°«¼À»ÔFñ �NÓ#€EØ€LÜ	×ÒØÜ×Ò˜|Ó,Ü�T‹NÜ�S‹Mô	ñ �JÓ€EÜ	�eÓ	€BÜ	×"Ò" 9¬h°t«n¸bÔAÜ	×Ò�y¤(¨4£.Ô1Ü	×Ò�y¤(¨4£.Ô1ñ ˜-Ó(€KØÒØœ×7Ñ7Ô7Øœ5×6Ñ6Õ6‰KØœ5×<Ñ<Ô<Øœ5×7Ñ7Õ7‰KØœ5×7Ñ7Ô7Øœ5×<Ñ<Õ<ˆKÜ×Ò 	¬8°D«>¸;ÔGñ Ð$Ó%€EÜ	�eÓ	€Bß	Ü×*Ò*¨9°bÔ9ñ �HÓ€EÜ�)œX c›]¬E¯LªL«N¸EÔBñ �OÓ$€EÜ�)œX d›^¬X°c«]¸EÔBñ �OÓ$€EÜ�)œX d›^¬X°c«]¸EÔBñ �OÓ$€EÜ�)œX d›^¬X°c«]¸EÔBñ �MÓ"€EÜ�)œX d›^¬X°c«]¸EÔBñ �MÓ"€EÜ�)œX d›^¬U×-?Ò-?ÀÓ-EÀuÔMñ �NÓ#€EÜ�)œX d›^¬U×-?Ò-?ÀÓ-EÀuÔMñ �MÓ"€EÜ˜Ó€DØ”U×6Ñ6Ô6ßÜ×%Ò% c°e¸QÔ?Ü×#Ò# I¬x¸«~¸uÖEô ×5Ò5°iÓ@ˆGØ×!×!Ð!Ü×&Ò& wÓ/�Ü×)Ò)¨#¸"¸aÔ@Ü×'Ò'¨	´8¸D³>À2ÖFßÜ×'Ò'¨	´8¸D³>À4ÔHùØ	”u×5Ñ5Ô	5Ü×1Ò1°)Ó<ˆØ× Ñ Ó"ˆØ�T˜2�JÔ $¨%¤-Ü×%Ò% c°b¸!Ô<Ü×#Ò# I¬x¸«~¸rÔBÜ×#Ò# I¬x¸«}¸bÕAä×#Ò# Y´¸³ÀÔFÜ×#Ò# Y´¸³¸uÕEçÜ×%Ò% c°d¸AÔ>Øœe×<Ñ<¼e×>[Ñ>[Ð\Ô\Ü×"Ò" 9¬h°s«mÔ<Ü	×Ò˜%Ô Ü	×Ò˜E 1Ô%Ü	×Ò˜u aÔ(Ü	×Ò˜5Ö!r)   c                óº  € ^ pV\        V4      8  dÉ   \        P                  ! W8R 4      w  ršW‰,          p\        P                  ! W4      pV^ 8X  d   \        P                  ! W^ V4      w  r¼MTp\        P
                  ! WW+W¤WVV4	       \        P                  ! WËV4      pV^ 8X  d   \        P                  ! W-^ 4      pK½  \        P                  ! V^ V) 4      pKØ  V# rŒ   )r9   r£   Úfz_chartoruner;  r<  Úfz_show_glyphrð  Úfz_pre_translate)r   Ú	user_fontr#  rŸ  r=  Ú
bidi_levelr$  rI  rg  rX  r�  r@  rÜ  rô  s   &&&&&&&&      r'   r!  r!  }U  sÄ   € ð 	
€AØ
Œc�!‹fŒ*Ü×$Ò$ Q r UÓ+‰ˆØ	�ˆÜ×*Ò*¨9Ó:ˆØ�!Œ8Ü×?Ò?À	ÐPQÐS[Ó\‰IˆC�àˆDÜ×Ò˜D¨°#¸jÐV^Ô_Ü×$Ò$ T°Ó6ˆØ�AŒ:Ü×(Ò(¨°1Ó5ŠCä×(Ò(¨¨a°#°Ó6ŠCØ€Jr)   c                ó¢   € \         P                  ! V 4      pVP                  R R7      pVP                  \	        ^ 4      4      pV^ 8¼  d   VRV pV# )r  rÓ  N)r£   r7  rå  r§   rn  )r—  Ú
buff_bytesr  rÚ  s   &   r'   rÎ  rÎ  ™U  sN   € Ü×-Ò-¨dÓ3€JØ
×
Ñ
 9Ð
Ó
-€CØ�‰”�Q“Ó€AØˆA„vØ�"�1ˆgˆØ€Jr)   c                ó"   € \        RV  24       R# )z
Generate a warning.
z	warning: Nr2  ru   s   &r'   r  r  ¢U  s   € ô ˆi˜�vÐÖr)   c                óÚ  € V'       dË   \         P                  ! V4      w  rEV^8”  d¬   \        V4      p\        V\         P                  4      '       g   Q hVP
                  '       dm   \         P                  ! V4      w  ruWt8  dO   \         P                  ! V\         P                  \         P                  4       \         P                  ! WV^4       R# \         P                  ! WV^ 4       R# )z8
update a stream object
compress stream when beneficial
N)
r£   rT  r´  r@   rF  rÌ   rU  ÚPDF_ENUM_NAME_FilterÚPDF_ENUM_NAME_FlateDecodeÚpdf_update_stream)r1  r  r4  r¤  rÈ  r@  Úbuffer_compressedÚlength_compresseds   &&&&    r'   r0  r0  ©U  s·   € ÷
 Ü×+Ò+¨GÓ4‰	ˆØ�BŒ;Ü 2°7Ó ;ÐÜÐ/´·±×@Ò@Ð@Ð@Ø ×+×+Ð+Ü',×'>Ò'>Ð?PÓ'QÑ$Ð!Ø$Ô-Ü×&Ò&ØÜ!×6Ñ6Ü!×;Ñ;ôô
 ×+Ò+¨CÐ6GÈÔKÙä	×Ò˜C g¨qÖ1r)   c                ó  € \        V\        P                  4      '       g   Q R\        V4      : 24       hV^ 8”  d   \        P                  ! W^ 4      pV# \        VP                  4      pVP                  4       p\        P                  ! \        P                  ! V\        R4      4      4      p\        P                  ! V\        R4      4      pVP                  '       d   \        P                  ! W84      p	M\        P                  ! W4      p	\        V4      p
\        P                  ! W\        P                   ! 4       \        P"                  ! ^ 4      V
4      p\%        WV
^4       \        P&                  ! V\        R4      V	4       V# )z`
Make an XObject from a PDF page
For a positive xref assume that its object can be used instead
ztype(gmap)=r�  r<  )r@   r£   ÚPdfGraftMaprÈ   r¹  rÚ   rÄ   r  r  r  r  rÌ   r†  Úpdf_graft_objectr.  r'  r|  r0  r0  rU  )r	  Úfsrcpager  r·  r+  ÚsrcpageÚspagerefrJ  r±  ri  r%  s   &&&&       r'   r&  r&  ÁU  s*  € ô
 �dœE×-Ñ-×.Ò.Ð@°;´4¸³:±-Ð0@Ó@Ð.Øˆa„xÜ×&Ò& v°QÓ7ˆð2 €Lô/ ˜xŸ}™}Ó-ˆØ—;‘;“=ˆÜ×$Ò$¤U×%CÒ%CÀHÌhÐWaÓNbÓ%cÓdˆä×*Ò*¨8´X¸kÓ5JÓKˆØ�?�?ˆ?ä×5Ò5°dÓ>‰Iä×.Ò.¨vÓ9ˆIô ˜xÓ(ˆô
 ×%Ò% f¼¿ºÓ8HÌ%Ï,Ê,ÐWXË/Ð[^Ó_ˆä˜¨¨QÔ/ô 	×Ò˜5¤(¨;Ó"7¸ÔCØ€Lr)   c                ó.   € \        V \        \        34      # r+   )r@   rµ   r´   rL  s   &r'   rJ  rJ  äU  s   € Ü�aœ%¤˜Ó'Ð'r)   c                ó   € \        V 4      # r+   )r9   rL  s   &r'   rL  rL  èU  s   € Üˆq‹6€Mr)   zbad annot typezbad or missing annot AP/Nz%arg must be seq of seq of float pairszbad seq of pointszbad type: 'buffer'zbad color sequencer©  zbad filetypezbad locationzbad config numberzbad layer numberzbad 'oc' referencezbad page idr‚  zPDF has no rootzrect is infinite or emptyzbad type: 'text'r}  zcolor count failedzneed font file or bufferzcannot create fontzis no annotationzis no imager�  zobject is no PDF dictzsource pixmap has no alphazpixel(s) outside imagerÃ   c                ó   € \        V 4      hr+   )rk   )rž   Úexcs   &&r'   rÁ  rÁ  V  s   € ô �S‹/Ðr)   c                óÒ   € V '       g   R # \        V \        4      '       d   V P                  RVR7      pM\        V \        4      '       d
   V R,          pXP	                  RVR7      pV# )r`   rS  rÓ  rV   Úraw_unicode_escape)r@   ræ  r  r  rå  )rŸ  rÔ  r¦   rI   s   &&  r'   rå  rå  V  sU   € çÙÜ�!”S×ÒØ�X‰X�f VˆXÓ,‰Ü	�A”u×	Ò	Øˆq�TˆØ
�)‰)Ð(°ˆ)Ó
8€CØ€Jr)   c               ó   € V ^8„  d   QhRR/# )r†  rõ  rû  r,   )rþ  s   "r'   rÿ  rÿ   V  s   € ÷ Pñ P�&ñ Pr)   c                óÄ   € V '       dX   \        V 4      \        \        39  g1   \        V 4      R9  g!   \	        V 4      ^ 8  g   \        V 4      ^8”  d   \        R4      hR# R# )r™  z/need 1, 3 or 4 color components in range 0 to 1Nr˜  )rÈ   r´   rµ   r9   r÷  r'  rÃ   ©rõ  s   &r'   r�  r�   V  sM   € ßä�‹GœD¤%˜=Ô(Ü�1‹v˜YÔ&Ü�1‹v˜ŒzÜ�1‹v˜ŒzäÐNÓOÐOñ ñ 	r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rÒ   rþ   ræ  rs  rµ   r,   )rþ  s   "r'   rÿ  rÿ  +V  s!   € ÷ ñ �Dð  Cð ¨Eñ r)   c                óX   € V P                  4        F  pV^,          V8X  g   K  Vu # 	  R# )zGReturn an entry in the page's font list if reference name matches.
    N)rÏ  )rÖ   rþ   r  s   && r'   r  r  +V  s&   € ð �^‰^ÖˆØˆQ�4�8ÖØŠHó r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  r1  rÁ   r  r6   rs  r´   r,   )rþ  s   "r'   rÿ  rÿ  3V  s!   € ÷ ñ �xð  sð ¨tñ r)   c                óN   € V P                    F  pW^ ,          8X  g   K  Vu # 	  R# )z3Return a font info if present in the document.
    N)r­  )r1  r  r  s   && r'   rK  rK  3V  s    € ð �]Œ]ˆØ�Q•4Ž<ØŠHó r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rž
  r±  rs  rµ   r,   )rþ  s   "r'   rÿ  rÿ  ;V  s   € ÷ 	ñ 	˜*ð 	¨ñ 	r)   c                óð   € \        V 4      '       d   \        V 4      pVP                  3# \        V 4      '       d   V 3# V  F2  p\        V4      '       d   K  \        V4      '       d   K)  \	        R 4      h	  V # )zbad quads entry)rK  r+  rM  rL  rÃ   )rž
  r$  rc  s   &  r'   rM  rM  ;V  sb   € Ü�×ÒÜ�‹KˆØ—‘ˆyÐÜ�×ÒØˆxˆÛˆÜ˜!—”¤	¨!§¤ÜÐ.Ó/Ð/ñ ð €Lr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r±  r±  rs  rè   r,   )rþ  s   "r'   rÿ  rÿ  GV  s   € ÷ 	ñ 	�*ð 	 ñ 	r)   c                óx  € \        V 4      '       g   R # \        V 4      \        \        39   d   \	        V 4      ^8X  g   \        R4      h\	        V ^ ,          4      ^8X  d   \	        V ^,          4      ^8X  g   \        R4      hV ^,          ^,          V ^,          ^,          u;8X  d   ^ 8X  g   M \        R4      hR# )Fz$morph must be a sequence of length 2zinvalid morph param 0zinvalid morph param 1T)rè   rÈ   r´   rµ   r9   rÃ   rD  s   &r'   r�  r�  GV  s‰   € Ü��7Š7ÙÜ�‹Gœœe�}Ô$¬¨Q«°1¬ÜÐ?Ó@Ð@Ü��!•‹I˜ŒNœs 1 Q¥4›y¨Aœ~ÜÐ0Ó1Ð1ØˆQ�4��7�a˜•d˜1•gÖ" Ö"ÜÐ0Ó1Ð1Ùr)   c               ó   € V ^8„  d   QhRR/# )r†  r±  r±  r,   )rþ  s   "r'   rÿ  rÿ  SV  s   € ÷ Hñ H�:ñ Hr)   c                ó   € R # r+   )r=   rì   rÃ   rÈ   rD  s   &r'   ro  ro  SV  s   € Ù
r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rc  r±  rs  rè   r,   )rþ  s   "r'   rÿ  rÿ  YV  s   € ÷ 
ñ 
�ð 
 ñ 
r)   c                ó€   €  \        V 4      pVP                  #   \         d    \        ^8”  d   \        4         R# i ; i)zcCheck whether an object is convex, not empty  quad-like.

It must be a sequence of 4 number pairs.
F)r)  rk   r  r{   rà  )rc  Úq0s   & r'   rL  rL  YV  s=   € ð
Ü�!‹Wˆð �<‰<Ðøô ô Ü !Ô#¬Ô(8Úðús   ‚ ™ =¼=c               ó    € V ^8„  d   QhRRRR/# )r†  r$  r±  rs  rè   r,   )rþ  s   "r'   rÿ  rÿ  fV  s   € ÷ 
-ñ 
-�ð 
- ñ 
-r)   c                ó²   €  \        V 4      p T P                  ;'       g    T P
                  '       * #   \         d    \        ^8”  d   \        4         R# i ; i)zZCheck whether an object is non-degenerate rect-like.

It must be a sequence of 4 numbers.
F)r+  rk   r  r{   rº  r¹  rÁ  s   &r'   rK  rK  fV  sL   € ð
Ü�‹Gˆð —
‘
×+Ð+˜aŸm™mÔ,Ð,øô ô Ü !Ô#¬Ô(8Úðús   ‚2 ² AÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r†  rõ  z&typing.Union[list, tuple, float, None]r  ræ  rs  r,   )rþ  s   "r'   rÿ  rÿ  sV  s"   € ÷ .ñ .Ð7ð .¸Cð .ÀCñ .r)   c                óÊ  € V '       g   R # \        V R4      '       d   V 3p \        V 4       \        V 4      ^8X  d3   \        V ^ ,          4      R,           pVR8X  d
   VR,           # VR,           # \        V 4      ^8X  d5   \        \	        V 4      4      R,           pVR8X  d
   VR,           # VR,           # \        \	        V 4      4      R,           pVR8X  d
   VR,           # VR	,           # )
r`   r•  r³   rõ  zG zg zRG zrg zK zk )r=   r�  r9   r¶   rµ   )rõ  r  rŸ  s   && r'   r  r  sV  s¼   € ßÙÜˆq�+×ÒØˆDˆÜˆq„MÜ
ˆ1ƒv�„{Ü�a˜•d‹O˜cÕ!ˆØ œ8ˆq�4�xÐ1¨¨T­Ð1ä
ˆ1ƒv�„{Ü”e˜A“hÓ #Õ%ˆØ œHˆq�5�yÐ3¨!¨e­)Ð3ä”%˜“(Ó˜cÕ!€AØ˜C”xˆ1ˆt�8Ð- Q¨¥XÐ-r)   c                ó   aa€ V P                  4       o\        S4      oVV3R  lp S^ 8w  d0   \        P                  ! SP	                  4       \        R4      ^ 4       \        P                  ! SV4      pV F$  p\        V4      p\        P                  ! WF4       K&  	  \        P                  ! V4       \        VR4       V! 4        \        T4      #   \         d"    \        '       d   \        4        T! 4         R# i ; i)c                 óx   <€ S^ 8w  d2   \         P                  ! S P                  4       \        R4      S4       R# R# )rx   r;  N)r£   rP  r  r  )râ  ru  s   €€r'   rç  Ú$Page__add_text_marker.<locals>.finalˆV  s,   ø€ Ø�qŒ=Ü×"Ò" 7§;¡;£=´(¸8Ó2DÀhÖOñ r)   r;  rÓ  N)r,  r~  r£   rP  r  r  r-  r_  Úpdf_add_annot_quad_pointrW  r/  rk   r  r{   râ   )	r&   rž
  r0  rç  rß   rE   rc  râ  ru  s	   &&&    @@r'   r†  r†  …V  sË   ù€ Ø�n‰nÓ€GÜ Ó(€HöPðØ�qŒ=Ü×"Ò" 7§;¡;£=´(¸8Ó2DÀaÔHÜ×&Ò& w°
Ó;ˆÛˆDÜ Ó%ˆAÜ×*Ò*¨5Ö4ñ ô 	×Ò˜uÔ%Ü˜˜sÔ#ÙŒô
 �‹<Ðøô	 ô ßÓ¤NÔ$4ÙŒÚðús   ¦C ­BC ÃC=Ã(C=Ã<C=c                ó\   € \        V \        4      '       g   Q h\        \        R V  24      pV# )r½  )r@   ræ  rî   r£   )ri  rI   s   & r'   r  r  œV  s/   € Ü�aœ×ÒÐÐÜ
”%˜>¨!¨Ð-Ó
.€Cð €Jr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r1  rÁ   r8  r=  r,   )rþ  s   "r'   rÿ  rÿ  ªV  s   € ÷ 
#ñ 
#˜ð 
#¨ñ 
#r)   c                óâ   € V^ ,          pRp\        V P                  4       F  w  rEV^ ,          V8X  g   K  Rp M	  V'       d   WP                  X&   R# V P                  P                  V4       R# )rx   FTN)rZ  r­  ro   )r1  r8  r  r°  rg  Úfis   &&    r'   rO  rO  ªV  s[   € Ø��7€DØ€EÜ˜3Ÿ=™=Ö)‰ˆØˆa�5�DŽ=ØˆEÙñ *÷ Ø�‰�aÓà�‰×Ñ˜TÖ"r)   c                ó(  € ^ p\        \        V4      4       Fe  pW,          pV\        V 4      8¼  d#   \        V\        4      '       d
   RV9   d   K:   R# Ve   \        W,          V4      '       g    R# V^,          pKg  	  V\        V 4      8w  d   R# R# )zé
Returns true if <args> matches <types>.

Each item in <types> is a type or tuple of types. Any of these types will
match an item in <args>. `None` will match anything in <args>. `type(None)`
will match an arg whose value is `None`.
NFT)rS  r9   r@   rµ   )r  r˜  rŒ  rg  rb  s   &*   r'   rI  rI  ·V  sz   € ð 	
€AÜ”3�u“:ÖˆØ•ˆØ”�D“	Œ>Ü˜%¤×'Ò'¨D°E¬MáâØÒ¤Z°µ¸×%?Ò%?ÚØ	ˆQ�Šñ ð 	ŒC�‹I„~ÙÙr)   c                ó  € \        V4      p\        P                  ! V4      pVP                  VP                  ,
          pVP
                  VP                  ,
          pTp	Tp
V'       d   \        W4      pW,          pW,          pM^;rÍ\        WÍ4      pV^ 8w  d   V^´8w  d   TpTpTpV^8  d*   W|,          W�,          8”  d   WŽ,          p	Tp
M>Tp	W~,          p
M3WÍ8w  d*   W|,          W�,          8”  d   WŽ,          p	Tp
MTp	W~,          p
MTp	Tp
\        P                  ! VP                  VP                  ,           ^,          VP                  VP
                  ,           ^,          4      p\        P                  ! ^^ ^ ^RR4      p\        P                  ! VV4      p\        P                  ! V\        P                  ! Wš4      4      p\        P                  ! V\        P                  ! VP                  VP                  4      4      pV# )z"
# compute image insertion matrix
g      à¿)r  r£   Ú	fz_rotater´  rµ  r¶  r·  r'  r÷  rÅ  r  rf  Úfz_scaleÚfz_translateri  rj  )rˆ  r3  r«  r`  rµ  r³  ry  ÚtrwÚtrhr   r"  Úlarger¯  r°  Úsmallr  r­  r€  s   &&&&&             r'   rØ  rØ  ÐV  s˜  € ô ˜BÓ€EÜ
�/Š/˜&Ó
!€CØ
�(‰(�U—X‘XÕ
€CØ
�(‰(�U—X‘XÕ
€CØ€AØ€AßÜ�EÓ"ˆØ�]ˆØ�^‰àˆˆÜ�‹K€EØ�„{�v ”}ØˆØˆØˆØ	ˆA„vØ�8�c•hÔØ•ˆAØ‰AàˆAØ•‰AØ	ŒØ�8�c•hÔØ•ˆAØ‰AàˆAØ•‰AàˆØˆÜ
×
Ò
Ø�X‰X˜Ÿ™Õ  AÕ%Ø�X‰X˜Ÿ™Õ  AÕ%ó€Cô ×
Ò
˜q ! Q¨¨4°Ó
6€CÜ
�/Š/˜#˜sÓ
#€CÜ
�/Š/˜#œuŸ~š~¨aÓ3Ó
4€CÜ
�/Š/˜#œu×1Ò1°#·%±%¸¿¹Ó?Ó
@€CØ€Jr)   c                óª  € V P                   P                  ^ 8X  d¸   V P                   P                  P                  ^8X  d“   V P                   P                  P                  ^ 8X  dn   VP                   P
                  P                  V P                   P                  P
                  P                  VP                   P                  R,          ,
          8  # ^ # )rx   çš™™™™™¹?)rÌ   r=  r¶  ri  rj  rU  Ú
first_charrÉ  )rs   r?  s   &&r'   r…  r…  W  sŒ   € Ø‡�×Ñ Ô! d§o¡o×&9Ñ&9×&;Ñ&;¸qÔ&@ÀTÇ_Á_×EXÑEX×EZÑEZÐ^_ÔE_Ø�}‰}×#Ñ#×%Ñ%¨¯©×(BÑ(B×(IÑ(I×(KÑ(KÈbÏmÉm×N`ÑN`ÐcfÕNfÕ(fÑfÐfÙr)   c           	     ó�   € V  R \        V 4       R\        \        V 4      4       R2p\        V 4       F  pVRV R2,          pK  	  V# )r³   ú (z):
rÞ  r#   )rÈ   r9   r¶  )ri  rI   rg  s   &  r'   Údir_strr  W  sK   € ØˆCˆq”�a“�	˜œC¤ A£›K˜=¨Ð
-€CÜ�ŽVˆØ��a�S˜ˆ|ÕŠñ à€Jr)   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# )
r†  r   ræ  r?  ztyping.Union[list, tuple, None]r<  rè   ræ  r6   rs  r,   )rþ  s   "r'   rÿ  rÿ  W  s2   € ÷ "ñ "�3ð "Ð ?ð "Èð "ÐY\ð "Ðadñ "r)   c           	     óø  € V P                  R4      '       d   V P                  R4      '       d   V # \        V 4      '       g   R# V'       d    Vf@   RP                  V  Uu. uF"  p\	        V4      R8  d   \	        V4      R MRNK$  	  up4      pMLRP                  V  Uu. uF0  p\	        V4      R8  d   V\	        V4      ,          ^ ,          R MRNK2  	  up4      pRV,           R,           # V^ 8  d;   RP                  V  Uu. uF  qA\	        V4      ,          ^ ,          R NK  	  up4      pM,RP                  V  Uu. uF  p\	        V4      R NK  	  up4      pRV,           R,           # u upi u upi u upi u upi )	aÔ  Return a PDF string enclosed in [] brackets, suitable for the PDF TJ
operator.

Notes:
    The input string is converted to either 2 or 4 hex digits per character.
Args:
    simple: no glyphs: 2-chars, use char codes as the glyph
            glyphs: 2-chars, use glyphs instead of char codes (Symbol,
            ZapfDingbats)
    not simple: ordering < 0: 4-chars, use glyphs not char codes
                ordering >=0: a CJK font! 4 chars, use char codes as glyphs
z[<z>]z[<>]r`   ré  Ú02xÚb7rU  )r5   r  rè   r  r:  )r   r?  r<  ræ  rõ  Úotxts   &&&&  r'   r�  r�  W  sD  € ð ‡��t×Ò §¡¨t×!4Ò!4Øˆä��:Š:ÙçØŠ>Ø—7‘7ÉtÓTÉtÈ!¬s°1«v¸¬|œs 1›v c™lÀÒEÉtÑTÓU‰Dà—7‘7ÙOSÓTÉtÈ!¬s°1«v¸¬|�Fœ3˜q›6•N 1Õ% cÑ*ÀÒEÉtÑTóˆDð �d�{˜TÕ!Ð!ð �!„|Ø�w‰w¹DÓA¹D°q¤# a£&�>¨!Õ,¨SÐ1Ò2¹DÑAÓB‰à�w‰w±Ó6±¨Aœ3˜q›6 #˜,š±Ñ6Ó7ˆà�$�;˜ÕÐùò Uùò Uùò Bùâ6s   Á(E(Â6E-Ä#E2Ä;E7c               ó    € V ^8„  d   QhRRRR/# )r†  rŸ  ræ  rs  r,   )rþ  s   "r'   rÿ  rÿ  3W  s   € ÷ 2ñ 2�3ð 2˜3ñ 2r)   c                óÞ  € \        V 4      '       g   R# R pRpV  FÀ  p\        V4      pV^ÿ8”  d   V! V 4      u # V^8”  d"   V^8  d   VR9   d
   VR,          pW#,          pKG  V^8”  d   VRVR 2,          pK]  V^8X  d   VR,          pKo  V^	8X  d   VR	,          pK�  V^
8X  d   VR
,          pK“  V^8X  d   VR,          pK¥  V^8X  d   VR,          pK·  VR,          pKÂ  	  RV,           R,           # )a�  Return a PDF string depending on its coding.

    Notes:
        Returns a string bracketed with either "()" or "<>" for hex values.
        If only ascii then "(original)" is returned, else if only 8 bit chars
        then "(original)" with interspersed octal strings 
nn is returned,
        else a string "<FEFF[hexstring]>" is returned, where [hexstring] is the
        UTF-16BE encoding of the original.
    z()c                óz   € \        ^þ^ÿ.4      \        V R4      ,           pRVP                  4       ,           R,           # )éþ   zUTF-16BEÚ<r%  )r©  Úhex)rŸ  r$  s   & r'   Úmake_utf16beÚ!get_pdf_str.<locals>.make_utf16be@W  s1   € Ü�s˜C�jÓ!¤I¨a°Ó$<Õ<ˆØ�Q—U‘U“W�}˜sÕ"Ð"r)   r`   rì  rí  r  Ú03oz\bz\tr{  z\fz\rz\267)rì  rí  r  )rè   r:  )rŸ  r  r$  rõ  rÙ  s   &    r'   r  r  3W  sð   € ô ��7Š7Ùò#ð 	€AÛˆÜ�‹VˆØ�Œ8Ù “?Ò"à�Œ7�r˜C”xØÐ$Ô$Ø�T•	�Ø�FˆAÙà�Œ8Ø�2�b˜�X�ÕˆAÙð �Œ7Ø��JŠAØ�1ŒWØ��JŠAØ�2ŒXØ��JŠAØ�2ŒXØ��JŠAØ�2ŒXØ��JŠAà��LŠAñ7 ð: ��7�S�=Ðr)   c           	     óî  € V '       d   V # \         P                  ! R4      p V '       d   V # ^ RIpVP                  R^^^ RR7      pVP                  ^ 8X  d=   \
        P                  ! RVP                  4      pV'       d   VP                  ^4      p V # \        P                  R8X  dË   VP                  R^^^ RR7      pVP                  P                  4       pVP                  '       g	   V'       g   \        R	4      h\         P                  P                  V4      p\         P                  P                  VR
4      p \         P                  P!                  V 4      '       d   V # \        RV  R24      h\#        4       pR FÁ  pVP                  RV 2^^^ RR7      pVP                  ^ 8X  g   K/  VP                  P                  4       P%                  4       p\'        V4      ^8X  g   Ki  V^,          pV R2pVP)                  V4       \*        P*                  ! V4      p	V	P-                  4        V	'       g   K¸  V	R,          u # 	  V'       d#   Rp
V F  pV
RV 2,          p
K  	  \        V
4      h\        R	4      h)a·  Detect Tesseract language support folder.

This function is used to enable OCR via Tesseract even if the language
support folder is not specified directly or in environment variable
TESSDATA_PREFIX.

* If <tessdata> is set we return it directly.

* Otherwise we return `os.environ['TESSDATA_PREFIX']` if set.

* Otherwise we search for a Tesseract installation and return its language
  support folder.

* Otherwise we raise an exception.
ÚTESSDATA_PREFIXNztesseract --list-langsT)ÚshellÚcapture_outputr­  r   z%List of available languages in "(.+)"Úwin32zwhere tesseractz4No tessdata specified and Tesseract is not installedrp  z8No tessdata specified and Tesseract installation has no z folderzwhereis z/*/tessdataz(No tessdata specified and no match for:
rÞ  )ztesseract-ocrÚ	tesseractr¨  )rh   rš   Ú
subprocessrm  Ú
returncoderw  rˆ  Ústdoutrx  rö  Úplatformr:
  rÞ   r   Údirnamer  r¾  r´   r8   r9   ro   ÚglobrÂ  )rp  r  Úcpr‹  rS  r   Úattemptsr   ÚpatternÚ	tessdatasr   Úattempts   &           r'   rj  rj  hW  s  € ÷  ØˆÜ�yŠyÐ*Ó+€HßØˆó à	�‰Ð0¸È!ÐSTÐ[_ˆÓ	`€BØ	‡}�}˜ÔÜ�IŠIÐ=¸r¿y¹yÓIˆßØ—w‘w˜q“zˆHØˆOô ‡|�|�wÔØ�^‰^Ð-°QÀqÐPQÐX\ˆ^Ó]ˆØ—9‘9—?‘?Ó$ˆØ�=�=ˆ=§ÜÐUÓVÐVÜ—'‘'—/‘/ (Ó+ˆÜ—7‘7—<‘< ¨Ó4ˆÜ�7‰7�>‰>˜(×#Ò#ØˆOäÐ!YÐZbÐYcÐcjÐkÓlÐlô ‹v€HÛ,ˆØ�^‰^˜h t fÐ-°QÀqÐPQÐX\ˆ^Ó]ˆØ�=‰=˜AÖØ—y‘y—‘Ó(×.Ñ.Ó0ˆHÜ�8‹} Ö!à" 1�+�Ø$˜I [Ð1�Ø—‘ Ô(Ü ŸIšI gÓ.�	Ø—‘Ô ß‘9Ø$ R�=Ò(ñ -÷ Ø:ˆÛˆGØ�d˜7˜)Ð$Õ$ŠDñ  ä˜4Ó Ð äÐQÓRÐRr)   ÚCSSr  c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r†  Úfontcoderæ  r'  rù  r  ÚAnyTyper   rs  r,   )rþ  s   "r'   rÿ  rÿ  ®W  s;   € ÷ Bñ BØðBØ!ðBØ3:ðBØIOðBàñBr)   c               ó   € Rp\        V4      \        J g   \        R4      hVf   Rp\        P	                  4        Uu. uF  qUP                  V 4      '       g   K  VNK  	  ppV. 8X  d   \        RV  R24      h\        V4      ^8”  d   \        R4      hVf   T pV Fj  p\        V,          pVR,          p	VR,          p
VR	,          ! 4       pVP                  W·4       V	'       d   R
MRpV
'       d   RMRpWW7WÍ3,          ,          pKl  	  V# u upi )a¡  Create @font-face items for the given fontcode of pymupdf-fonts.

Adds @font-face support for fonts contained in package pymupdf-fonts.

Creates a CSS font-family for all fonts starting with string 'fontcode'.

Note:
    The font naming convention in package pymupdf-fonts is "fontcode<sf>",
    where the suffix "sf" is either empty or one of "it", "bo" or "bi".
    These suffixes thus represent the regular, italic, bold or bold-italic
    variants of a font. For example, font code "notos" refers to fonts
    "notos" - "Noto Sans Regular"
    "notosit" - "Noto Sans Italic"
    "notosbo" - "Noto Sans Bold"
    "notosbi" - "Noto Sans Bold Italic"

    This function creates four CSS @font-face definitions and collectively
    assigns the font-family name "notos" to them (or the "name" value).

All fitting font buffers of the pymupdf-fonts package are placed / added
to the archive provided as parameter.
To use the font in pymupdf.Story, execute 'set_font(fontcode)'. The correct
font weight (bold) or style (italic) will automatically be selected.
Expects and returns the CSS source, with the new CSS definitions appended.

Args:
    fontcode: (str) font code for naming the font variants to include.
              E.g. "fig" adds notos, notosi, notosb, notosbi fonts.
              A maximum of 4 font variants is accepted.
    CSS: (str) CSS string to add @font-face definitions to.
    archive: (Archive, mandatory) where to place the font buffers.
    name: (str) use this as family-name instead of 'fontcode'.
Returns:
    Modified CSS, with appended @font-face statements for each font variant
    of fontcode.
    Fontbuffers associated with "fontcode" will be added to 'archive'.
z1
@font-face {font-family: %s; src: url(%s);%s%s}
z'archive' must be an Archiver`   zNo font code 'z' found in pymupdf-fonts.zfontcode too shortrÎ  rè  r   zfont-weight: bold;zfont-style: italic;)rÈ   r~  rÃ   r  rˆ  r5   r9   r‚  )r)  r'  r  r   ÚCSSFONTrô  Ú	font_keysÚfkeyrÜ  rÎ  rè  ÚfbuffÚ	bold_textÚitalic_texts   &$$$          r'   Úcss_for_pymupdf_fontr2  ®W  s  € ðR D€Gä�‹=œGÓ#ÜÐ7Ó8Ð8Ø
‚{Øˆô 1×5Ñ5Ô7ÓRÑ7�q¿<¹<È×;Q—�Ñ7€IÐRØ�B„Ü˜>¨(¨Ð3LÐMÓNÐNÜ
ˆ9ƒ~˜ÔÜÐ-Ó.Ð.Ø‚|ØˆãˆÜ# DÕ)ˆØ�F�|ˆØ�h•ˆØ�X–Ó ˆØ�‰�EÔ ß,0Ñ(°bˆ	ß/5Ñ+¸2ˆØ˜$ iÐ=Õ=Õ=Šñ ð €Jùò# Ss   ½DÁDc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r†  r   ræ  rþ   rÿ   rœ  r  r6   rs  r,   )rþ  s   "r'   rÿ  rÿ  óW  s1   € ÷ ':ñ ':˜#ð ':¨ð ':Àð ':ÐUXð ':Ð`eñ ':r)   c           	     óþ  € VP                  4       p\        P                  VR4      pRpVR8X  d   \        pVR8X  d   \        pVe[   \        V  Uu. uF<  p\        V4      R8  d   V\        V4      ,          ^,          MV^·,          ^,          NK>  	  up4      pWr,          # V\        P                  4       9   d   \        V \        V,          W#4      # VR9   d   \        V 4      V,          # \        RV R24      hu upi )zåCalculate length of a string for a built-in font.

Args:
    fontname: name of the font.
    fontsize: font size points.
    encoding: encoding to use, 0=Latin (default), 1=Greek, 2=Cyrillic.
Returns:
    (float) length of text.
Nr>  r=  ré  zFont 'z' is unsupported)r  r  r  r  r  r  r  r  )rç  r"  r:   rN  rM  rã  r:  rˆ  Úutil_measure_stringr9   rÃ   )r   rþ   rÿ   r  rø  r?  rõ  r   s   &&&&    r'   r¡  r¡  óW  sô   € ð �~‰~Ó€HÜ×"Ñ" 8¨TÓ2€Hà€FØ�8ÔÜˆØ�>Ô!ÜˆØÒÜÑPTÓUÑPTÈ1¤c¨!£f¨s¤l�œ˜A›• Ö"¸¸s½ÀA½ÒFÑPTÑUÓVˆØ�|Ðà”?×'Ñ'Ó)Ô)Ü"Ø”/ (Õ+¨Xó
ð 	
ð ð 	ô 	ô �4‹y˜8Õ#Ð#ä
�v˜h˜ZÐ'7Ð8Ó
9Ð9ùò) Vs   ÁAC:c               ó    € V ^8„  d   QhRRRR/# )r†  r2  rË  rs  r7   r,   )rþ  s   "r'   rÿ  rÿ  X  s   € ÷ 'ñ '�zð ' dñ 'r)   c                ó  € \        V 4      \        P                  J d   V P                  4       pMK\	        V R4      '       d   V P                  4       pM(\        V 4      \        \        39   d   T pM\        R4      h\        P                  V4      # )a*  Return basic properties of an image.

Args:
    img: bytes, bytearray, io.BytesIO object or an opened image file.
Returns:
    A dictionary with keys width, height, colorspace.n, bpc, type, ext and size,
    where 'type' is the MuPDF image type (0 to 14) and 'ext' the suitable
    file extension.
rÀ  zbad argument 'img')rÈ   r;   rª  rÄ  r=   rÀ  r  r©  rÃ   r  Úimage_profile)r2  r   s   & r'   r8  r8  X  sj   € ô ˆCƒy”B—J‘JÓØ—‘“‰Ü	��f×	Ò	Ø—‘“‰Ü	ˆc‹”uœiÐ(Ô	(Ø‰äÐ-Ó.Ð.ä×Ñ˜vÓ&Ð&r)   c                ó<  a € \        S P                  \        4      '       g   Q h\        S P                  4      '       g   S P                  '       d]   S P                  f   Q h\        S P                  S P                  4      ! S P                  4      pV'       g   \        R4       RS n        R# V 3R lp\        S P                  \        4      '       g   Q h\        S P                  4      pV^ 8X  d   V! 4       # S P                  \        ,          pVR8w  d   V! 4       # S P                  V^,
          ,          pV\        ,          pVR8w  d   V! 4       # V\        ,          pS P                  \        ,          pWx8w  d   V! 4       #  S P                  P                  4        F  w  ršW•9  g   K  W¥V	&   K  	  ^ pV^ 8X  d&   RV\        &   S P                  P                  4        R# \        R4       V! 4        R#   \         d    \        '       d   \        4        Rp Lei ; i)	aU  
Append current path to list or merge into last path of the list.
(1) Append if first path, different item lists or not a 'stroke' version
    of previous path
(2) If new path has the same items, merge its content into previous path
    and change path["type"] to "fs".
(3) If "out" is callable, skip the previous and pass dictionary to it.
Nz2calling cdrawings callback function/method failed!c                 ó¢   <€ S P                   P                  S P                  P                  4       4       S P                  P	                  4        R # r+   )rF	  ro   Úpathdictr8  rW  ©r¿  s   €r'   ro   Újm_append_merge.<locals>.appendNX  s0   ø€ à�‰�‰�s—|‘|×(Ñ(Ó*Ô+Ø�‰×ÑÖr)   rŸ  r  rË  z$could not merge stroke and fill pathr¨  )r@   rF	  r´   r]  rb  rî   r;  rv   r9   rú  Údictkey_itemsrD   rk   r  r{   rW  )r¿  Úrespro   rÆ  Úthistyper  ÚprevtypeÚ	previtemsÚ	thisitemsrô  rH   r¦   s   f           r'   Újm_append_mergerD  3X  s   ø€ ô �c—g‘gœt×$Ò$Ð$Ð$ô �—
‘
×Ò˜sŸzŸz˜zà�:‰:Òà�1ô ˜3Ÿ7™7 C§J¡JÔ/°·±Ó=ˆDßÜÐHÔIØˆŒÙõô �c—g‘gœt×$Ò$Ð$Ð$Üˆs�w‰w‹<€Dàˆq„yÙ‹xˆà�|‰|œ\Õ*€Hà�3„Ù‹xˆØ�7‰7�D˜•FÕ€Dà”\Õ"€Hà�3„Ù‹xˆà”mÕ$€IØ—‘œmÕ,€IØÔÙ‹xˆðØ—L‘L×&Ñ&Ö(‰DˆAØŽ}Ø�Q“ñ )ð ˆð
 
ˆQ„wØ"ˆŒlÑØ�‰×ÑÖäÐ6Ô7ÙŽøô ô ßÓ¤NÔ$4àŠðús   Æ"G5 Æ+
G5 Ç5HÈHÈHc                óÜ   € V P                   '       g)   V P                  P                  V\        V4      34       R # V P                  P                  V\        V4      V P                  34       R # r+   )rW  r“  ro   rp  Ú
layer_name)r¿  r  rü   r  s   &&&&r'   Újm_bbox_add_rectrG  zX  sI   € Ø�:�:ˆ:Ø�
‰
×Ñ˜D¤/°$Ó"7Ð8Ö9à�
‰
×Ñ˜D¤/°$Ó"7¸¿¹ÐHÖIr)   c                óÆ   € \         P                  ! \         P                  P                  4      p\         P                  ! VP	                  4       V4      p\        WVR 4       R# )z
fill-imageN)r£   rq  rE  Úll_fz_transform_rectr  rG  )r¿  r  rî  ró  rñ  Úcolor_paramsr$  s   &&&&&& r'   Újm_bbox_fill_imagerK  �X  s>   € Ü�Š”U—\‘\×,Ñ,Ó-€AÜ×"Ò" A§J¡J£L°#Ó6€AÜ�c  <Ö0r)   c                ó´   €  \        W\        P                  ! \        P                  V4      R 4       R#   \         d    \
        '       d   \        4        h i ; i)zfill-imgmaskN)rG  r£   rI  Úfz_unit_rectrk   r  r{   )r¿  r  rî  ró  rð  rp  rñ  rJ  s   &&&&&&&&r'   Újm_bbox_fill_image_maskrN  ‡X  sE   € ðÜ˜#¤E×$>Ò$>¼u×?QÑ?QÐSVÓ$WÐYgÖhøÜô ßÓ¤NÔ$4Øðús   ‚04 ´AÁAc	           	     ó²   € V'       d   R MRp \        W\        P                  ! VRV4      R4       R#   \         d    \        '       d   \        4        h i ; i)TFNz	fill-path©rG  r£   Úll_fz_bound_pathrk   r  r{   ©	r¿  r  r   rr  ró  rð  rp  rñ  rJ  s	   &&&&&&&&&r'   Újm_bbox_fill_pathrS  �X  sH   € ß‰t U€HðÜ˜#¤E×$:Ò$:¸4ÀÀsÓ$KÈ[ÖYøÜô ßÓ¤NÔ$4Øðús   Ž#3 ³AÁ
Ac                ó–   €  \        W\        P                  ! W#4      R 4       R#   \         d    \        '       d   \        4        h i ; i)z
fill-shadeN)rG  r£   Úll_fz_bound_shaderk   r  r{   )r¿  r  Úshaderó  rñ  rJ  s   &&&&&&r'   Újm_bbox_fill_shaderW  ˜X  s;   € ðÜ˜#¤E×$;Ò$;¸UÓ$HÈ,ÖWøÜô ßÓ¤NÔ$4Øðús   ‚!% ¥A¼Ac           	     ó˜   €  \        W\        P                  ! W#V4      R 4       R#   \         d    \        '       d   \        4        h i ; i)zstroke-textN©rG  r£   Úll_fz_bound_textrk   r  r{   )r¿  r  r   r“  ró  r  s   &&&&&*r'   Újm_bbox_stroke_textr[   X  ó>   € ðÜ˜#¤E×$:Ò$:¸DÈ#Ó$NÐP]Ö^øÜô ßÓ¤NÔ$4Øðúó   ‚"& ¦A	½A	c           	     óš   €  \        W\        P                  ! VR V4      R4       R #   \         d    \        '       d   \        4        h i ; i)Nz	fill-textrY  )r¿  r  r   ró  r  s   &&&&*r'   Újm_bbox_fill_textr_  ¨X  s?   € ðÜ˜#¤E×$:Ò$:¸DÀ$ÈÓ$LÈkÖZøÜô ßÓ¤NÔ$4Øðús   ‚#' §A
¾A
c           	     óL   € \        W\        P                  ! VR V4      R4       R # )Nzignore-text)rG  r£   rZ  )r¿  r  r   ró  s   &&&&r'   Újm_bbox_ignore_textra  °X  s   € Ü�c¤× 6Ò 6°t¸TÀ3Ó GÈÖWr)   c	           	     ó˜   €  \        W\        P                  ! W#V4      R 4       R#   \         d    \        '       d   \        4        h i ; i)zstroke-pathNrP  )	r¿  r  r   r“  ró  rð  rp  rñ  rJ  s	   &&&&&&&&&r'   Újm_bbox_stroke_pathrc  ´X  r\  r]  c                óº  € V P                   \        ,          p\        V4      p^ .^,          p\        ^4       Fn  pW^,
          V,           ,          p\	        V^,          4      pVP
                  W4^,          &   VP                  W4^,          ^,           &   \	        V^,          4      pKp  	  XP
                  V^ ,          8w  g   VP                  V^,          8w  d   ^ # ^ V n        \        P                  ! V^ ,          V^,          V^,          V^,          V^,          V^,          V^,          V^,          4      pR\        V4      3p	W‘V^,
          &   W^,
          V1 ^# )a  
Check whether the last 4 lines represent a quad.
Because of how we count, the lines are a polyline already, i.e. last point
of a line equals 1st point of next line.
So we check for a polygon (last line's end point equals start point).
If not true we return 0.
rq  )r;  r>  r9   rS  r+  ri  rj  Ú	linecountr£   ro  r›  )
r¿  rD   rÆ  r  rg  rs   r  r‰  rc  rü   s
   &         r'   Újm_checkquadrf  ¼X  s  € ð �L‰Lœ-Õ(€EÜˆu‹:€DØ	
ˆˆa�€Aä�AŽYˆØ˜Q•h •lÕ#ˆÜ  a¥Ó)ˆØ—6‘6ˆˆa�%‰Ø—v‘vˆˆa�%�!�)‰Ü˜t Q�xÓ(Šñ ð 
‡t�tˆq��t„|�r—t‘t˜q �t”|ñ ð €C„Mô 	×Ò˜1˜Q�4  1¥ q¨¥t¨Q¨q­T°1°Qµ4¸¸1½¸qÀ½tÀQÀqÅTÓJ€AØ”/ !Ó$Ð%€Dàˆ4�!�8ÑØ�a�x˜$ˆÐÙr)   c                ó’  € ^ V n         ^ pV P                  \        ,          p\        V4      pW#^,
          ,          p\	        V^,          4      p\	        V^,          4      pW#^,
          ,          p\	        V^,          4      p\	        V^,          4      p	 VP
                  VP
                  8w  gR   VP                  V	P                  8w  g7   VP
                  V	P
                  8w  g   VP                  VP                  8w  d   ^ # V	P
                  VP
                  8  dE   \        P                  ! V	P                  V	P
                  VP                  VP
                  4      p
^pMC\        P                  ! VP                  VP
                  VP                  VP
                  4      p
RpR\        V
4      V3pW²V^,
          &   W#^,
          V1 ^# )zq
Check whether the last 3 path items represent a rectangle.
Returns 1 if we have modified the path, otherwise 0.
rw  r¨  )
re  r;  r>  r9   r+  rj  ri  r£   r2  rp  )r¿  rŸ  rD   rÆ  rQ  rÕ  rÖ  Úline2r×  rû  r$  rü   s   &           r'   Újm_checkrectri  ãX  sR  € ð €C„MØ€KØ�L‰Lœ-Õ(€EÜˆu‹:€Dà˜!•8Õ€EÜ	˜5 !�9Ó	%€BÜ	˜5 !�9Ó	%€Bð ˜!•8Õ€EÜ	˜5 !�9Ó	%€BÜ	˜5 !�9Ó	%€Bð 	
Ø�t‰t�r—t‘tŒ|Ø�t‰t�r—t‘tŒ|Ø�t‰t�r—t‘tŒ|Ø�t‰t�r—t‘tŒ|áð 
‡t�tˆb�d‰d„{Ü×Ò˜rŸt™t R§T¡T¨2¯4©4°·±Ó6ˆØ‰ä×Ò˜rŸt™t R§T¡T¨2¯4©4°·±Ó6ˆØˆà”? 1Ó% {Ð3€DØˆ4�!�8ÑØ�a�x˜$ˆÐÙr)   c           
     óh   € VP                   p V'       g   R# \        WW#WEWg4       VP                  pK'  r›  )ÚheadÚjm_trace_text_spanr]  )	r¿  r   rb  ró  rð  rp  rñ  ÚseqnorJ  s	   &&&&&&&& r'   Újm_trace_textrn  Y  s+   € Ø�9‰9€DØ
ßÙÜ˜C u°:ÀeÔSØ�y‰yŠr)   c                ó   € Rp\        V\        P                  4      '       g   Q h\        P                  ! V4      p\        V\        P                  4      '       g   Q h\        P
                  ! V4      p\        VP                  4       4      p	\        P                  ! VP                  4       V4      p
\        P                  ! \        P                  ! ^^ 4      V
4      p\        P                  ! VP                  VP                  ,          VP                  VP                  ,          ,           4      p\        P                   ! V4      p^ p\#        VP                  4       4      p\%        VP                  4       4      pVR8  d   RpRpWì,          Wï,
          ,          pWü,          Wï,
          ,          p^ p\        P&                  ! VP                  4       4      pVV\(        ,          ,          pV\        P*                  ! VP                  4       4      \,        ,          ,          pV\        P.                  ! VP                  4       4      \0        ,          ,          pV\        P2                  ! VP                  4       4      \4        ,          ,          p^ p\        P6                  ! 4       p\        P8                  ! VP                  VP                  VP                  ) VP                  ^ ^ 4      pVP                  R8X  d   ^Vn        . p\=        VP>                  P@                  4       EF0  p^ pVPC                  V4      PD                  ^ 8¼  dT   \        PF                  ! VP                  4       VPC                  V4      PD                  VP>                  PH                  4      pVV,          pTpVPC                  V4      PJ                  ^ 8X  d   Tp\        P                  ! VPC                  V4      P                  VPC                  V4      P                  4      p\        PL                  ! VV4      p\        P8                  ! ^^ ^ ^VP                  ) VP                  ) 4      p\        P                  ! VV4      p\        P                  ! V\        P
                  ! ^^ ^ ^VP                  VP                  4      4      pVP                  pVV,           pV
P:                  ^ 8”  d#   VP                  ^8X  g?   VP                  R8X  g.   V
PN                  ^ 8w  dD   V
PN                  V
PP                  ) 8X  d(   VP                  V,           pVP                  V,           pM&VP                  V,
          pVP                  V,
          p\        PR                  ! VVVV4      p \        PT                  ! V V4      p VPW                  VPC                  V4      PJ                  VPC                  V4      PD                  VP                  VP                  3V PX                  V PZ                  V P\                  V P^                  334       V^ 8”  d   \        P`                  ! VV 4      pEK.  T pEK3  	  \c        V4      pV'       g�   V\(        ,          '       gx   \        Pd                  ! VP                  4       ^ ^ ^ 4      w  p!p\        PF                  ! VP                  4       V!VP>                  PH                  4      pWÜ,          pV'       g   TpMTp\g        4       p"\i        V4      V"R&   \k        V	4      V"R&   VP>                  PH                  V"R&   VV"R&   VP>                  Pl                  V"R&   VP>                  Pn                  V"R	&   VV"R
&   VV"R&   ^V"R&   V'       d†   \        Pp                  ! \        Pr                  ! \        Pt                  ! V4      4      V\        Pv                  ! 4       \        Pr                  ! 4       \        Px                  ! 4       4      p#V#R,          p#MRp#V Pz                  ^ 8”  d   V Pz                  p$M	VR,          p$V#V"R&   VV"R&   VV"R&   V$V"R&   VV"R&   VV"R&   \}        V4      V"R&   V P~                  V"R&   VV"R&   VV"R&   V P€                  PW                  V"4       R# )z«
jm_trace_text_span(fz_context *ctx, PyObject *out, fz_text_span *span, int type, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, size_t seqno)
NrV  rŒ  r¶  rÜ  r=  rÐ  Úbidi_lvlÚbidi_dirr:  r;  rð  rk  rG  rp  rÉ  r]  Ú	linewidthÚ
spacewidthrÈ   r6  Úlayerrm  r‰  r�  r¨  r…  )Ar@   r£   Úfz_text_spanÚ
FzTextSpanÚ	fz_matrixr|  rú  rÜ  rf  r#  Úfz_transform_vectorrÅ  rá  râ  ri  rj  Úfz_normalize_vectorr’  r“  rt  rˆ  rq  r†  rx  r‡  rn  r‰  rq  r  rH  rS  rÌ   r9   rD   r@  rð  r=  r�  rh  rI  rõ  r2  rà  ro   rµ  r·  r´  r¶  r|  rµ   r<  r7   rù  rÃ  rÇ  r$  Úfz_convert_colorr-  rž  ré  rÎ  rr  rp  rF  rF	  )%r¿  rJ  rb  ró  rð  rp  rñ  rm  Úout_fontrþ   r€  r¶  r7  Ú	space_advrR  rS  ÚascsizeÚdscsizeÚfflagsrK  Úlast_advÚ	span_bboxry  r‰  rg  rô  Ú	char_origr  rµ  r´  r·  r¶  Ú	char_bboxrõ  Ú	span_dictrá  rr  s%   &&&&&&&&                             r'   rl  rl  Y  s{  € ð €HÜ�tœU×/Ñ/×0Ò0Ð0Ð0Ü×Ò˜TÓ"€DÜ�sœEŸO™O×,Ò,Ð,Ð,Ü
�.Š.˜#Ó
€CÜ˜TŸY™Y›[Ó)€Hô �/Š/˜$Ÿ(™(›* cÓ
*€CÜ
×
#Ò
#¤E×$7Ò$7¸¸1Ó$=¸sÓ
C€CÜ�IŠI�c—e‘e˜cŸe™e•m c§e¡e¨c¯e©e¥mÕ3Ó4€Eä
×
#Ò
# CÓ
(€Cà€IÜ
˜DŸI™I›KÓ
(€CÜ
˜TŸY™Y›[Ó
)€CØ
ˆT„zØˆØˆð �k˜S�YÕ'€GØ�k˜S�YÕ'€GØ€FÜ×&Ò&¨¯	©	«Ó4€DØ
ˆdÔ)Õ)Õ)€FØ
Œe×%Ò% t§y¡y£{Ó3Ô6FÕFÕF€FØ
Œe×$Ò$ d§i¡i£kÓ2Ô5FÕFÕF€FØ
Œe×#Ò# T§Y¡Y£[Ó1´NÕBÕB€Fà€Hô —’“€IÜ
×
Ò
˜sŸu™u c§e¡e¨c¯e©e¨V°S·U±U¸A¸qÓ
A€CØ
‡u�u�„{ØˆŒà€EÜ�D—O‘O×'Ñ'×(ˆØˆØ�:‰:�a‹=×Ñ Ô!Ü×(Ò(¨$¯)©)«+°t·z±zÀ!³}×7HÑ7HÈ$Ï/É/×J_ÑJ_Ó`ˆCØˆu�ˆØˆØ�:‰:�a‹=×Ñ Ô"ØˆIÜ×'Ò'¨¯
©
°1«¯©¸¿¹ÀA»¿¹ÓIˆ	Ü×,Ò,¨Y¸Ó<ˆ	Ü×!Ò! ! Q¨¨1¨y¯{©{¨l¸Y¿[¹[¸LÓIˆÜ�_Š_˜R Ó%ˆÜ�_Š_˜R¤§¢°°1°a¸¸I¿K¹KÈÏÉÓ!UÓVˆØ�[‰[ˆØ�#�Xˆà—‘˜” §¡¨¤
¨c¯e©e°r¬kà—‘˜!” §¡¨#¯%©%¨¤à—‘˜wÕ&ˆBØ—‘˜wÕ&‰Bà—‘˜wÕ&ˆBØ—‘˜wÕ&ˆBÜ×&Ò& r¨2¨r°2Ó6ˆ	Ü×+Ò+¨I°rÓ:ˆ	Ø�‰à—J‘J˜q“M×%Ñ%Ø—J‘J˜q“M×%Ñ%à!Ÿ™Ø!Ÿ™ðð
 "Ÿ™Ø!Ÿ™Ø!Ÿ™Ø!Ÿ™ð	ðô	ð  ˆqŒ5Ü×+Ò+¨I°yÓA‹Ià!‹Iñ] )ô^ �%‹L€EçØÔ-×-Ô-Ü×AÒAÀ4Ç9Á9Ã;ÐPRÐTUÐWXÓY‰KˆAˆxÜ×.Ò.Ø—I‘I“KØØ—O‘O×)Ñ)óˆIð
 ÕˆIßØ$�	øà ˆIô “€IÜ(¨Ó-€IˆuÑÜ,¨XÓ6€IˆvÑØŸ/™/×/Ñ/€IˆwÑØ€IˆwÑØ ŸO™O×6Ñ6€IˆzÑØ!Ÿ_™_×7Ñ7€IˆzÑØ €IˆzÑØ!€Iˆ{ÑØ €Iˆ|ÑçÜ×$Ò$Ü×"Ò"¤E×$?Ò$?ÀÓ$LÓMØÜ×#Ò#Ó%Ü×"Ò"Ó$Ü×#Ò#Ó%óˆð �"�g‰àˆà
‡}�}�qÔØ—M‘M‰	à˜D•Lˆ	ð €IˆwÑØ€IˆvÑØ!€IˆyÑØ'€Iˆ{ÑØ(€Iˆ|ÑØ€IˆvÑÜ(¨Ó3€IˆvÑØŸ.™.€IˆwÑØ€IˆwÑØ€IˆwÑà‡G�G‡N�N�IÖr)   c                ó`  € V '       d€    \         P                  ! \         P                  P                  4      p\         P                  ! 4       p\         P                  ! V VVP
                  R VP                  4       4      pVR,          # R#   \         d    \        '       d   \        4        h i ; i)Nrk  r,   )
r£   r-  r3  rÎ  Úll_fz_convert_colorrÌ   r  rk   r  r{   )rð  rp  rô  r"  rá  s   &&   r'   Újm_lineart_colorr‡  µY  sŽ   € çð	ô ×#Ò#¤U×%7Ñ%7×%AÑ%AÓBˆBÜ×$Ò$Ó&ˆBÜ×+Ò+ØØØ—M‘MØØ—K‘K“MóˆCð �2�wˆØ€Iøô	 ô 	ß#Ó#¬Ô(8Øð	ús   ŠA5B
 Â
B-Â!B-c                ób   € \        V P                  \        4      '       d   . V n        . V n        R # r+   )r@   rF	  r´   Úscissors©r¿  r  s   &&r'   Újm_lineart_drop_devicer‹  ÑY  s!   € Ü�#—'‘'œ4× Ò ØˆŒØ€C†Lr)   c	                ó  € V'       d   R MRp \        V\        P                  4      '       g   Q h\        P                  ! V4      V n        \
        V n        \        WV4       V P                  f   R# RV P                  \        &   W0P                  R&   WpP                  R&   \        WV4      V P                  R&   \        V P                  4      V P                  \        &   V P                  V P                  R&   V P                  V P                  R&   V P                   '       d   V P"                  V P                  R	&   \%        V 4       V ;P                  ^,          un        R#   \&         d    \(        '       d   \+        4        h i ; i)
TFNr  rr  r	  r   rm  rt  r   )r@   r£   rw  r|  ró  Útrace_device_FILL_PATHÚ	path_typeÚjm_lineart_pathr;  rú  r‡  rp  ÚpathrectÚdictkey_rectrm  rF  rc  ra	  rD  rk   r  r{   rR  s	   &&&&&&&&&r'   Újm_lineart_fill_pathr’  ×Y  s  € ÷  ‰t U€HðÜ˜3¤§¡×0Ò0Ð0Ð0Ü—.’. #Ó&ˆŒÜ.ˆŒÜ˜ 4Ô(Ø�<‰<ÒÙð &)ˆ�‰”lÑ#Ø$,�‰�jÑ!Ø(-�‰�nÑ%ô !1°*Ó Dˆ�‰�fÑÜ&5°c·l±lÓ&Cˆ�‰”lÑ#Ø!$§¡ˆ�‰�gÑà!$§¡ˆ�‰�gÑØ�9�9ˆ9Ø%(§Y¡YˆC�L‰L˜'Ñ"Ü˜ÔØ�	Š	�Q��	øäô ßÓ¤NÔ$4Øðús   ŽA"E" Á2C.E" Å"FÅ9Fc           
     ól   €  \        Y^ Y4YVT P                  4       T ;P                  ^,          un        R# rŒ   )r%   rÈ   rn  rm  )r¿  r  r   ró  rð  rp  rñ  rJ  s   &&&&&&&&r'   Újm_lineart_fill_textr”  þY  s(   € Øô �#˜Q °¸s¿y¹yÔIØ‡I‚I�…N‡Ir)   c           
     ón   € \        W^VRR^V P                  4       V ;P                  ^,          un        R# )r   N©rn  rm  )r¿  r   ró  s   &&&r'   Újm_lineart_ignore_textr—  Z  s'   € ä�#˜Q  T¨4°°C·I±IÔ>Ø‡I‚I�…N‡Ir)   c                  ó@   a € ] tR tRtV 3R ltR tR tR tR tRt	V ;t
# )ÚWalkeriZ  c                	ó°   <€ \         SV `  4        V P                  4        V P                  4        V P	                  4        V P                  4        Wn        R # r+   )rÇ   r‘   Úuse_virtual_movetoÚuse_virtual_linetoÚuse_virtual_curvetoÚuse_virtual_closepathr¿  )r&   r¿  r
  s   &&€r'   r‘   ÚWalker.__init__Z  sC   ø€ Ü‰ÑÔØ×ÑÔ!Ø×ÑÔ!Ø× Ñ Ô"Ø×"Ñ"Ô$ØŽr)   c                	ó,  €  V P                   P                  ^8X  d   \        V P                   4      '       d   R# ^ V P                   n        V P                   P                  '       dÞ   V P                   P                  V P                   P
                  8w  d•   R\        V P                   P                  4      \        V P                   P
                  4      3pV P                   P                  \        ,          P                  V4       V P                   P
                  V P                   n        RV P                   P                  R&   MRV P                   P                  R&   ^ V P                   n        R#   \         d    \        '       d   \        4        h i ; i)r   NrX  Fr  T)r¿  re  ri  ÚhavemoveÚ	lastpointÚ
firstpointrù  r;  r>  ro   rk   r  r{   )r&   r  rE   s   && r'   Ú	closepathÚWalker.closepathZ  s  € ð	Ø�x‰x×!Ñ! QÔ&Ü §¡×)Ò)áØ!"ˆD�H‰HÔà�x‰x× × Ð Ø—8‘8×%Ñ%¨¯©×)<Ñ)<Ô<ØÔ!1°$·(±(×2DÑ2DÓ!EÜ!1°$·(±(×2EÑ2EÓ!FðH�Dà—H‘H×%Ñ%¤mÕ4×;Ñ;¸DÔAØ)-¯©×)<Ñ)<�D—H‘HÔ&Ø16�—‘×!Ñ! +Ò.ð 37�—‘×!Ñ! ;Ñ/ð !"ˆD�H‰HÖøäô 	ß#Ó#¬Ô(8Øð	ús   ‚6E0 º,E0 Á'DE0 Å0FÆFc                	óP  €  ^ V P                   n        \        P                  ! W#4      p\        P                  ! WE4      p	\        P                  ! Wg4      p
\        P                  ! W€P                   P
                  4      p\        P                  ! W�P                   P
                  4      p	\        P                  ! W P                   P
                  4      p
\        P                  ! V P                   P                  V4      V P                   n        \        P                  ! V P                   P                  V	4      V P                   n        \        P                  ! V P                   P                  V
4      V P                   n        R\        V P                   P                  4      \        V4      \        V	4      \        V
4      3pW P                   n	        V P                   P                  \        ,          P                  V4       R#   \         d    \        '       d   \        4        h i ; i)rx   rõ  N)r¿  re  r£   rÅ  rh  ró  Úfz_include_point_in_rectr�  rù  r¢  r;  r>  ro   rk   r  r{   )r&   r  r´  r¶  Úx2Úy2Úx3Úy3rJ  rK  r  rp  s   &&&&&&&&    r'   ÚcurvetoÚWalker.curveto8Z  ss  € ð	Ø!"ˆD�H‰HÔÜ×$Ò$ RÓ,ˆBÜ×$Ò$ RÓ,ˆBÜ×$Ò$ RÓ,ˆBÜ×)Ò)¨"¯h©h¯l©lÓ;ˆBÜ×)Ò)¨"¯h©h¯l©lÓ;ˆBÜ×)Ò)¨"¯h©h¯l©lÓ;ˆBÜ %× >Ò >¸t¿x¹x×?PÑ?PÐRTÓ UˆD�H‰HÔÜ %× >Ò >¸t¿x¹x×?PÑ?PÐRTÓ UˆD�H‰HÔÜ %× >Ò >¸t¿x¹x×?PÑ?PÐRTÓ UˆD�H‰HÔð Ü$ T§X¡X×%7Ñ%7Ó8Ü$ RÓ(Ü$ RÓ(Ü$ RÓ(ðˆEð "$�H‰HÔØ�H‰H×Ñœ}Õ-×4Ñ4°eÖ<øÜô 	ß#Ó#¬Ô(8Øð	ús   ‚G>H ÈH%ÈH%c                	ó  €  \         P                  ! \         P                  ! W#4      V P                  P                  4      p\         P
                  ! V P                  P                  V4      V P                  n        R \        V P                  P                  4      \        V4      3pW@P                  n        V P                  P                  \        ,          pVP                  V4       V P                  ;P                  ^,          un        V P                  P                  ^8X  d9   V P                  P                  \        8w  d   \        V P                  4       R# R# R#   \          d    \"        '       d   \%        4        h i ; i)rX  N)r£   rh  rÅ  r¿  ró  r§  r�  rù  r¢  r;  r>  ro   re  rŽ  r�  rf  rk   r  r{   )r&   r  ri  rj  rJ  rp  rD   s   &&&&   r'   ÚlinetoÚWalker.linetoSZ  s  € ð	Ü×)Ò)¬5×+>Ò+>¸qÓ+DÀdÇhÁhÇlÁlÓSˆBÜ %× >Ò >ÀÇÁ×@QÑ@QÐSUÓ VˆD�H‰HÔàÜ$ d§h¡h×&8Ñ&8Ó9Ü$ RÓ(ðˆEð
 "$�H‰HÔØ—H‘H×%Ñ%¤}Õ5ˆEØ�L‰L˜%Ô Ø�H‰H×Ò !Õ#ÕØ�x‰x×!Ñ! QÔ&¨4¯8©8×+=Ñ+=ÔAWÔ+Wä˜TŸX™XÖ&ñ ,XÑ&øô ô 	ß#Ó#¬Ô(8Øð	ús   ‚EE  Å FÅ7Fc                	ó   €   \        P                  ! \        P                  ! Y#4      T P                  P                  4      T P                  n        \        P                  ! T P                  P                  4      '       d¡   \        P                  ! T P                  P                  P                   T P                  P                  P"                  T P                  P                  P                   T P                  P                  P"                  4      T P                  n        T P                  P                  T P                  n        ^T P                  n        ^ T P                  n        R#   \*         d    \,        '       d   \/        4        h i ; irŒ   )r@   r¿  r;  r7   r%   rD   rÈ   r9   r£   rh  rÅ  ró  r¢  rç  r�  r2  ri  rj  r£  r¡  re  rk   r  r{   )r&   r  ri  rj  rG   rH   s   &&&&  r'   ÚmovetoÚWalker.movetohZ  s  € Øð	ä!&×!9Ò!9Ü×'Ò'¨Ó-Ø—H‘H—L‘Ló"ˆD�H‰HÔô ×(Ò(¨$¯(©(×*;Ñ*;×<Ò<Ü$)×$6Ò$6ØŸ™×*Ñ*×,Ñ,ØŸ™×*Ñ*×,Ñ,ØŸ™×*Ñ*×,Ñ,ØŸ™×*Ñ*×,Ñ,ó	%�—‘Ô!ð #'§(¡(×"4Ñ"4ˆD�H‰HÔØ !ˆD�H‰HÔØ!"ˆD�H‰HÖøÜô 	ß#Ó#¬Ô(8Øð	ús   ƒE%E* Å*FÆFr<  )r/   r0   r1   r2   r‘   r¤  r¬  r¯  r²  r3   r  rµ  s   @r'   r™  r™  Z  s!   ø† õòò8ò6÷*ð r)   r™  c                ó8  €  \         P                  ! \         P                  P                  4      V n        ^ V n        \         P
                  ! ^ ^ 4      V n        \        4       V n        . V P                  \        &   \        V 4      p\         P                  ! \         P                  ! \         P                  ! V4      4      W3P                  4       V P                  \        ,          '       g
   RV n        R# R#   \         d    \         '       d   \#        4        h i ; i)a  
Create the "items" list of the path dictionary
* either create or empty the path dictionary
* reset the end point of the path
* reset count of consecutive lines
* invoke fz_walk_path(), which create the single items
* if no items detected, empty path dict again
N)r£   rq  rr  r�  re  rg  r¢  r7   r;  r>  r™  Úfz_walk_pathÚFzPathÚll_fz_keep_pathrÌ   rk   r  r{   )r¿  r  r   Úwalkers   &&& r'   r�  r�  …Z  sÀ   € ðÜ—|’|¤U§\¡\×%@Ñ%@ÓAˆŒØˆŒÜŸš q¨!Ó,ˆŒÜ“vˆŒØ')ˆ�‰”mÑ$ô ˜“ˆô 	×ÒœEŸLšL¬×)>Ò)>¸tÓ)DÓEÀv×O`ÑO`Ôaà�|‰|œ]×+Ô+ØˆCŽLñ ,øäô ßÓ¤NÔ$4Øðús   ‚C0C6 Ã6DÄDc	                óö  €  \        V\        P                  4      '       g   Q h\        P                  ! \        VP                  VP                  ,          VP                  VP                  ,          ,
          4      4      V n
        \        P                  ! V4      V n        \        V n        \        WV4       V P                   f   R # RV P                   \"        &   WpP                   R&   \%        WV4      V P                   R&   V P                  VP&                  ,          V P                   \(        &   VP*                  VP,                  VP.                  3V P                   R&   \1        VP2                  4      V P                   R&   RV P                   9  d   RV P                   R&   VP4                  '       dì   \        P6                  ! R4      p	\        P8                  ! V	R	4       \;        VP4                  4       FX  p
\        P<                  ! VP>                  V
4      p\        P8                  ! V	\A        V P                  V,          4       R
24       KZ  	  \        P8                  ! V	R\A        V P                  VPB                  ,          4       24       W�P                   R&   MRV P                   R&   \E        V PF                  4      V P                   \H        &   V PJ                  V P                   R&   V PL                  V P                   R&   V PN                  '       d   V PP                  V P                   R&   \S        V 4       V ;PL                  ^,          un&        R #   \T         d    \V        '       d   \Y        4        h i ; i)NrŸ  r  rp  r  r  r  Fré  z[ r³   z] rŠ  rÂ  rt  rm  r   )-r@   r£   rw  rá  râ  r,  r   rH  rI  rõ  Ú
pathfactorr|  ró  Útrace_device_STROKE_PATHrŽ  r�  r;  rú  r‡  rr  r£  Ú	start_capÚdash_capÚend_caprœ  ÚlinejoinÚdash_lenr0
  rÙ  rS  Úfloats_getitemÚ	dash_listr¶   Ú
dash_phaserp  r�  r‘  rF  rm  rc  ra	  rD  rk   r  r{   )r¿  r  r   r“  ró  rð  rp  rñ  rJ  r—  rg  r¸   s   &&&&&&&&&   r'   Újm_lineart_stroke_pathrÄ  ©Z  sr  € ð.Ü˜3¤§¡×0Ò0Ð0Ð0ÜŸš¤3 s§u¡u¨s¯u©u¥}°s·u±u¸s¿u¹uµ}Õ'DÓ#EÓFˆŒÜ—.’. #Ó&ˆŒÜ0ˆŒä˜ 4Ô(Ø�<‰<ÒÙØ&)ˆ�‰”lÑ#Ø*/�‰Ð&Ñ'Ü!1°:Ó!Eˆ�‰�gÑØ'*§~¡~¸×8HÑ8HÕ'Hˆ�‰”mÑ$à× Ñ Ø—‘Ø—‘ð$ˆ�‰�iÑ ô
 %*¨&¯/©/Ó$:ˆ�‰�jÑ!Ø˜cŸl™lÔ*à(-ˆC�L‰L˜Ñ%ð �?�?ˆ?Ü×&Ò&¨Ó,ˆDÜ×"Ò" D¨$Ô/Ü˜FŸO™OÖ,�ô ×,Ò,¨f×.>Ñ.>ÀÓB�Ü×&Ò&¨´¸3¿>¹>ÈEÕ;QÓ1RÐ0SÐSTÐ.UÖVñ	 -ô
 ×"Ò" D¨B¬y¸¿¹È&×J[ÑJ[Õ9[Ó/\Ð.]Ð*^Ô_Ø&*�L‰L˜(Ò#à&,ˆC�L‰L˜(Ñ#Ü&5°c·l±lÓ&Cˆ�‰”lÑ#Ø #§¡ˆ�‰�WÑØ!$§¡ˆ�‰�gÑØ�9�9ˆ9Ø%(§Y¡YˆC�L‰L˜'Ñ"Ü˜ÔØ�	Š	�Q��	øäô ßÓ¤NÔ$4Øðús    ‚CM ÃC*M Æ2F!M ÍM8Í,M8c                ó6  € V P                   '       g   R # \        P                  ! V4      V n        \        V n        \        WV4       V P                  f   R # RV P                  \        &   \        V4      V P                  R&   RV P                  9  d   RV P                  R&   \        \        V 4      4      V P                  R&   V P                  V P                  R&   V P                  V P                  R&   \        V 4       V ;P                  ^,          un        R # )Nr  rr  r  Frp  r   rt  )rc  r£   r|  ró  Útrace_device_CLIP_PATHrŽ  r�  r;  rú  rè   rp  Úcompute_scissorra	  rF  rD  )r¿  r  r   rr  ró  rp  s   &&&&&&r'   Újm_lineart_clip_pathrÈ  ÜZ  sÇ   € Ø�9�9ˆ9ÙÜ�nŠn˜SÓ!€C„GÜ*€C„MÜ�C˜dÔ#Ø
‡|�|ÒÙØ"(€C‡L�L”,ÑÜ $ X£€C‡L�L�*ÑØ˜#Ÿ,™,Ô&à$)ˆ�‰�[Ñ!ä-¬o¸cÓ.BÓC€C‡L�L�ÑØŸI™I€C‡L�L�ÑØŸN™N€C‡L�L�ÑÜ�CÔØ‡I‚I�…N‡Ir)   c                ó  € V P                   '       g   R # \        P                  ! V4      V n        \        V n        \        WV4       V P                  f   R # RV P                  R&   R V P                  R&   RV P                  9  d   RV P                  R&   \        \        V 4      4      V P                  R&   V P                  V P                  R&   V P                  V P                  R&   \        V 4       V ;P                  ^,          un
        R # )	Nr  rú  rr  r  Frp  r   rt  )rc  r£   r|  ró  Útrace_device_CLIP_STROKE_PATHrŽ  r�  r;  rp  rÇ  ra	  rF  rD  )r¿  r  r   r“  ró  rp  s   &&&&&&r'   Újm_lineart_clip_stroke_pathrË  ñZ  sÃ   € Ø�9�9ˆ9ÙÜ�nŠn˜SÓ!€C„GÜ1€C„MÜ�C˜dÔ#Ø
‡|�|ÒÙØ#)€C‡L�L�Ñ Ø#€C‡L�L�ÑØ˜#Ÿ,™,Ô&à$)ˆ�‰�[Ñ!Ü-¬o¸cÓ.BÓC€C‡L�L�ÑØŸI™I€C‡L�L�ÑØŸN™N€C‡L�L�ÑÜ�CÔØ‡I‚I�…N‡Ir)   c                óv   € V P                   '       g   R # \        V 4       V ;P                  ^,          un        R # r+   ©rc  rÇ  ra	  )r¿  r  r   r“  ró  rp  s   &&&&&&r'   Újm_lineart_clip_stroke_textrÎ  [  ó#   € Ø�9�9ˆ9ÙÜ�CÔØ‡I‚I�…N‡Ir)   c                óv   € V P                   '       g   R # \        V 4       V ;P                  ^,          un        R # r+   rÍ  )r¿  r  r   ró  rp  s   &&&&&r'   Újm_lineart_clip_textrÑ  [  rÏ  r)   c                óv   € V P                   '       g   R # \        V 4       V ;P                  ^,          un        R # r+   rÍ  )r¿  r  rî  ró  rp  s   &&&&&r'   Újm_lineart_clip_image_maskrÓ  [  rÏ  r)   c                óÚ   € V P                   '       d   V P                  '       g   R # \        V P                  4      pV^8  d   R # V P                  R V ;P                  ^,          un        R # )Nr¨  )rc  r‰  r9   ra	  )r¿  r  rÆ  s   && r'   Újm_lineart_pop_cliprÕ  [  sG   € Ø�9�9ˆ9˜CŸLŸL˜LÙÜˆs�|‰|Ó€DØˆa„xÙØ�‰�RÐØ‡I‚I�…N‡Ir)   c                ó4   € V'       d	   W n         R# R V n         R# ©r`   N©rF  )r¿  r  r   s   &&&r'   Újm_lineart_begin_layerrÙ  $[  s   € ßØŽàˆŽr)   c                ó   € R V n         R# r×  rØ  rŠ  s   &&r'   Újm_lineart_end_layerrÛ  +[  s	   € Ø€C†Nr)   c                ó*  € V P                   '       g   R # RRR\        V4      R\        V4      R\        V4      R\        P                  ! V4      RVRV P
                  R	V P                  /V n        \        V 4       V ;P
                  ^,          un        R # )
NrÈ   rx  rü   ÚisolatedÚknockoutrŽ  r]  r   rt  )	rc  rp  rè   r£   Úfz_blendmode_namera	  rF  r;  rD  )r¿  r  r6  rô  rÝ  rÞ  rŽ  rñ  s   &&&&&&&&r'   Újm_lineart_begin_grouprà  /[  sv   € à�9�9ˆ9Ùà�GØ”O DÓ)Øœ˜X›Øœ˜X›Øœ×0Ò0°Ó;Ø�uØ�S—Y‘YØ�S—^‘^ð	€C„Lô �CÔØ‡I‚I�…N‡Ir)   c                ó`   € V P                   '       g   R # V ;P                  ^,          un        R # r+   )rc  ra	  rŠ  s   &&r'   Újm_lineart_end_grouprâ  A[  s   € à�9�9ˆ9ÙØ‡I‚I�…N‡Ir)   c	           
     ój   € \        W^WEWgV P                  4       V ;P                  ^,          un        R# r›  r–  )	r¿  r  r   r“  ró  rð  rp  rñ  rJ  s	   &&&&&&&&&r'   Újm_lineart_stroke_texträ  H[  s#   € Ü�#˜Q °¸s¿y¹yÔIØ‡I‚I�…N‡Ir)   c	                ó>   € VP                   V n         \        W4       R # r+   )rr  Újm_increase_seqno)	r¿  r  r   r“  rî  rð  rp  rñ  rJ  s	   &&&&&&&&&r'   Újm_dev_linewidthrç  M[  s   € Ø×$Ñ$€C„MÜ�sÖ r)   c                ó†   €  V ;P                   ^,          un         R#   \         d    \        '       d   \        4        h i ; ir›  )rm  rk   r  r{   )r¿  r  Úvargss   &&*r'   ræ  ræ  R[  s1   € ðØ�	Š	�Q��	øÜô ßÓ¤NÔ$4Øðús   ‚ �A ´A c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rJ  rº   rK  rs  r  r,   )rþ  s   "r'   rÿ  rÿ  Z[  s!   € ÷ +ñ +�Zð + Zð +°Fñ +r)   c                óV   € \        V 4      p \        V4      p\        \        W4      4      # )aM  Compute matrix which maps line from p1 to p2 to the x-axis, such that it
maintains its length and p1 * matrix = Point(0, 0).

Args:
    p1, p2: point_like
Returns:
    Matrix which maps p1 to Point(0, 0) and p2 to a point on the x axis at
    the same distance to Point(0,0). Will always combine a rotation and a
    transformation.
)r)  r  rÔ  )rJ  rK  s   &&r'   rp  rp  Z[  s&   € ô 
ˆr‹€BÜ	ˆr‹€BÜ”/ "Ó)Ó*Ð*r)   c                  ó.   a € ] tR tRtV 3R ltR tRtV ;t# )ÚJM_image_reporter_Filterij[  c                	óD   <€ \         SV `  4        V P                  4        R # r+   r­  r¯  s   &€r'   r‘   Ú!JM_image_reporter_Filter.__init__k[  s   ø€ Ü‰ÑÔØ×%Ñ%Ö'r)   c                	ó¨   € \        V\        P                  4      '       g   Q h\        V \        P                  ! V4      W44       \
        '       d   ^ # R# rŒ   )r@   r£   rw  r�  r|  r¢   )r&   r  ró  r   rî  s   &&&&&r'   r²  Ú%JM_image_reporter_Filter.image_filtero[  s=   € Ü˜#œuŸ™×/Ò/Ð/Ð/Ü˜œeŸnšn¨SÓ1°4Ô?ß‹;ñ ñ r)   r,   r´  rµ  s   @r'   rí  rí  j[  s   ø† õ(÷ð r)   rí  c                  óP   a € ] tR tRtV 3R lt]t]t]	t
]t]t]t]t]t]t]tRtV ;t# )rB  ix[  c                	óŠ  <€ \         SV `  4        Wn        W n        R V n        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        R# r×  )rÇ   r‘   r“  rW  rF  Úuse_virtual_fill_pathÚuse_virtual_stroke_pathÚuse_virtual_fill_textÚuse_virtual_stroke_textÚuse_virtual_ignore_textÚuse_virtual_fill_shadeÚuse_virtual_fill_imageÚuse_virtual_fill_image_maskÚuse_virtual_begin_layerÚuse_virtual_end_layer)r&   r“  rW  r
  s   &&&€r'   r‘   Ú"JM_new_bbox_device_Device.__init__y[  s—   ø€ Ü‰ÑÔØŒØŒØˆŒØ×"Ñ"Ô$Ø×$Ñ$Ô&Ø×"Ñ"Ô$Ø×$Ñ$Ô&Ø×$Ñ$Ô&Ø×#Ñ#Ô%Ø×#Ñ#Ô%Ø×(Ñ(Ô*à×$Ñ$Ô&Ø×"Ñ"Ö$r)   )rF  rW  r“  )r/   r0   r1   r2   r‘   rÙ  Úbegin_layerrÛ  Ú	end_layerrS  Ú	fill_pathrc  Ústroke_pathr_  Ú	fill_textr[  Ústroke_textra  Úignore_textrW  Ú
fill_shaderK  Ú
fill_imagerN  Úfill_image_maskr3   r  rµ  s   @r'   rB  rB  x[  s<   ø† õ%ð" )€KØ$€Ià!€IØ%€KØ!€IØ%€KØ%€KØ#€JØ#€JØ-†Or)   rB  c                  ó@   a € ] tR tRtV 3R ltR tR tR tR tRt	V ;t
# )rJ  i—[  c                	ó°   <€ \         SV `  4        Wn        V P                  4        V P	                  4        V P                  4        V P                  4        R # r+   )rÇ   r‘   r¬  Úuse_virtual_writeÚuse_virtual_seekÚuse_virtual_tellÚuse_virtual_truncate)r&   r¬  r
  s   &&€r'   r‘   Ú%JM_new_output_fileptr_Output.__init__˜[  sC   ø€ Ü‰ÑÔØŒØ×ÑÔ Ø×ÑÔØ×ÑÔØ×!Ñ!Ö#r)   c                	ó8   € V P                   P                  W#4      # r+   )r¬  rQ
  )r&   r  r[  Úwhences   &&&&r'   rQ
  Ú!JM_new_output_fileptr_Output.seek [  s   € Ø�x‰x�}‰}˜fÓ-Ð-r)   c                	ó:   € V P                   P                  4       pV# r+   )r¬  Útell)r&   r  rI   s   && r'   r  Ú!JM_new_output_fileptr_Output.tell£[  s   € Ø�h‰h�m‰m‹oˆØˆ
r)   c                	ó6   € V P                   P                  4       # r+   )r¬  Útruncate)r&   r  s   &&r'   r  Ú%JM_new_output_fileptr_Output.truncate§[  s   € Ø�x‰x× Ñ Ó"Ð"r)   c                	ód   € \         P                  ! W#4      pV P                  P                  V4      # r+   )r£   Úraw_to_python_bytesr¬  r   )r&   r  Údata_rawÚdata_lengthrË  s   &&&& r'   r   Ú"JM_new_output_fileptr_Output.writeª[  s%   € Ü×(Ò(¨Ó?ˆØ�x‰x�~‰~˜dÓ#Ð#r)   rK  )r/   r0   r1   r2   r‘   rQ
  r  r  r   r3   r  rµ  s   @r'   rJ  rJ  —[  s!   ø† õ$ò.òò#÷$ð $r)   rJ  c                ód  € V P                   f   \        4       V n         \        V P                   4      pV^ 8”  dG   V P                   V^,
          ,          p\        V4      p\        P
                  ! W0P                  4      pMV P                  pV P                   P                  \        V4      4       V# )zg
Every scissor of a clip is a sub rectangle of the preceding clip scissor
if the clip level is larger.
)	r‰  r´   r9   r  r£   r'  r�  ro   rp  )r¿  Únum_scissorsÚlast_scissorrp  s   &   r'   rÇ  rÇ  ¯[  s‚   € ð
 ‡|�|ÒÜ“vˆŒÜ�s—|‘|Ó$€LØ�aÔØ—|‘| L°¥NÕ3ˆÜ! ,Ó/ˆÜ×)Ò)¨'·<±<Ó@‰à—,‘,ˆØ‡L�L×Ñœ¨Ó0Ô1Ø€Nr)   c                  ót   a € ] tR tRtRtV 3R lt]t]t	]
t]t]t]t]t]t]t]t]t]t]t]t]t]t ]!t"]#t$Rt%V ;t&# )r^  iÁ[  z7
LINEART device for Python method Page.get_cdrawings()
c                	ó4  <€ \         SV `  4        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                   V P                   V P                   V P                  4        V P                  4        V P                  4        V P                  4        V P!                  4        V P#                  4        V P%                  4        V P'                  4        Wn        ^ V n        ^ V n        W n        W0n        RV n        RV n        RV n        ^ V n        \:        P<                  ! 4       V n        \:        P<                  ! 4       V n         \:        P<                  ! 4       V n!        \:        PD                  ! 4       V n#        \:        PD                  ! 4       V n$        ^ V n%        \:        PL                  ! 4       V n        ^ V n'        ^ V n(        ^ V n)        R# ©rx   Nr`   )*rÇ   r‘   rô  rõ  Úuse_virtual_clip_pathÚuse_virtual_clip_image_maskÚuse_virtual_clip_stroke_pathÚuse_virtual_clip_stroke_textÚuse_virtual_clip_textrö  r÷  rø  rù  rú  rû  Úuse_virtual_pop_clipÚuse_virtual_begin_groupÚuse_virtual_end_grouprü  rý  rF	  rm  ra	  rc  rb  r‰  rF  r�  rr  r£   r|  r_  ró  ry  rg  r¢  r£  r¡  rq  rº  re  rŽ  )r&   rF	  rc  rb  r
  s   &&&&€r'   r‘   Ú%JM_new_lineart_device_Device.__init__Æ[  s…  ø€ ä‰ÑÔð 	×"Ñ"Ô$Ø×$Ñ$Ô&Ø×"Ñ"Ô$Ø×(Ñ(Ô*Ø×)Ñ)Ô+Ø×)Ñ)Ô+Ø×"Ñ"Ô$à×"Ò"Ø×$Ò$Ø×$Ò$à×#Ñ#Ô%Ø×#Ñ#Ô%Ø×(Ñ(Ô*à×!Ñ!Ô#à×$Ñ$Ô&Ø×"Ñ"Ô$à×$Ñ$Ô&Ø×"Ñ"Ô$àŒØˆŒ
ØˆŒ
ØŒ
ØŒàˆŒØˆŒØˆŒàˆŒÜ—>’>Ó#ˆŒÜ—>’>Ó#ˆŒÜ—>’>Ó#ˆŒÜŸš›ˆŒÜŸ-š-›/ˆŒØˆŒÜŸš›ˆŒØˆŒØˆŒØˆŽr)   )rc  ró  ra	  r£  r¡  r¢  rF  re  rr  rb  rF	  rŽ  rº  r�  r_  ry  r‰  rm  )'r/   r0   r1   r2   rc  r‘   r’  r  rÄ  r  rÓ  Úclip_image_maskrÈ  Ú	clip_pathrË  Úclip_stroke_pathrÑ  Ú	clip_textrÎ  Úclip_stroke_textræ  r  r  r  r  r  r  rÕ  Úpop_cliprà  Úbegin_grouprâ  Ú	end_grouprÙ  rÿ  rÛ  r   r3   r  rµ  s   @r'   r^  r^  Á[  sl   ø† ñõ1ðj /€IØ0€KØ4€OØ.€IØ5ÐØ.€IØ5Ðà+€IØ+€KØ+€Kà+€JØ+€JØ+€Oà-€Hà0€KØ.€Ià0€KØ.†Ir)   r^  c                  óT   a € ] tR tRtRtV 3R lt]t]t	]
t]t]t]t]t]t]t]tRtV ;t# )r  i\  z:
Trace TEXT device for Python method Page.get_texttrace()
c                	ó<  <€ \         SV `  4        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        V P                  4        Wn        ^ V n        ^ V n        ^ V n        RV n        ^ V n        \#        4       V n        \'        4       V n        ^ V n        \,        P.                  ! 4       V n        \,        P.                  ! 4       V n        \,        P.                  ! 4       V n        \,        P6                  ! 4       V n        \,        P:                  ! 4       V n        ^ V n        ^ V n         ^ V n!        RV n"        R# r#  )#rÇ   r‘   rô  rõ  rö  r÷  rø  rù  rú  rû  rü  rý  rF	  rm  ra	  rc  rb  r7   r;  r´   r‰  rr  r£   r|  r_  ró  ry  rg  r¢  rq  r�  rº  re  rŽ  rF  )r&   rF	  r
  s   &&€r'   r‘   Ú JM_new_texttrace_device.__init__\  s'  ø€ Ü‰ÑÔØ×"Ñ"Ô$Ø×$Ñ$Ô&Ø×"Ñ"Ô$Ø×$Ñ$Ô&Ø×$Ñ$Ô&Ø×#Ñ#Ô%Ø×#Ñ#Ô%Ø×(Ñ(Ô*à×$Ñ$Ô&Ø×"Ñ"Ô$àŒàˆŒ
ØˆŒ
ØˆŒ
ØˆŒàˆŒ
ä›ˆŒÜ›ˆŒØˆŒÜ—>’>Ó#ˆŒÜ—>’>Ó#ˆŒÜ—>’>Ó#ˆŒÜŸš›ˆŒÜŸš›ˆŒØˆŒØˆŒØˆŒØˆŽr)   )rc  ró  ra	  r¢  rF  re  rr  rb  rF	  rŽ  r;  rº  r�  r_  ry  r‰  rm  )r/   r0   r1   r2   rc  r‘   ræ  r  rç  r  r”  r  rä  r  r—  r  r  r  r  rÙ  rÿ  rÛ  r   r3   r  rµ  s   @r'   r  r  \  sB   ø† ñõ"ðH "€IØ"€KØ$€IØ(€KØ(€KØ"€JØ"€JØ'€Oà(€KØ$†Ir)   r  c               ó    € V ^8„  d   QhRRRR/# )r†  rg  ræ  rj   rù  r,   )rþ  s   "r'   rÿ  rÿ  J\  s   € ÷ 1ñ 1˜ð 1 vñ 1r)   c                ó  € V P                  4       p^ RIpVP                  R4      pVP                  RV R24      pVP                  R4      pRpRV R2pVR	8X  d   Tp	V	# VR
8X  d   Tp	V	# VR8X  d   Tp	V	# VR8X  d   Tp	V	# Tp	V	# )rx   Na^  
            <!DOCTYPE html>
            <html>
            <head>
            <style>
            body{background-color:gray}
            div{position:relative;background-color:white;margin:1em auto}
            p{position:absolute;margin:0}
            img{position:absolute}
            </style>
            </head>
            <body>
            z?
            <?xml version="1.0"?>
            <document name="z">
            aÏ  
            <?xml version="1.0"?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <style>
            body{background-color:gray}
            div{background-color:white;margin:1em;padding:1em}
            p{white-space:pre-wrap}
            </style>
            </head>
            <body>
            r`   z{"document": "z", "pages": [
r   r…  rÏ  Úxhtml)rç  ÚtextwrapÚdedent)
rg  rj   rÃ  r;  r   rÏ  r:  r   r…  r$  s
   &&        r'   ÚConversionHeaderr=  J\  sÏ   € Ø	�‰‹	€AÛØ�?‰?ð ó €Dð �/‰/ð à%˜Jð 'ðó €Cð
 �O‰Oð ó €Eð €DØ˜X˜J oÐ6€DØˆF„{Øˆð €Hð 
ˆfŒØˆð €Hð 
ˆeŒØˆð €Hð 
ˆgŒØˆð €Hð ˆà€Hr)   c               ó   € V ^8„  d   QhRR/# )r†  rg  ræ  r,   )rþ  s   "r'   rÿ  rÿ  ~\  s   € ÷ ñ ˜ñ r)   c                ó–   € V P                  4       pR pRpRpRpTpVR8X  d   TpV# VR8X  d   TpV# VR8X  d   TpV# VR8X  d   TpV# TpV# )r`   z]
}z</body>
</html>
z</document>
r   r…  rÏ  r:  )rç  )rg  rÃ  r   r…  r   rÏ  r:  r$  s   &       r'   ÚConversionTrailerr@  ~\  s„   € Ø	�‰‹	€AØ€DØ€DØ€DØ
€CØ€EØˆF„{Øˆð €Hð 
ˆfŒØˆð €Hð 
ˆeŒØˆð €Hð 
ˆgŒØˆð €Hð ˆà€Hr)   c               ó    € V ^8„  d   QhRRRR/# )r†  rÖ   rœ  rs  r6   r,   )rþ  s   "r'   rÿ  rÿ  “\  s   € ÷ ñ ˜6ð  cñ r)   c                ó²   € \        V 4       V P                  P                  '       g   \        R4      hV P                  pV^ 8w  d   V P                  ^ 4       V# )zƒPrepare for annotation insertion on the page.

Returns:
    Old page rotation value. Temporarily sets rotation to 0 when required.
r�  )ro  rì   rƒ  rÃ   ru  rî  )rÖ   r5  s   & r'   r3  r3  “\  sL   € ô �ÔØ�;‰;××ÐÜ˜Ó%Ð%Ø—=‘=€LØ�qÔØ×Ñ˜!ÔØÐr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rœ  rß   z'Annot'rs  r  r,   )rþ  s   "r'   rÿ  rÿ  ¢\  s!   € ÷ 
ñ 
˜Fð 
¨7ð 
°tñ 
r)   c                ó®   € \        V \        4      '       g   Q h\        V\        4      '       g   Q hWn        WP                  \        V4      &   RVn        R# )zmClean up after annotation insertion.

Set ownership flag and store annotation in page annotation dictionary.
TN)r@   rÒ   râ   rì   rX  rY  rõ   )rÖ   rß   s   &&r'   r4  r4  ¢\  sH   € ô �tœT×"Ò"Ð"Ð"Ü�uœe×$Ò$Ð$Ð$Ø„LØ"'×Ñ”R˜“YÑØ€E†Mr)   c                óp  € \        V \        4      '       g   Q hV ^ 8X  g   V R8X  g   V R8X  d   \        R4      # V \        R4      8X  g!   V \        R4      8X  g   V \        R4      8X  d   \        R4      # V \        R4      8¼  d3   V \        R4      8:  d#   V \        R4      ,
          \        R	4      ,           # V # )
é    i(   i)   r³   Úr#   Ú	rÓ  ÚZr   )r@   r6   r:  rß  s   &r'   ÚcanonrJ  ¯\  sŒ   € Ü�aœ×ÒÐÐð 	ˆD„y�A˜”K 1¨¤;Ü�3‹xˆØŒC�‹I„~˜œc $›iœ¨1´°D³	¬>Ü�3‹xˆØŒC�‹H„}˜œc #›hœØ”3�s“8�|œc #›hÕ&Ð&Ø€Hr)   c                ó~   € \        V \        4      '       g   Q h\        P                  ! V 4      w  r\	        V4      pW3# r+   )r@   ræ  r£   rÃ  rJ  )rŸ  rG   rõ  s   &  r'   ÚchartocanonrL  ¼\  s7   € Ü�aœ×ÒÐÐÜ×Ò˜qÓ!�D€AÜˆa‹€AØˆ4€Kr)   c                ó>  € \         P                  ! V \        R 4      4      p\         P                  ! \         P                  ! V\        R4      4      \        R4      4      '       d3   \	        \         P                  ! V\        R4      4      V4      '       g   ^ # \         P                  ! V \        R4      4      pVP
                  '       g    ^# \         P                  ! V4      '       d   \	        WC4      # \        \         P                  ! V^ 4      VV4      '       g   ^ # ^# )rÓ  r�
  r  rÔ  rÒ  )	r£   r  r  rö  Ústring_in_names_listrÌ   rÂ  Údest_is_valid_pager¬  )r±  rv  Úpage_object_numsÚ
names_listr²  s   &&&& r'   Údest_is_validrR  Ã\  sã   € Ü×Ò˜Aœx¨›}Ó-€Aä×ÒÜ×"Ò" A¤x°£}Ó5Ü˜Ó ÷ò ô )Ü×"Ò" A¤x°£}Ó5Ø÷ò ñ
 ä×Ò˜Aœx¨Ó/Ó0€AØ�<�<ˆ<Øñ ô 
×	Ò	˜a×	 Ò	 Ü# QÓ3Ð3ÜÜ×Ò  AÓ&ØØ÷ò ñ
 Ùr)   c                óˆ   € \         P                  ! V 4      pV^ 8X  d   ^ # \        V4       F  pW,          V8X  g   K   ^# 	  ^ # ru  )r£   r  rS  )r  rP  r
  Únumrg  s   &&&  r'   rO  rO  ß\  s>   € Ü
×
Ò
˜3Ó
€Cà
ˆa„xÙÜ�9ÖˆØÕ #Ö%Úñ ñ r)   c                óª   € \        V \        4      '       g   Q h\        \        V 4      4       F"  p\	        WR  V4      pVf   K  W2,          pW#3u # 	  R# )Nr<  )r@   ræ  rS  r9   Úmatch_string)rŸ  r  rg  rÈ  s   &&  r'   r}  r}  ê\  sR   € Ü�aœ×ÒÐÐÜ”3�q“6Ž]ˆÜ˜1˜R˜5 &Ó)ˆØŒ?Ø�HˆCØ�6ŠMñ	 ð
 Ðr)   c               ó   € V ^8„  d   QhRR/# rÙ  r,   )rþ  s   "r'   rÿ  rÿ  ô\  s   € ÷ ñ �Sñ r)   c                 óÒ  € ^ RI p \        \        V P                  R,          4      4      P	                  ^R4      p\        \        V P                  ^<,          4      ^<,          4      P	                  ^R4      pV RV R2pV P
                  ! RV P                  ! 4       4      pV P                  ^ 8”  d   VRV,           ,          pV# V P                  ^ 8  d   VRV,           ,          pV#  V# )z
"Now" timestamp in PDF Format
Ni  r   rí   zD:%Y%m%d%H%M%SrN  rG  )Útimeræ  r,  ÚaltzoneÚrjustÚstrftimeÚ	localtime)rY  r   rI  ÚtzÚtstamps        r'   rÐ  rÐ  ô\  sÍ   € ó ÜŒC�—‘ Õ$Ó%Ó&×,Ñ,¨Q°Ó4€AÜŒS�—‘ Õ#Ó$ rÕ)Ó+×1Ñ1°!°SÓ9€AØˆ3ˆa�ˆs�!ˆ€BØ�]Š]Ð+¨T¯^ª^Ó-=Ó>€FØ‡|�|�aÔØ�#˜•(Õˆð
 €Mð	 
�‰˜Ô	Ø�#˜•(Õˆð €Mð 	Ø€Mr)   c                  ó    € ] tR tRtRtR tRtR# )ÚElementPositioni]  zDConvert a dictionary with element position information to an object.c                	ó   € R # r+   r,   r-   s   &r'   r‘   ÚElementPosition.__init__	]  râ  r)   r,   Nr�  r,   r)   r'   ra  ra  ]  s
   † ÙNör)   ra  c                 ó   € \        4       # r+   )ra  r,   r)   r'   Úmake_story_elposre  ]  s   € ÜÓÐr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rÇ  rº   r‡  r  r¼   rs  r´   r,   )rþ  s   "r'   rÿ  rÿ  ]  s0   € ÷ Fñ F¨ð FÀð FÐYbð FÐmqñ Fr)   c                ó   € Vf   V P                   p\        V4      pVf   VP                  pVf   VP                  pVP                  Vn        VP                  Vn        VP                  '       g   VP                  '       d   . # V P                  R^ VR7      R,          p. pV F”  p\        VR,          4      pVP                  '       g   VP                  '       d   K;  VR,           FL  p\        VR,          4      pVP                  '       g   VP                  '       d   K;  VP                  V4       KN  	  K–  	  V. 8X  d   V# VP                  R R7       VP                  ^ 4      p	V	P
                  VP                  ,
          RV	P                  ,          8:  dc   \        VP                  V	P
                  V	P                  4      p
V
P                  '       g%   V
P                  '       g   VP                  ^ V
4       MVP                  ^ V	4       V. 8X  d   V# VP                  4       pVP                  VP                  ,
          RVP                  ,          8:  dc   \        VP                  VP                  VP                  4      p
V
P                  '       g$   V
P                  '       g   VP                  V
4       V# VP                  V4       V# )	a—  Return rectangles of text lines between two points.

Notes:
    The default of 'start' is top-left of 'clip'. The default of 'stop'
    is bottom-reight of 'clip'.

Args:
    start: start point_like
    stop: end point_like, must be 'below' start
    clip: consider this rect_like only, default is page rectangle
Returns:
    List of line bbox intersections with the area established by the
    parameters.
r7   )rÐ  r  r�  r6  r[  c                ó   € V P                   # r+   )r¶  r�  s   &r'   rê
  Ú)get_highlight_selection.<locals>.<lambda>@]  s   €  §¢r)   r  r  )rü   r+  r*  r+  rj  r·  r¶  rº  r¹  r  ro   rÂ  rÈ  r3  ri  Úinsert)rÖ   rÇ  r‡  r  r�  r[  rI  r6  rs   Úbboxfr$  Úbboxls   &&&&        r'   rL  rL  ]  s  € ð  ‚|Ø�y‰yˆÜ�‹:€DØ‚}Ø—‘ˆØ‚|Ø�w‰wˆØ�g‰g€D„GØ�f‰f€D„GØ‡}‡}€}˜×(×(Ð(Øˆ	ð �]‰]Ø�a˜dð ó àõ€Fð €EÛˆÜ�A�f•I‹ˆØ××Ð˜tŸ}Ÿ}˜}ÙØ�g—J�JˆDÜ˜˜V�Ó%ˆDØ××Ð 4§=§= =ÙØ�L‰L˜Öó	 ñ	 ð �„{Øˆà	‡J�JÑ'€JÔ(ð �I‰I�a‹L€EØ‡x�x�%—'‘'Õ˜S 5§<¡<Õ/Ô/Ü�—‘˜%Ÿ(™( E§H¡HÓ-ˆØ—
—
�
˜aŸmŸm˜mØ�L‰L˜˜AÔøà�‰�Q˜Ôà�„{Øˆð �I‰I‹K€EØ‡v�v�—‘Õ˜C %§,¡,Õ.Ô.Ü�—‘˜4Ÿ6™6 5§8¡8Ó,ˆØ—
—
�
˜aŸmŸm˜mØ�L‰L˜ŒOð €Lð 	�‰�UÔà€Lr)   c               ó    € V ^8„  d   QhRRRR/# )r†  r   ræ  rs  r6   r,   )rþ  s   "r'   rÿ  rÿ  Z]  s   € ÷ ñ  ð ¨ñ r)   c                ól   € ^ RI p \        VP                  V 4      4      pV#   \         d    Rp T# i ; i)z+Convenience function accessing unicodedata.NrT  )Úunicodedatar:  Úlookuprk   )r   ro  rg  s   &  r'   rh  rh  Z]  sA   € ãðÜ�+×$Ñ$ TÓ*Ó+ˆð €Jøô ô Ø‰Ø€Jðúó   †" ¢3²3c                óð   € VP                   VP                   ,
          pVP                  VP                  ,
          p\        P                  ! W0P                   ,          W@P                  ,          ,           4      # r+   ©ri  rj  r£   Úfz_abs©r¶  r   rI  ÚdxÚdys   &&&  r'   Úhdistrx  d]  óD   € Ø	
�‰ˆq�s‰s�€BØ	
�‰ˆq�s‰s�€BÜ�<Š<˜ŸU™U�
 R¯%©%¥ZÕ/Ó0Ð0r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r†  rü   r¼   rØ  r6   Úrowsrs  r´   r,   )rþ  s   "r'   rÿ  rÿ  j]  s(   € ÷ (ñ (�Yð (°Cð (À#ð (ÈTñ (r)   c                ó`  € \        V 4      p V P                  '       g   V P                  '       d   \        R4      hV P                  pV P
                  V,          pV P                  V,          pV^ V^ 3p^ V^ V3p\        W3P                  V,           VP                  V,           4      pV.p	\        ^V4       F  p
W†,          pV	P                  V4       K  	  V	.p\        ^V4       FE  p
Wº^,
          ,          p	. pV	 F  pVP                  W‡,           4       K  	  VP                  V4       KG  	  V# )a^  Return a list of (rows x cols) equal sized rectangles.

Notes:
    A utility to fill a given area with table cells of equal size.
Args:
    rect: rect_like to use as the table area
    rows: number of rows
    cols: number of columns
Returns:
    A list with <rows> items, where each item is a list of <cols>
    PyMuPDF Rect objects of equal sizes.
r=  )r+  rº  r¹  rÃ   r*  r3  rˆ  ri  rj  rS  ro   )rü   rØ  r{  r*  r3  rˆ  Údelta_hÚdelta_vr$  Úrowrg  ÚrectsÚnrows   &&&          r'   Ú
make_tabler‚  j]  s	  € ô �‹:€DØ‡}‡}€}˜×(×(Ð(ÜÐ<Ó=Ð=Ø	�‰€Bà�[‰[˜4Õ€FØ�J‰J˜Õ€EØ�a˜ Ð"€GØ�&˜!˜VÐ$€GäˆR—‘˜•˜rŸt™t f�}Ó-€Að ˆ#€CÜ�1�dŽ^ˆØ	�ˆØ�
‰
�1Žñ ð
 ˆE€EÜ�1�dŽ^ˆØ˜•E�lˆØˆÛˆAØ�K‰K˜�Ö$ñ à�‰�TÖñ ð €Lr)   c                ó   € \         P                  ! V P                  4      p\         P                  ! V4      p\         P                  ! R4      p\         P
                  ! \         P                  ! V4      \        R4      \        R4      4      p\         P                  ! WC4      p\         P                  ! V4      '       g   \         P                  ! WC^4      p\         P                  ! V4      p^ p\         P                  ! V4      p\        V4       F7  p	\         P                  ! \         P                  ! WY4      4      p
WŠ8X  g   K5  ^p M	  V'       g/   \         P                  ! V\         P                   ! W(^ 4      4       R# R# )zD
Ensure that widgets with /AA/C JavaScript are in array AcroForm/CO
r  rà  rá  N)r£   r  rÄ   r›  rå  r   rä  r  r  rI  rX  r«  r  rS  r¬  rK  r¹  )rß   r&  ra  Ú
PDFNAME_COrŒ  r  rG   r°  r  rg  rË  s   &          r'   rÞ  rÞ  •]  s  € ô ×#Ò# E§J¡JÓ/€IÜ
×
&Ò
& yÓ
1€CÜ×#Ò# DÓ)€JÜ×ÒÜ×Ò˜cÓ"Ü�VÓÜ�ZÓ ó€Dô 
×	Ò	˜DÓ	-€BÜ×Ò˜b×!Ò!Ü×%Ò% d¸Ó:ˆÜ×Ò˜BÓ€AØ€EÜ×Ò˜IÓ&€DÜ�1ŽXˆÜ× Ò ¤×!4Ò!4°RÓ!;Ó<ˆØŽ=ØˆEÙñ	 ÷
 Ü×Ò˜R¤×!7Ò!7¸À1Ó!EÖFñ r)   rˆ  rJ  rµ  r·  r´  r¶  c                ó¨   aaa€ R oR oVVV3R lpV! 4       w  r‰r«V e   S! V 4      w  r‰Ve   S! V4      w  r«Ve   TpVe   Tp	Ve   Tp
Ve   TpW‰W«3# )a›  
Helper for initialising rectangle classes.

2022-09-02: This is quite different from PyMuPDF's util_make_rect(), which
uses `goto` in ways that don't easily translate to Python.

Returns (x0, y0, x1, y1) derived from <args>, then override with p0, p1,
x0, y0, x1, y1 if they are not None.

Accepts following forms for <args>:
    () returns all zeros.
    (top-left, bottom-right)
    (top-left, x1, y1)
    (x0, y0, bottom-right)
    (x0, y0, x1, y1)
    (rect)

Where top-left and bottom-right are (x, y) or something with .x, .y
members; rect is something with .x0, .y0, .x1, and .y1 members.

2023-11-18: we now override with p0, p1, x0, y0, x1, y1 if not None.
c                ó  € \        V \        \        34      '       d#   \        V 4      ^8X  d   V ^ ,          V ^,          3# \        V \        \
        P                  \
        P                  34      '       d   V P                  V P                  3# R# )r†  r<  )
r@   r´   rµ   r9   r)  r£   rg  r
  ri  rj  )r  s   &r'   Úget_xyÚutil_make_rect.<locals>.get_xyÈ]  sc   € Ü�sœT¤5˜M×*Ò*¬s°C«y¸A¬~Ø�q•6˜3˜q�6�>Ð!Ü�sœU¤E§M¡M´5·>±>ÐB×CÒCØ—5‘5˜#Ÿ%™%�<ÐØÐr)   c                ó   € \        V \        4      '       d   V # \        V \        4      '       d   V P                  V P                  3# \        V \
        \        \        P                  \        P                  34      '       d/   V P                  V P                  V P                  V P                  3# \        V \        \        34      '       g   V 3p V # r+   )r@   rµ   r)  ri  rj  r+  râ  r£   rq  Úfz_rectrµ  r·  r´  r¶  r´   r�  s   &r'   Ú
make_tupleÚ"util_make_rect.<locals>.make_tupleÎ]  sŒ   € Ü�qœ%× Ò ØˆHÜ�qœ%× Ò Ø—3‘3˜Ÿ™�8ˆOÜ˜œT¤5¬%¯,©,¼¿¹ÐF×GÒGØ—4‘4˜Ÿ™˜qŸt™t Q§T¡TÐ)Ð)Ü˜1œt¤U˜m×,Ò,Ø�ˆAØˆr)   c                 óî  <€ \        S4      ^ 8X  d   R# \        S4      ^8X  dä   S^ ,          p \        V \        \        34      '       d0   \        V 4      ^8X  d    V w  r. VOVO5p\        V4      ^8X  g   Q hV# \        V \        \        34      '       dK   \        V 4      ^8X  d;   V w  rEpS! V4      pS! V4      pS! V4      p. VOVOVO5p\        V4      ^8X  g   Q hV# S! V 4      p\        V4      ^8X  g   Q RV : RV: 24       hV# \        S4      ^8X  d8   S! S^ ,          4      S! S^,          4      ,           p\        V4      ^8X  g   Q hV# \        S4      ^8X  dZ   S! S^ ,          4      w  rxWx3R8w  d   WxS^,          S^,          3# S! S^,          4      w  ršWš3R8w  d   S^ ,          S^,          Wš3# M2\        S4      ^8X  d#   S^ ,          S^,          S^,          S^,          3# \	        RS 24      h)rx   zarg=z ret=rb  r¯  r<  )r9   r@   r´   rµ   rk   )r  rJ  rK  rI   r   rI  rõ  rµ  r·  r´  r¶  r  r‡  r‹  s              €€€r'   Úhandle_argsÚ#util_make_rect.<locals>.handle_argsØ]  sé  ø€ Üˆt‹9˜Œ>ØÐÜ�‹Y˜!Œ^Ø�q•'ˆCÜ˜3¤¤u ×.Ò.´3¸³9À´>Ø‘�Ø�r�h˜B‘h�Ü˜3“x 1”}Ð$�}Ø�
Ü˜3¤¤u ×.Ò.´3¸³9À´>Ø‘��aÙ˜q“M�Ù˜q“M�Ù˜q“M�Ø �q�j˜1�j˜q‘j�Ü˜3“x 1”}Ð$�}Ø�
Ù˜cÓ"ˆCÜ�s“8˜q”=Ð2 T S¡F¨&¨C©6Ð"2Ó2�=ØˆJÜ�‹Y˜!Œ^Ù˜$˜q�'Ó"¡V¨T°!­WÓ%5Õ5ˆCÜ�s“8˜q”=Ð �=ØˆJÜ�‹Y˜!Œ^Ù˜T !�WÓ%‰FˆBØˆx˜<Ô'Ø˜t A�w¨¨Q­Ð/Ð/Ù˜T !�WÓ%‰FˆBØˆx˜<Ô'Ø˜A•w  Q¥¨Ð/Ð/ð (ä�‹Y˜!Œ^Ø˜•7˜D �G T¨!¥W¨d°1­gÐ5Ð5ÜÐ.¨t¨fÐ5Ó6Ð6r)   r,   )rˆ  rJ  rµ  r·  r´  r¶  r  rŽ  Úret_x0Úret_y0Úret_x1Úret_y1r‡  r‹  s   $$$$$$j     @@r'   r£  r£  ±]  sn   ú€ ò.ò	÷"7ñF &1£]Ñ"€F�FØ	‚~©°«™˜Ø	‚~©°«™˜Ø	‚~ ˜Ø	‚~ ˜Ø	‚~ ˜Ø	‚~ ˜Ø˜6Ð)Ð)r)   c                óˆ   € \        VR V RVRVRVRVRV/ w  rxršR pV! VR4      pV! VR4      pV! V	R4      p	V! V
R4      p
WxWš3# )	rˆ  rJ  rµ  r·  r´  r¶  c                óŽ   € V'       d    \        \        P                  ! V 4      4      # \        \        P                  ! V 4      4      # r+   )r6   rá  r£  Úfloor)ri  r£  s   &&r'   ÚconvertÚ util_make_irect.<locals>.convert^  s+   € ßÜ”t—y’y “|Ó$Ð$ä”t—z’z !“}Ó%Ð%r)   FT)r£  )rˆ  rJ  rµ  r·  r´  r¶  r  r   rI  rõ  rH  r—  s   $$$$$$*     r'   rz  rz  ^  so   € Ü $ÐQ¨2ÐQ°"ÐQ¸ÐQÀÐQÀrÐQÈbÑQ�J€Aˆ!ò&ñ
 	��5Ó€AÙ��5Ó€AÙ��4Ó€AÙ��4Ó€AØ�ˆ:Ðr)   c                óR   € \        \        P                  ! \        V 4      4      4      # r+   )rS  r£   r(  r  r  s   &r'   r  r  ^  s   € ÜœE×/Ò/´ÀÓ0EÓFÓGÐGr)   c                óª   € \         '       d   \        P                  ! W4      # \        \        P
                  ! \        V 4      \        V4      4      4      # r+   )r  r   r  rp  r£   rà  r  rè  )rü   rî  s   &&r'   r  r  ^  s<   € ßƒ{Ü×(Ò(¨$Ó7Ð7Üœ5×2Ò2´?À4Ó3HÔJ[Ð\bÓJcÓdÓeÐer)   c                óf   € \        \        P                  ! \        V 4      \        V4      4      4      # r+   )rp  r£   r'  r  ©r±  r²  s   &&r'   râ  râ  ^  s-   € ÜÜ×#Ò#Ü Ó#Ü Ó#óóð r)   c                óT   € \         P                  ! \        V 4      \        V4      4      # r+   )r£   Úfz_is_point_inside_rectr+  r  )r²  r$  s   &&r'   r˜  r˜  &^  s%   € Ü×(Ò(Ü  Ó#Ü Ó"óð r)   c                óf   € \        \        P                  ! \        V 4      \	        V4      4      4      # r+   )rp  r£   r§  r  r+  )r$  r²  s   &&r'   rÜ  rÜ  ,^  s-   € ÜÜ×*Ò*Ü Ó"Ü  Ó#óóð r)   c                óZ   € \        V 4      p\        V4      p\        P                  ! W#4      # r+   )r+  r_  r£   Úfz_is_point_inside_quad)r€  rû   r²  rc  s   &&  r'   rJ  rJ  5^  s'   € Ü˜Ó€AÜ˜Ó€AÜ×(Ò(¨Ó.Ð.r)   c                óf   € \        \        P                  ! \        V 4      \	        V4      4      4      # r+   )rù  r£   rh  r+  rè  )rn  rî  s   &&r'   r6  r6  ;^  s-   € ÜÜ×$Ò$Ü  Ó'Ü! &Ó)óóð r)   c                óf   € \        \        P                  ! \        V 4      \        V4      4      4      # r+   )rp  r£   r|  r  rœ  s   &&r'   rß  rß  D^  s-   € ÜÜ×ÒÜ Ó#Ü Ó#óóð r)   c                óf   € \        \        P                  ! \        V 4      \        V4      4      4      # r+   )r{  r£   rf  rè  )r  r-  s   &&r'   r1  r1  M^  s+   € ÜÜ�OŠOÜ! "Ó%Ü! "Ó%óóð r)   c                óª  €  \'        T 4      pTP                  pY2P                  ,          TP                  TP                  ,          ,
          pT\         P"                  P$                  ) 8  g!   T\         P"                  P$                  8”  EdG   \        P                  ! 4       p^T,          pTP                  T,          Tn        TP                  ) T,          Tn        TP                  ) T,          Tn	        Y6,          Tn
        TP                  ) TP                  ,          TP                  TP                  ,          ,
          pTP                  ) TP                  ,          TP                  TP                  ,          ,
          Tn        Y5n        ^ TP                  TP                  TP                  TP                  TP                  TP                  33# R# )rx   )r™  r,   )r@   rµ   r´   r£   r|  rw  r  r   rI  rõ  rH  rh  r  rÈ   r*  r,  rö  Ú
float_infoÚepsilonrè  )rî  rI   r4  r   Údetrœ  Úrdets   &      r'   r+  r+  V^  s/  € Øô( ˜FÓ
#€CØ�‰€AØ
�e‰e�)�c—e‘e˜cŸe™e•mÕ
#€CØ
Œc�n‰n×$Ñ$Ð$Ô$¨¬c¯n©n×.DÑ.DÕ(DÜ�nŠnÓˆØ�3�wˆØ—‘˜•ˆŒØ—‘�˜•ˆŒØ—‘�˜•ˆŒØ•ˆŒØ�U‰UˆF�S—U‘U�N˜SŸU™U S§U¡U�]Õ*ˆØ—‘�˜Ÿ™• §¡¨¯©¥Õ.ˆŒØŒØ�3—5‘5˜#Ÿ%™% §¡¨¯©¨s¯u©u°c·e±eÐ<Ð<Ð<à€Lr)   c                ó
  € \         P                  ! V4      p^ p^ pV\        V 4      8  dÑ   \         P                  ! WR 4      w  rxWg,          pV\         P                  8X  d   \         P
                  ! V4      pMBV\         P                  8X  d   \         P                  ! V4      pM\         P                  ! V4      pV^ 8  d   ^·p\         P                  ! WH4      p	\         P                  ! WI^ 4      p
WZ,          pKà  WR,          pV# rŒ   )r£   r6  r9   rÃ  ÚPDF_SIMPLE_ENCODING_GREEKÚfz_iso8859_7_from_unicodeÚPDF_SIMPLE_ENCODING_CYRILLICÚfz_windows_1251_from_unicodeÚfz_windows_1252_from_unicoderï  rð  )r   rþ   rÿ   r  rÜ  r   r@  rÃ  rõ  r³  rk  rI   s   &&&&        r'   r5  r5  }^  sÑ   € Ü×#Ò# HÓ-€DØ	€AØ
€CØ
”�D“	Œ/Ü×"Ò" 4¨ :Ó.‰ˆØ�ˆØ”u×6Ñ6Ô6Ü×/Ò/°Ó2‰AØœ×;Ñ;Ô;Ü×2Ò2°1Ó5‰Aä×2Ò2°1Ó5ˆAØˆqŒ5ØˆAÜ×%Ò% dÓ.ˆÜ×#Ò# D¨QÓ/ˆØ	�ŠØ
�,€CØ€Jr)   c                óŒ  € \        V 4      p\        V4      p\        V4      p\        P                  ! \        P                  ! VP                  VP                  ,
          VP
                  VP
                  ,
          4      4      p\        P                  ! ^^ ^ ^VP                  ) VP
                  ) 4      p\        P                  ! VP                  VP
                  ) VP
                  VP                  ^ ^ 4      p\        P                  ! Wx4      p\        P                  ! W74      p\        P                  ! V4      pVP
                  # rv  )	r+  r£   ry  rÅ  ri  rj  r  rf  rh  )	rü  r€  rû   rõ  r²  rc  rŸ  r  r-  s	   &&&      r'   rw  rw  “^  sÞ   € ä˜Ó€AÜ˜Ó€AÜ˜Ó€AÜ×!Ò!¤%×"5Ò"5°a·c±c¸A¿C¹CµiÀÇÁÀqÇsÁsÅÓ"KÓL€AÜ	×	Ò	˜a  A q¨1¯3©3¨$°·±°Ó	5€BÜ	×	Ò	˜aŸc™c A§C¡C 4¨¯©¨a¯c©c°1°aÓ	8€BÜ	�Š˜Ó	 €BÜ× Ò  Ó'€AÜ×!Ò! !Ó$€AØ�3‰3€Jr)   c                ó  € \        V 4      p\        V4      p\        P                  ! \        P                  ! VP                  VP                  ,
          VP
                  VP
                  ,
          4      4      p\        P                  ! ^^ ^ ^VP                  ) VP
                  ) 4      p\        P                  ! VP                  VP
                  ) VP
                  VP                  ^ ^ 4      p\        \        P                  ! WV4      4      # )z{
Return the matrix that maps two points C, P to the x-axis such that
C -> (0,0) and the image of P have the same distance.
)	r+  r£   ry  rÅ  ri  rj  r  r{  rf  )rü  r€  rõ  r²  rŸ  r  r-  s   &&     r'   rÔ  rÔ  ¡^  sµ   € ô
 	˜Ó€AÜ˜Ó€Aô 	×!Ò!¤%×"5Ò"5°a·c±c¸A¿C¹CµiÀÇÁÀqÇsÁsÅÓ"KÓL€Aä	×	Ò	˜a  A q¨1¯3©3¨$°·±°Ó	5€BÜ	×	Ò	˜aŸc™c A§C¡C 4¨¯©¨a¯c©c°1°aÓ	8€BÜœUŸ_š_¨RÓ4Ó5Ð5r)   c                óÞ  € ^ p^ pTp\        WR 4      w  rVW%,          p\        WR 4      w  rxW7,          pWh8X  dª   TpV\        R4      8X  d,    \        WR 4      w  rVW%,          pV\        R4      8w  g   K*  M\        WR 4      w  rVW%,          pV\        R4      8X  d-    \        WR 4      w  rxW7,          pV\        R4      8w  g   K*  K–  \        WR 4      w  rxW7,          pK¯  V^ 8w  d   R# T# )rx   Nr³   )rL  r:  )	Úh0rN  r"  rG   rh  r}  ÚhcÚdelta_nÚncs	   &&       r'   rV  rV  ±^  sî   € Ø	€AØ	€AØ	€AÜ˜b ˜fÓ%�K€GØ…L€AÜ˜b ˜fÓ%�K€GØ…L€AØ
Œ(ØˆØ”�S“Œ>ØÜ)¨"¨R¨&Ó1‘�Ø•�Øœ˜S›–>Øä% b¨ fÓ-‰KˆGØ�LˆAØ”�S“Œ>ØÜ)¨"¨R¨&Ó1‘�Ø•�Øœ˜S›–>Ùä% b¨ fÓ-‰KˆGØ�LŠAØ˜”7ˆ4Ð! Ð!r)   c                óŒ  € V '       g   Q h\        V\        P                  4      '       g   Q h\        V\        P                  4      '       g   Q hVP                  P
                  V P                  ,          pVP                  P
                  V P                  ,          p\        W4      pV P                  ^ 8”  EdW   V P                  V P                  ^,
          ,          p\        V4      p \        VP                  P                  VP                  VP                  4      V8  dí   \!        VP                  P                  VP                  VP                  4      V8  d³   \        VP                  P                  VP"                  VP$                  4      V8  dy   \!        VP                  P                  VP"                  VP$                  4      V8  d?   VP"                  Vn        VP                  Vn        V P                  R,          V8X  g   Q hR# V P                  P'                  V4       V ;P                  ^,          un	        R# )rx   Nr¨  )r@   r£   rŽ  r�  rÌ   rÉ  r{  rz  rƒ  r9   rž
  r_  rx  r¶  rÖ  rÕ  Úvdistr×  rû  ro   )r€  rs   r?  r{  rz  Úch_quadrM  rÈ  s   &&&     r'   r~  r~  Ð^  s}  € ß€Kˆ4Ü�dœE×-Ñ-×.Ò.Ð.Ð.Ü�bœ%×+Ñ+×,Ò,Ð,Ð,Ø�M‰M×Ñ §¡Õ+€EØ�M‰M×Ñ §¡Õ+€EÜ˜4Ó$€GØ‡x�x�!…|à�z‰z˜$Ÿ(™( Q�,Õ'ˆÜ˜dÓ#ˆØÜ˜$Ÿ/™/×-Ñ-¨s¯v©v°w·z±zÓBÀUÔJÜ˜$Ÿ/™/×-Ñ-¨s¯v©v°w·z±zÓBÀUÔJÜ˜$Ÿ/™/×-Ñ-¨s¯v©v°w·z±zÓBÀUÔJÜ˜$Ÿ/™/×-Ñ-¨s¯v©v°w·z±zÓBÀUÔJà—Z‘ZˆCŒFØ—Z‘ZˆCŒFØ—:‘:˜b•> SÔ(Ð(Ð(ÙØ‡J�J×Ñ�gÔØ‡H‚H�…M‡Hr)   c                óÂ  € \         '       d   \        P                  ! WW#WEWg4      # \        R4      \        R4      \        R4      \        R4      \        R4      \        R4      \        R4      \        R4      \        R	4      .	p\        P
                  ! W4      p	\        P                  ! V ^4      p
\        P                  ! V
\        R
4      \        R4      4       \        \        V4      4       Fq  p\        P                  ! W˜V,          4      pVP                  '       g   K4  \        P                  ! W¨V,          \        P                  ! VP                  V4      4       Ks  	  V'       Ed    \        P                  ! V	\        R4      4      p\        P                  ! V4      pV^ 8”  Edâ   \        P                   ! V
\        R4      V4      p\        V4       EF°  p\        P"                  ! WÛ4      pVP                  '       d   \        P$                  ! V4      '       g   KJ  \        P&                  ! VR4      P                  '       d   Ks  \        P                  ! V\        R4      4      p\        P(                  ! V\        R4      4      '       d   K»  \        P(                  ! V\        R4      4      '       d   Kã  \        P(                  ! V\        R4      4      '       d   EK  \        P*                  ! V\        R4      4       \        P*                  ! V\        R4      4       \        P                  ! VP                  V4      p\        P,                  ! V \        P.                  ! V4      ^ 4      p\        P0                  ! VV4       EK³  	  VR8w  d"   \        P2                  ! V
\        R4      V4       \        P4                  ! W
4      p\        P6                  ! WV4       R# )z©
Deep-copies a source page to the target.
Modified version of function of pdfmerge.c: we also copy annotations, but
we skip some subtypes. In addition we rotate output.
rS  r<  r�  r  r  r  r  r;  ÚUserUnitr  rÒ   r¦  r;  r¶  r   r¥  rZ  r€  Nr¨  )r  r   r*  r  r£   r  rZ  rU  rS  r9   r  rÌ   r†  rÄ   r  r«  rX  r¬  r…  r  rö  rH  r¹  r  rK  rP  rY  rI  )r+  r,  Ú	page_fromÚpage_tor`  r5  Úcopy_annotsr0  Úknown_page_objsÚpage_refrn  rg  r  r1  rG   r2  r±  rý  r3  rß   ré  s   &&&&&&&&             r'   r*  r*  é^  sÐ  € ÷ ƒ{ä×Ò °9ÀvÐVaÓmÐmô 	�ÓÜ�ÓÜ�ÓÜ�ÓÜ�ÓÜ�ÓÜ�ÓÜ�ÓÜ�Óð

€Oô ×(Ò(¨Ó<€Hô ×"Ò" 7¨AÓ.€IÜ	×Ò�y¤(¨6Ó"2´H¸VÓ4DÔEô ”C˜Ó(Ö)ˆÜ×,Ò,¨hÈÕ8JÓKˆØ�>�>Š>ä×Ò 	¸1Õ+=¼u×?\Ò?\Ð]f×]kÑ]kÐmpÓ?qÖrñ	 *÷ €{Ü×'Ò'¨´8¸HÓ3EÓFˆ
Ü×Ò Ó,ˆØˆq�5Ü×1Ò1°9¼hÀxÓ>PÐRSÓTˆJÜ˜1—X�Ü×'Ò'¨Ó7�Ø—|—|�|¬5×+<Ò+<¸Q×+?Ò+?ÙÜ×&Ò&¨¨5Ó1×<×<Ð<ÙÜ×,Ò,¨a´¸)Ó1DÓE�Ü×$Ò$ g¬x¸Ó/?×@Ò@ÙÜ×$Ò$ g¬x¸Ó/@×AÒAÙÜ×$Ò$ W¬h°xÓ.@×AÒAÚÜ×"Ò" A¤x°Ó'8Ô9Ü×"Ò" A¤x°£}Ô5Ü×6Ò6¸	¿¹ÈÓJ�Ü×.Ò.°¼×9IÒ9IÈ6Ó9RÐTUÓV�Ü×$Ò$ j°%×8ñ# ð( �„|Ü×Ò 	¬8°HÓ+=¸vÔFä
×
Ò
 Ó
3€Cô 
×Ò˜7¨SÖ1r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rŸ  ræ  rs  r+  r,   )rþ  s   "r'   rÿ  rÿ  0_  s   € ÷ )ñ )�#ð )˜$ñ )r)   c                ó6   € \        V 4      w  r\        RRW4      # )z‰Return a Rect for the paper size indicated in string 's'. Must conform to the argument of method 'PaperSize', which will be invoked.
    rÓ  )Ú
paper_sizer+  )rŸ  rˆ  r3  s   &  r'   Ú
paper_rectrÄ  0_  s   € ô ˜q“M�M€EÜ��S˜%Ó(Ð(r)   c               ó    € V ^8„  d   QhRRRR/# )r†  rŸ  ræ  rs  rµ   r,   )rþ  s   "r'   rÿ  rÿ  7_  s   € ÷ ñ �#ð ˜%ñ r)   c                ó  € V P                  4       pRpVP                  R4      '       d   RpVRR pVP                  R4      '       d   VRR p\        4       P                  VR4      pVR8X  d   V# V^,          V^ ,          3# )zÁReturn a tuple (width, height) for a given paper format string.

Notes:
    'A4-L' will return (842, 595), the values for A4 landscape.
    Suffix '-P' and no suffix return the portrait tuple.
r²  z-lrX  Nz-pr  rö	  )rç  r  Úpaper_sizesr:   )rŸ  rÉ  r  r¦   s   &   r'   rÃ  rÃ  7_  s   € ð �7‰7‹9€DØ€AØ‡}�}�T×ÒØˆØ�C�RˆyˆØ‡}�}�T×ÒØ�C�RˆyˆÜ	‹×	Ñ	˜4 Ó	*€BØˆC„xØˆ	Øˆq�E�2�a•5ˆ>Ðr)   c                 ó  € / RR-bRR.bRR/bRR0bRR1bRR2bRR3bRR4bR	R5bR
R6bRR7bRR8bRR9bRR:bRR;bRR<bRR=b/ RR>bRR?bRR@bRRAbRRBbRRCbRRDbRREbRRFbRRGbRRHbRRIbRRJbRRKbR RLbR!RMbR"RNbCR#ROR$RPR%RQR&RRR'RSR(RTR)RUR*RVR+RWR,RX/
C# )Ya  Known paper formats @ 72 dpi as a dictionary. Key is the format string
like "a4" for ISO-A4. Value is the tuple (width, height).

Information taken from the following web sites:
www.din-formate.de
www.din-formate.info/amerikanische-formate.html
www.directtools.de/wissen/normen/iso.htm
Úa0Úa1Úa10Úa2Úa3Úa4Úa5Úa6Úa7Úa8Úa9Úb0Úb1Úb10Úb2Úb3Úb4Úb5Úb6r  Úb8Úb9Úc0Úc1Úc10Úc2Úc3Úc4Úc5Úc6Úc7Úc8Úc9zcard-4x6zcard-5x7Ú
commercialÚ	executiveÚinvoiceÚledgerÚlegalzlegal-13ÚletterÚmonarchztabloid-extra)éP	  i*  )é”  rð  )éJ   éi   )é§  rñ  )rî  rô  )rí  rî  )é¤  rí  )é*  rõ  )éÒ   rö  )é“   r÷  )ró  rø  )é  i¨  )éÔ  rù  )éX   é}   )é‰  rú  )éé  rý  )éÅ  rþ  )éó  rÿ  )éb  r   )éù   r  )é°   r  )rü  r  )é'
  i]  )é-  r  )éO   éq   )é  r  )é–  r  )é‰  r	  )éË  r
  )éC  r  )éæ   r  )é¢   r  )r  r  )i   i°  )rí  iø  )i)  i¬  )i
  iô  )iŒ  r#  )r$  iÈ  )r#  ið  )r#  i¨  )r#  r$  )i  i  )i`  i  r,   r,   r)   r'   rÇ  rÇ  K_  sá  € ð-
Øˆlð-
àˆlð-
ð 	ˆyð-
ð 	ˆlð	-
ð
 	ˆkð-
ð 	ˆjð-
ð 	ˆjð-
ð 	ˆjð-
ð 	ˆjð-
ð 	ˆjð-
ð 	ˆjð-
ð 	ˆlð-
ð 	ˆlð-
ð 	ˆyð-
ð 	ˆlð-
ð  	ˆlð!-
ð" 	ˆkñ#-
ð$ 	ˆjð%-
ð& 	ˆjð'-
ð( 	ˆjð)-
ð* 	ˆjð+-
ð, 	ˆjð--
ð. 	ˆlð/-
ð0 	ˆlð1-
ð2 	ˆyð3-
ð4 	ˆlð5-
ð6 	ˆkð7-
ð8 	ˆjð9-
ð: 	ˆjð;-
ð< 	ˆjð=-
ð> 	ˆjð?-
ð@ 	ˆjðA-
ðB 	ˆjðC-
ðD 	�JñE-
ðF 	�JØ�jØ�ZØ�:Ø�+Ø�Ø�JØ�*Ø�:Ø˜ñY-
ð -
r)   c                ó.   € \         P                  ! W4      # r+   )r£   r2  )r1  r  s   &&r'   r2  r2  ƒ_  s   € Ü×$Ò$ SÓ1Ð1r)   c                ó   € Q R4       h)z@
Returns description of mupdf.PdfObj (wrapper for pdf_obj) <o>.
zuse mupdf.pdf_debug_obj() ?)r£   rI  r«  rS  r¬  Úpdfobj_stringr–	  Úarray_get_boolr…  r†  rˆ  r  Úpdf_is_embedded_fileÚembedded_file_namer9
  rÀ  r  Úpdf_is_jpx_imagerô  r„  r÷  rÁ  r  r!  rÂ  r   )r±  r  rI   rX  rg  Úoor�  r¸   s   &&      r'   r  r  ‡_  s   € ð ,Ð+Ó+ˆ1r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r†  rÖ   rœ  rÜ  z'Font'rs  r  r,   )rþ  s   "r'   rÿ  rÿ  ¹_  s&   € ÷ Hñ H˜6ð H¨ð H°Dñ Hr)   c                ód  € VP                   R,          '       g   R# V P                  pV P                  4       pV Uu. uFf  pV^,          VP                  8X  g   K  V^,          P	                  R4      '       g   K=  V^,          P	                  R4      '       g   K]  V^ ,          NKh  	  ppV. 8X  d   R# \        V4      p\        \        VP                  ^ 4      R,          4      4      pV F=  p\        P                  W'V4      '       d   K!  \        RVP                   RVR 24       K?  	  R# u upi )	a¶  Repair character spacing for mono fonts.

Notes:
    Some mono-spaced fonts are displayed with a too large character
    distance, e.g. "a b c" instead of "abc". This utility adds an entry
    "/W[0 65535 w]" to the descendent font(s) of font. The float w is
    taken to be the width of 0x20 (space).
    This should enforce viewers to use 'w' as the character width.

Args:
    page: pymupdf.Page object.
    font: pymupdf.Font object.
rK  Nr¸  r©  iè  zCannot set width for 'z
' in xref rH  )rÐ  rì   rÏ  r   r5   rÁ  r6   rÿ  r^  r  Úset_font_widthr%   )rÖ   rÜ  r1  r  r  r÷  rˆ  r  s   &&      r'   r`  r`  ¹_  s  € ð �:‰:�f×ÔÙØ
�+‰+€CØ�~‰~Ó€Hñ óáˆAØˆa�D�D—I‘IÑô 	à"# A¥$§/¡/°#×"6ô 	à;<¸Q½4¿?¹?È:×;Vô 	ˆˆ!�ˆÙð 
ð ð
 �„{ÙÜ�‹J€EÜ”�t×)Ñ)¨"Ó-°Õ4Ó6Ó7€EÛˆÜ×#Ñ# C¨u×5Ô5ÜÐ(¨¯©¨°:¸dÀ1¸XÐFÖGó ùòs   ¼D-ÁD-Á;D-ÂD-c               ó    € V ^8„  d   QhRRRR/# ©r†  Úsrgbr6   rs  rµ   r,   )rþ  s   "r'   rÿ  rÿ  Ù_  s   € ÷ 4ñ 4�cð 4˜eñ 4r)   c                óv   € \        V 4      pV^ ,          R,          V^,          R,          V^,          R,          3# )a   Convert sRGB color code to a PDF color triple.

There is **no error checking** for performance reasons!

Args:
    srgb: (int) RRGGBB (red, green, blue), each color in range(255).
Returns:
    Tuple (red, green, blue) each item in interval 0 <= item <= 1.
g     ào@)ro  )r  rÃ  s   & r'   ÚsRGB_to_pdfr  Ù_  s3   € ô 	�DÓ€AØˆQ�4�%�<˜˜1� � q¨¥t¨e¥|Ð3Ð3r)   c               ó    € V ^8„  d   QhRRRR/# r  r,   )rþ  s   "r'   rÿ  rÿ  ç_  s   € ÷ ñ �cð ˜eñ r)   c                ó”   € V R,          p V ^,	          pW^,          ,
          ^,	          pW^,          ,
          V^,          ,
          pWV3# )a-  Convert sRGB color code to an RGB color triple.

There is **no error checking** for performance reasons!

Args:
    srgb: (int) SSRRGGBB (red, green, blue), each color in range(255).
    With MuPDF < 1.26, `s` is always 0.
Returns:
    Tuple (red, green, blue) each item in interval 0 <= item <= 255.
iÿÿÿ r,   )r  r$  r³  rI  s   &   r'   ro  ro  ç_  sG   € ð 	ˆHÕ€DØ��
€AØ	�b•Õ	˜aÕ€AØ�R•Õ˜A �FÕ#€AØ�!ˆ9Ðr)   c                óþ   € V'       d   \         P                  ! V4      M^ p\         P                  ! V 4      p\        ^ V^4       F5  p\         P                  ! \         P                  ! W4      4      V8X  g   K4   ^# 	  ^ # ru  )r£   r«  r  rS  r¬  )r²  rQ  rG   Ústr_rg  s   &&   r'   rN  rN  ù_  s^   € ß,6Œ×Ò˜ZÔ(¸A€AÜ×#Ò# QÓ'€DÜ�1�a˜Ž^ˆÜ×#Ò#¤U×%8Ò%8¸*Ó%HÓIÈTÖQÚñ ñ r)   c                ó¦  € Rp^ pTpRpVP                   '       Ed´   \        WW#V4      p	\        WrW44      '       EgJ   V	^ 8X  dà   \        P                  ! V\        R4      4      p
V
P                   '       g4   VP                   '       d!   \        P                  ! V\        R4      4       MuVP                   '       dD   \        P                  ! V\        R4      V
4       \        P                  ! V
\        R4      V4       M \        P                  ! V
\        R4      4       T
pEK  \        P                  ! V\        R4      4       \        P                  ! V\        R4      4       \        P                  ! V\        R4      4      pEK|  V'       d   VP                   '       g   TpTp\        P                  ! V\        R4      4      pV^,          pEKÆ  WeV3# )z
Returns (count, first, prev).
NrP  ÚPrevrÒ  rÓ  )rÌ   Ústrip_outlinesrR  r£   r  r  rH  rU  )r1  Úoutlinesrv  rP  rQ  rù  rÙ  Úcurrentr  r¶  r]  s   &&&&&      r'   Ústrip_outliner(  `  sb  € ð €EØ€EØ€GØ€DØ
×
×
Ñ
ô ˜C¨*È
ÓSˆä˜WÐ2B×OÓOØ�QŒwô ×)Ò)¨'´8¸FÓ3CÓD�Ø——�à——�Ü×*Ò*¨4´¸&Ó1AÔBøØ—_—_�_Ü×&Ò& t¬X°fÓ-=¸tÔDÜ×&Ò& t¬X°fÓ-=¸tÕDä×&Ò& t¬X°fÓ-=Ô>Ø“ô ×"Ò" 7¬H°VÓ,<Ô=Ü×"Ò" 7¬H°S«MÔ:Ü×,Ò,¨W´h¸vÓ6FÓG“÷  × 0× 0Ð 0Ø�ØˆDÜ×(Ò(¨´(¸6Ó2BÓCˆGØ�Q�J‹Eà˜ÐÐr)   c                óô  € VP                   '       g   ^ # \        P                  ! V\        R4      4      pVP                   '       g   ^ pM\	        WW#V4      w  repV^ 8X  dc   \        P
                  ! V\        R4      4       \        P
                  ! V\        R4      4       \        P
                  ! V\        R4      4       V# \        P                  ! \        P                  ! V\        R4      4      4      p\        P                  ! V\        R4      V4       \        P                  ! V\        R4      X4       \        P                  ! T\        R4      \        P                  ! V^ 8”  d   TMV) 4      4       V# )rx   ró  ÚLastrÑ  )	rÌ   r£   r  r  r(  rH  r  rU  rU  )	r1  r&  rv  rP  rQ  rù  r¶  r  Ú	old_counts	   &&&&&    r'   r%  r%  .`  s!  € Ø××ÐÙä×Ò˜x¬°'Ó):Ó;€EØ××ÐØ‰ä'¨°JÐR\Ó]‰ˆ�4à	ˆQ„wÜ×Ò˜8¤X¨gÓ%6Ô7Ü×Ò˜8¤X¨fÓ%5Ô6Ü×Ò˜8¤X¨gÓ%6Ô7ð €Iô	 ×$Ò$¤U×%7Ò%7¸Ä(È7ÓBSÓ%TÓUˆ	Ü×Ò˜8¤X¨gÓ%6¸Ô>Ü×Ò˜8¤X¨fÓ%5°tÔ<Ü×Ò˜8¤X¨gÓ%6¼×8IÒ8IÐPYÐ\]ÔP]É"ÐdfÐcfÓ8gÔhØ€Ir)   c               ó    € V ^8„  d   QhRRRR/# )r†  r?  r6   rs  ræ  r,   )rþ  s   "r'   rÿ  rÿ  J`  s   € ÷ 	ñ 	˜cð 	 cñ 	r)   c                ól   € ^ RI p VP                  \        V 4      4      pV#   \         d    Rp T# i ; i)z-
Convenience function accessing unicodedata.
Nz.notdef)ro  r   rn  rÃ   )r?  ro  r   s   &  r'   r‹  r‹  J`  sB   € ó ðØ×Ñ¤ B£Ó(ˆð €Køô ô Ø‰Ø€Kðúrq  c                óð   € VP                   VP                   ,
          pVP                  VP                  ,
          p\        P                  ! W0P                  ,          W@P                   ,          ,           4      # r+   rs  ru  s   &&&  r'   r¸  r¸  V`  ry  r)   Úpagefn_argsÚpagefn_kwargsÚinitfnÚinitfn_argsÚinitfn_kwargsrX  rb  ÚsingleÚconcurrencyÚ_statsc       	        ó   € V
'       d   \         P                   ! 4       pVR8X  dn   V'       d	   V! V/ VB  \        4       p\        V 4      pVf   \        \	        V4      4      pV F(  pWÞ,          pV! V.VO5/ VB pVP                  V4       K*  	  EM5^RIHp VfŒ   V
'       d   \         P                   ! 4       p\        V 4      ;_uu_ 4       p\	        V4      p\        \        V4      4      pRRR4       V
'       d,   \         P                   ! 4       X,
          p\        VR R24       V
'       d   \         P                   ! 4       pVR8X  d   VP                  V VVVVVVVV	V
4
      pM.VR8X  d   VP                  V VVVVVVVV	V
4
      pMQ RT: R	24       hV
'       d,   \         P                   ! 4       X,
          p\        VR R
24       V
'       d,   \         P                   ! 4       X,
          p\        VR R24       V#   + '       g   i     EL; i)aô  
Returns list of results from `pagefn()`, optionally using concurrency for
speed.

Args:
    path:
        Path of document.
    pagefn:
        Function to call for each page; is passed (page, *pagefn_args,
        **pagefn_kwargs). Return value is added to list that we return. If
        `method` is not 'single', must be a top-level function - nested
        functions don't work with concurrency.
    pagefn_args
    pagefn_kwargs:
        Additional args to pass to `pagefn`. Must be picklable.
    initfn:
        If true, called once in each worker process; is passed
        (*initfn_args, **initfn_kwargs).
    initfn_args
    initfn_kwargs:
        Args to pass to initfn. Must be picklable.
    pages:
        List of page numbers to process, or None to include all pages.
    method:
        'single'
            Do not use concurrency.
        'mp'
            Operate concurrently using Python's `multiprocessing` module.
        'fork'
             Operate concurrently using custom implementation with
             `os.fork()`. Does not work on Windows.
    concurrency:
        Number of worker processes to use when operating concurrently. If
        None, we use the number of available CPUs.
    _stats:
        Internal, may change or be removed. If true, we output simple
        timing diagnostics.

Note: We require a file path rather than a Document, because Document
instances do not work properly after a fork - internal file descriptor
offsets are shared between the parent and child processes.
r4  N)Ú_apply_pagesz.2fzs: count pages.rÈ  ÚforkzUnrecognised method=r   zs: work.z	s: total.)rY  r´   rÁ   rS  r9   ro   r`   r8  r%   Ú_multiprocessingÚ_fork)r   r  r/  r0  r1  r2  r3  rX  rb  r5  r6  r   rI   rÉ   r{  rÖ   r$  r8  rÃ  Ú	num_pagess   &&$$$$$$$$$         r'   Úapply_pagesr=  \`  sË  € ÷p Ü�YŠY‹[ˆà�ÔßÙ�KÐ1 =Ò1Ü‹fˆÜ˜D“>ˆØŠ=Üœ#˜h›-Ó(ˆEÛˆCØ•=ˆDÙ�tÐ;˜kÒ;¨]Ñ;ˆAØ�J‰J�qŽMó õ 	#àŠ=ßÜ—I’I“K�Ü˜$—” 8Ü ›M�	ÜœU 9Ó-Ó.�÷  ÷ Ü—I’I“K !•O�Ü�q˜�g˜_Ð-Ô.çÜ—	’	“ˆAà�TŒ>Ø×/Ñ/ØØØØØ!ØØØ!ØØó‰Cð �vÔØ×$Ñ$ØØØØØ!ØØØ!ØØó‰Cð 1Ð- f¡Y¨aÐ0Ó0�1çÜ—	’	“˜a•ˆAÜ�1�S�'˜Ð"Ô#çÜ�IŠI‹K˜"ÕˆÜˆq�ˆg�YÐÔ Ø€J÷a  —�ús   Ã G<Ç<H	r­  r  r¯  rÂ  rì  c       
   
     ód   € \        VVVVVV	R7      p\        V \        P                  VVVVV
R7      # )aû  
Returns list of results from `Page.get_text()`, optionally using
concurrency for speed.

Args:
    path:
        Path of document.
    pages:
        List of page numbers to process, or None to include all pages.
    method:
        'single'
            Do not use concurrency.
        'mp'
            Operate concurrently using Python's `multiprocessing` module.
        'fork'
             Operate concurrently using custom implementation with
             `os.fork`. Does not work on Windows.
    concurrency:
        Number of worker processes to use when operating concurrently. If
        None, we use the number of available CPUs.
    option
    clip
    flags
    textpage
    sort
    delimiters:
        Passed to internal calls to `Page.get_text()`.
)r­  r  rÐ  r¯  rÂ  rì  )r0  rX  rb  r5  r6  )r7   r=  rÒ   r  )r   rX  rb  r5  r­  r  rÐ  r¯  rÂ  rì  r6  Ú	args_dicts   &$$$$$$$$$$ r'   r  r  Þ`  sI   € ôX ØØØØØØ!ô€Iô ØÜ�M‰MØ#ØØØ#Øôð r)   c                  óÔ  € ] tR tRtRtR t]R 4       t]R 4       t]R/R l4       t	]R 4       t
]R 4       t]R	 4       t]R
 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tR t]R 4       t]R 4       t]R0R l4       t]R1R l4       t]R1R l4       t]R 4       t]R/R l4       t ]R 4       t!]R  4       t"]R1R! l4       t#]R" 4       t$]R# 4       t%]R0R$ l4       t&]R1R% l4       t']R1R& l4       t(]R1R' l4       t)]R( 4       t*]R) 4       t+]R* 4       t,]R+ 4       t-]R1R, l4       t.R-t/]0! 4       t1R.t2R# )2r  ia  zM
We use @staticmethod to avoid the need to create an instance of this class.
c                	ó¦   € \        V \        P                  4      '       d   \        \	        V 4      4      # \        \        P
                  ! 4       4      # r+   )r@   r£   rÓ   r{  re  r|  rÕ   s   &r'   Ú_derotate_matrixÚTOOLS._derotate_matrix#a  s6   € Ü�dœEŸM™M×*Ò*Ü$Ô%<¸TÓ%BÓCÐCä$¤U§^¢^Ó%5Ó6Ð6r)   c                	óþ  € \        W4      p\        V P                  4      Vn        V P                  Vn        V P                  Vn        Wn        VP                  '       g   R Vn        VP                  '       g   R Vn        VP                  '       g   R Vn        VP                  '       g   R Vn	        VP                  '       g   R Vn
        VP                  '       g   R Vn        VP                  '       g   R Vn        V# r+   )rj  r+  rü   r  rì   rÓ  r$  r™  rš  r›  rœ  r�  rž  )rß   r\  r  s   && r'   r[  ÚTOOLS._fill_widget)a  sÄ   € ä& uÓ5ˆä˜5Ÿ:™:Ó&ˆŒØ—j‘jˆŒØŸ™ˆŒØŒØ�}�}ˆ}Ø ˆFŒMØ×#×#Ð#Ø#'ˆFÔ Ø×#×#Ð#Ø#'ˆFÔ Ø×#×#Ð#Ø#'ˆFÔ Ø×!×!Ð!Ø!%ˆFÔØ×!×!Ð!Ø!%ˆFÔØ×"×"Ð"Ø"&ˆFÔØˆ
r)   c                	óx   € \        V P                  4      p \        V P                  4       4      p\	        V4      pV# r+   )rÚ   rÄ   r.  r  r#  )rÖ   r%  r“  s   &  r'   rs  ÚTOOLS._get_all_contentsAa  s/   € ä˜DŸI™IÓ&ˆÜ˜tŸx™x›zÓ*ˆÜ! 3Ó'ˆØˆr)   c                óˆ   € \        V ^R7      p\        V4      p\        VP                  4       VP	                  4       WB4      pV# )zDAdd bytes as a new /Contents object for a page, and return its xref.rß  )rÚ   r.  rÚ  r1  r  )rÖ   rä  rÝ  râ  Úcontbufr  s   &&&   r'   r¤  ÚTOOLS._insert_contentsHa  s9   € ô ˜t¨aÔ0ˆÜ$ WÓ-ˆÜ! '§+¡+£-°·±³ÀÓQˆàˆr)   c                óî  € V P                   R,          pV P                  R,          pV'       g   R	pRP                  \        \        V4      4      R,           pV'       d   TpMV P                  R,          pV'       g   R
pRP                  \        \        V4      4      R,           pTp	Tp
\        \        Wš4      4      pV( pW›,          pW«,          p^ V P                  u;8:  d   ^8  d   M MRpMRpW¼WÞWFW�3# )a+  Get common parameters for making annot line end symbols.

Returns:
    m: matrix that maps p1, p2 to points L, P on the x-axis
    im: its inverse
    L, P: transformed p1, p2
    w: line width
    scol: stroke color string
    fcol: fill color store_shrink
    opacity: opacity string (gs command)
rˆ  r“  r³   z RG
r   z rg
r  r`   r…  rl  )r”  r  r  r  ræ  r  rÔ  r]  )rß   rJ  rK  r_  r   ÚscÚscolrg  rd  Únp1Únp2r‹  r�  r`  rú  r]  s   &&&&            r'   Ú_le_annot_parmsÚTOOLS._le_annot_parmsQa  sÐ   € ð �L‰L˜Õ!ˆØ�\‰\˜(Õ#ˆßØˆBØ�x‰xœœC ›Ó%¨Õ/ˆßØ‰Bà—‘˜fÕ%ˆBßØˆBØ�x‰xœœC ›Ó%¨Õ/ˆàˆØˆÜ”? 3Ó,Ó-ˆØˆRˆØ�GˆØ�GˆØ�—‘Ö! ×!Ø‰GàˆGØ�a˜A TÐ2Ð2r)   c                óÂ  € \         P                  WW$4      w  rVrxršr¼^pV\        ^V	4      ,          pV'       d   TMTpV^ V) R,          3,           V,          pV^ VR,          3,           V,          pRV VP                  R RVP                  R R2pVVP                  R RVP                  R R2,          pV\        V	4      R,           ,          pVV
R,           ,          pV# )	zaMake stream commands for butt line end symbol. "lr" denotes left (False) or right point.
        r¨  rÆ  r  r³   r1  r2  rÁ  ús
Q
©r  rP  r'  ri  rj  r¶   )rß   rJ  rK  rÖ  r_  r‹  r�  r`  rú  r   rM  rd  r]  ró  rH  r-  r  Úbotr'  s   &&&&&              r'   r#  ÚTOOLS._le_buttwa  sØ   € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆß‰A˜ˆØ�A˜�r˜"•u�:�~ Õ#ˆØ�A�q˜•t�9�} Õ"ˆØ�W�I˜cŸe™e A˜Y a¨¯©¨a y°Ð5ˆØ
�—‘�q�	˜˜3Ÿ5™5 ˜) 4Ð(Õ(ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�X�oÕˆØˆ	r)   c                ó  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,
          MW~R,          ^ 3,           p\        Wÿ4      V) V) Wî3,           pRV,           \         P	                  VP
                  V,          VP                  V,          VP                  V,          VP                  V,          4      ,           pV\        V	4      R,           ,          pVW«,           R,           ,          pV# )zcMake stream commands for circle line end symbol. "lr" denotes left (False) or right point.
        ç      @r¨  úq
rÁ  úb
Q
)
r  rP  r'  r+  Ú_oval_stringr*  r«  r+  r¤  r¶   )rß   rJ  rK  rÖ  r_  r‹  r�  r`  rú  r   rM  rd  r]  ró  rH  r-  r$  r'  s   &&&&&             r'   r  ÚTOOLS._le_circle‡a  sÖ   € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆßˆA�2•�q�	ŽM Q¨B­$°¨¥]ˆÜ�‹J˜1˜"˜q˜b !˜Õ'ˆØ�W�_œu×1Ñ1°!·$±$¸µ)¸Q¿T¹TÀB½YÈÏÉÈrÍ	ÐST×SWÑSWÐZ\ÕS\Ó]Õ]ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                óÒ  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,           MW~R,          ^ 3,
          pV'       d   VR
V,          V) 3,           MV^V,          V) 3,           pV'       d   VR
V,          V3,           MV^V,          V3,           pW,          pW&,          pWö,          pRV VP                  R RVP                  R R2pVVP                  R RVP                  R R2,          pVVP                  R RVP                  R R2,          pV\        V	4      R,           ,          pVW«,           R	,           ,          pV# )ziMake stream commands for closed arrow line end symbol. "lr" denotes left (False) or right point.
        rX  r¨  rÆ  r  r³   r1  r2  rÁ  rZ  r  rT  ©rß   rJ  rK  rÖ  r_  r‹  r�  r`  rú  r   rM  rd  r]  ró  rH  r  r'  s   &&&&&            r'   r"  ÚTOOLS._le_closedarrow•a  s?  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆß ˆQ�B•$˜�Ž] a¨R­4°¨)¥mˆß "ˆR�2�a•4˜!˜�*Ž_¨¨a°­c°A°2¨Y­ˆß!ˆR�2�a•4˜�)Ž^ r¨Q¨q­S°!¨H¥}ˆØ
�ˆØ
�ˆØ
�ˆØ�W�I˜bŸd™d 1˜X Q r§t¡t¨A h¨dÐ3ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                óF  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,
          MW~R,          ^ 3,           p\        Wÿ4      V) V) Wî3,           pVP                  VP
                  VP                  ,
          R,          ,           V,          pRV VP                  R RVP                  R R2pVP                  VP                  VP                  ,
          R,          ,           V,          pVVP                  R RVP                  R R2,          pVP                  VP                  VP                  ,
          R,          ,           V,          pVVP                  R RVP                  R R2,          pVP                  VP
                  VP                  ,
          R,          ,           V,          pVVP                  R RVP                  R R2,          pV\        V	4      R	,           ,          pVW«,           R
,           ,          pV# )zdMake stream commands for diamond line end symbol. "lr" denotes left (False) or right point.
        rX  r¨  r   rY  r  r³   r1  r2  rÁ  rZ  )r  rP  r'  r+  r*  r¤  ri  rj  r«  r+  r¶   ©rß   rJ  rK  rÖ  r_  r‹  r�  r`  rú  r   rM  rd  r]  ró  rH  r-  r$  r²  r'  s   &&&&&              r'   r   ÚTOOLS._le_diamond©a  s¯  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆßˆA�2•�q�	ŽM Q¨B­$°¨¥]ˆÜ�‹J˜1˜"˜q˜b !˜Õ'ˆà�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'¨2Õ-ˆØ�7�)˜AŸC™C ˜7 ! A§C¡C¨ 7¨$Ð/ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'¨2Õ-ˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'¨2Õ-ˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ�T‰T�Q—T‘T˜AŸD™D•[ CÕ'Õ'¨2Õ-ˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                óÆ  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,           MW~R,          ^ 3,
          pV'       d   VR
V,          V) 3,           MV^V,          V) 3,           pV'       d   VR
V,          V3,           MV^V,          V3,           pW,          pW&,          pWö,          pRV VP                  R RVP                  R R2pVVP                  R RVP                  R R2,          pVVP                  R RVP                  R R2,          pV\        V	4      R,           ,          pVV
R	,           ,          pV# )zgMake stream commands for open arrow line end symbol. "lr" denotes left (False) or right point.
        rX  r¨  rÆ  r  r³   r1  r2  rÁ  úS
Q
r  rT  r^  s   &&&&&            r'   r!  ÚTOOLS._le_openarrow¿a  s<  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆß ˆQ�B•$˜�Ž] a¨R­4°¨)¥mˆß "ˆR�2�a•4˜!˜�*Ž_¨¨a°­c°A°2¨Y­ˆß!ˆR�2�a•4˜�)Ž^ r¨Q¨q­S°!¨H¥}ˆØ
�ˆØ
�ˆØ
�ˆØ�W�I˜bŸd™d 1˜X Q r§t¡t¨A h¨dÐ3ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�X�oÕˆØˆ	r)   c                óÖ  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   V^V,          ^ 3,
          MV^V,          ^ 3,           pV'       d   V^V,          V) 3,           MVR	V,          V) 3,           pV'       d   V^V,          V3,           MVR	V,          V3,           pW,          pW&,          pWö,          pRV VP                  R RVP                  R R2pVVP                  R RVP                  R R2,          pVVP                  R RVP                  R R2,          pV\        V	4      R,           ,          pVW«,           R,           ,          pV# )
zoMake stream commands for right closed arrow line end symbol. "lr" denotes left (False) or right point.
        rX  rÆ  r  r³   r1  r2  rÁ  rZ  r  rT  r^  s   &&&&&            r'   r%  ÚTOOLS._le_rclosedarrowÓa  sC  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆßˆQ�!�A•#�q�Ž\ Q¨!¨A­#¨q¨¥\ˆß!ˆR�1�Q•3˜˜�)Ž^ r¨R°­T°A°2¨J¥ˆß ˆR�1�Q•3˜�(Ž] b¨B¨q­D°!¨9¥nˆØ
�ˆØ
�ˆØ
�ˆØ�W�I˜bŸd™d 1˜X Q r§t¡t¨A h¨dÐ3ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                óÒ  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,
          MW~R,          ^ 3,           pV'       d   V^V,          V) 3,           MVR
V,          V) 3,           pV'       d   V^V,          V3,           MVR
V,          V3,           pW,          pW&,          pWö,          pRV VP                  R RVP                  R R2pVVP                  R RVP                  R R2,          pVVP                  R RVP                  R R2,          pV\        V	4      R,           ,          pVW«,           R	,           ,          pV# )zmMake stream commands for right open arrow line end symbol. "lr" denotes left (False) or right point.
        rX  g      @rÆ  r  r³   r1  r2  rÁ  rd  r  rT  r^  s   &&&&&            r'   r$  ÚTOOLS._le_ropenarrowça  s?  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆß ˆQ�B•$˜�Ž] a¨R­4°¨)¥mˆß!ˆR�1�Q•3˜˜�)Ž^ r¨R°­T°A°2¨J¥ˆß ˆR�1�Q•3˜�(Ž] b¨B¨q­D°!¨9¥nˆØ
�ˆØ
�ˆØ
�ˆØ�W�I˜bŸd™d 1˜X Q r§t¡t¨A h¨dÐ3ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
�—‘�a�˜˜"Ÿ$™$˜q˜ Ð&Õ&ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                ór  € \         P                  WW$4      w  rVrxršr¼R\        ^V	4      ,          R,          pV'       d   TMTp\        VP                  V,
          VP
                  ^V	,          ,
          VP                  V,           VP
                  ^V	,          ,           4      pVP                  V,          pVP                  V,          pRV VP                  R RVP
                  R R2pVVP                  R RVP
                  R R2,          pV\        V	4      R,           ,          pVV
R	,           ,          pV# )
zbMake stream commands for slash line end symbol. "lr" denotes left (False) or right point.
        g(µ¦yò?rÔ  rÆ  r  r³   r1  r2  rÁ  rS  )	r  rP  r'  r+  ri  rj  r*  r+  r¶   )rß   rJ  rK  rÖ  r_  r‹  r�  r`  rú  r   rM  rd  r]  Úrwr-  r$  r  rU  r'  s   &&&&&              r'   r&  ÚTOOLS._le_slashûa  sü   € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØ”c˜!˜Q“iÕ #Õ%ˆß‰A˜ˆÜ�—‘�r•˜1Ÿ3™3  Q¥�;¨¯©¨b­°!·#±#¸¸A½µ+Ó>ˆØ�d‰d�R�iˆØ�d‰d�R�iˆØ�W�I˜cŸe™e A˜Y a¨¯©¨a y°Ð5ˆØ
�—‘�q�	˜˜3Ÿ5™5 ˜) 4Ð(Õ(ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�X�oÕˆØˆ	r)   c                óþ  € \         P                  WW$4      w  rVrxršr¼RpV\        ^V	4      ,          pV'       d   WŽR,          ^ 3,
          MW~R,          ^ 3,           p\        Wÿ4      V) V) Wî3,           pVP                  V,          pRV VP
                  R RVP                  R R2pVP                  V,          pVVP
                  R RVP                  R R2,          pVP                  V,          pVVP
                  R RVP                  R R2,          pVP                  V,          pVVP
                  R RVP                  R R2,          pV\        V	4      R,           ,          pVW«,           R	,           ,          pV# )
zcMake stream commands for square line end symbol. "lr" denotes left (False) or right point.
        rX  r¨  rY  r  r³   r1  r2  rÁ  rZ  )r  rP  r'  r+  r*  ri  rj  r«  r+  r¤  r¶   ra  s   &&&&&              r'   r  ÚTOOLS._le_squareb  sS  € ô /4×.CÑ.CÀEÈrÓ.^Ñ+ˆˆq�Q˜dØˆØ”C˜˜1“IÕˆßˆA�2•�q�	ŽM Q¨B­$°¨¥]ˆÜ�‹J˜1˜"˜q˜b !˜Õ'ˆà�D‰D�2�IˆØ�7�)˜AŸC™C ˜7 ! A§C¡C¨ 7¨$Ð/ˆØ�D‰D�2�IˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ�D‰D�2�IˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ�D‰D�2�IˆØ
�—‘�Q��q˜Ÿ™˜Q˜˜tÐ$Õ$ˆØ
Œi˜‹l˜VÕ#Õ#ˆØ
ˆd�k˜HÕ$Õ$ˆØˆ	r)   c                óÞ  € R pRpWV ,
          R,          ,           pWV ,
          R,          ,           pWV,
          R,          ,           pW2V,
          R,          ,           p	W`V,
          V,          ,           p
WpV,
          V,          ,           pWqV,
          V,          ,           pW�V,
          V,          ,           pW‚V,
          V,          ,           pW’V	,
          V,          ,           pW“V	,
          V,          ,           pWcV,
          V,          ,           pVP                   R RVP                  R R2pVV! W«V4      ,          pVV! WÍV4      ,          pVV! WïV	4      ,          pVV! VVV4      ,          pV# )zQReturn /AP string defining an oval within a 4-polygon provided as points
        c                ó®   € V P                   R  RV P                  R  RVP                   R  RVP                  R  RVP                   R  RVP                  R  R2# )r  r³   r9  r  )r²  rc  r$  s   &&&r'   ÚbezierÚ"TOOLS._oval_string.<locals>.bezier%b  sQ   € Ø—c‘c˜!�W˜A˜aŸc™c !˜W A a§c¡c¨! W¨A¨a¯c©c°!¨W°A°a·c±c¸!°W¸A¸a¿c¹cÀ!¸WÀDÐIÐIr)   rH  r   r  r³   r1  r  )rJ  rK  r  r  rq  rI  r@  Úmor?  ÚmuÚol1Úol2Úor1Úor2Úur1Úur2Úul1Úul2r'  s   &&&&               r'   r[  ÚTOOLS._oval_string!b  s@  € ò	Jð ˆØ˜•7˜c•/Õ!ˆØ˜•7˜c•/Õ!ˆØ˜•7˜c•/Õ!ˆØ˜•7˜c•/Õ!ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆØ˜•G˜uÕ$Õ$ˆà—‘�Qˆx�q˜Ÿ™˜a˜ Ð%ˆØ
‰f�S˜rÓ"Õ"ˆØ
‰f�S˜rÓ"Õ"ˆØ
‰f�S˜rÓ"Õ"ˆØ
‰f�S˜#˜rÓ"Õ"ˆØˆ	r)   c                	ó\  € \         '       d"   \        P                  ! V P                  4      pMR  pV! V 4      pV'       g   R# Rp^pR	pVP	                  4       p\        V4       EF5  w  rxVR8X  dK   Wg^,
          ,          R,          p\        Wg^,
          ,          4      pR;Wg&   ;Wg^,
          &   Wg^,
          &   KW  VR8X  d+   \        Wg^,
          ,          4      .pR;Wg&   Wg^,
          &   Kˆ  VR8X  dK   Wg^,
          V  U	u. uF  p	\        V	4      NK  	  pp	R;Wg&   ;Wg^,
          &   ;Wg^,
          &   Wg^,
          &   KÙ  VR8X  g   Kâ  Wg^,
          V  U	u. uF  p	\        V	4      NK  	  pp	R;Wg&   ;Wg^,
          &   ;Wg^,
          &   ;Wg^,
          &   Wg^,
          &   EK8  	  WSV3pV# u up	i u up	i )
c                ó0  € V P                   p\        V\        P                  4      '       g   Q h\        P                  ! V4      p\        P
                  ! V4      p \        P                  ! V\        R 4      4      pVP                  '       gK   \        P                  ! V4      p\        P                  ! V\        R4      \        R4      \        R 4      4      p\        P                  ! V4      pV#   \         d    \        '       d   \        4         R# i ; i)r^  rà  rá  N)rÄ   r@   r£   rä   r  r›  r  r  rÌ   rä  r   r  rk   r  r{   )rß   rG  Úthis_annot_objra  rù  rÄ  rb  s   &      r'   ÚTools__parse_daÚ(TOOLS._parse_da.<locals>.Tools__parse_daCb  sØ   € Ø"ŸZ™Z�
Ü! *¬e¯n©n×=Ò=Ð=Ð=Ü!&×!4Ò!4°jÓ!A�Ü×2Ò2°NÓC�ðÜ×7Ò7¸ÌÐRVËÓX�BØŸ=Ÿ=˜=Ü"'×"3Ò"3°CÓ"8˜Ü"×0Ò0°Ü (¨Ó 0Ü (¨Ó 4Ü (¨£ó"˜ô
 #×5Ò5°bÓ9�Fð �øô !ô ß+Ó+´Ô0@Úðús   ÁBC0 Ã0DÄ
DÄDr`   r„  r²  r‰	  r³  r´  rô  )ru  r`   rx   r…  )r  r   ÚTools_parse_darÄ   r8   rZ  rœ  )
rß   r  r�  rÜ  r7  rf  rµ  rg  rE   r  s
   &         r'   r  ÚTOOLS._parse_da=b  s   € ÷ ‹;Ü×&Ò&¨¯
©
Ó3‰Còñ& " %Ó(ˆCçØ Ð ØˆØˆØˆØ�i‰i‹kˆÜ  —~‰GˆAØ�tŒ|Ø˜q�5•z "•~�Ü˜c a¥%�jÓ)�Ø/1Ð1�‘Ð1˜˜q�S™ C¨!­¡HÙØ�sŒ{Ü˜c a¥%�jÓ)Ð+�Ø$&Ð&�‘˜˜q�S™ÙØ�tŒ|Ø),°­U°1©Ó6© A”u˜Q–x©�Ð6Ø:<Ð<�‘Ð<˜˜q�S™Ð< C¨!­¡H¨s°Qµ3©xÙØ�sŽ{Ø),°­U°1©Ó6© A”u˜Q–x©�Ð6ØEGÐG�‘ÐG˜˜q�S™ÐG C¨!­¡HÐG¨s°Qµ3©x¸#À½c¹(Úñ# &ð& ˜%Ð ˆØˆ
ùò 7ùò 7s   Ä F$ÅF)c                	óŽ   € T p\         P                  ! V4      p\         P                  ! V4      p\         P                  ! W24       R # r+   )r£   r  r›  Úpdf_field_reset)rß   rG  r€  ra  s   &   r'   rÚ  ÚTOOLS._reset_widgettb  s5   € àˆ
Ü×,Ò,¨ZÓ8ˆÜ×*Ò*¨>Ó:ˆÜ×Ò˜cÖ2r)   c                	ó®   € V P                  R R7      pVP                  '       g   \        \        P                  ! 4       4      # \        \        V4      4      # r&  )r,  rÌ   r{  r£   r|  rß  )rÖ   râ  s   & r'   r‚  ÚTOOLS._rotate_matrix{b  sA   € à—.‘.¨%�.Ó0ˆØ×!×!Ð!Ü$¤U§^¢^Ó%5Ó6Ð6Ü Ô!6°wÓ!?Ó@Ð@r)   c                	ó   € \        W4       R # r+   )rÁ  )rß   r\  s   &&r'   rß  ÚTOOLS._save_widget‚b  s
   € ä  Ö/r)   c                	óL  € \         '       d$   \        P                  ! V P                  V4       R#  V P                  p\	        V\
        P                  4      '       g   Q h\
        P                  ! \
        P                  ! V4      \        R 4      V4       \
        P                  ! \
        P                  ! V4      \        R4      4       \
        P                  ! \
        P                  ! V4      \        R4      4       R#   \         d    \        '       d   \        4         R# i ; i)r^  r;  r  N)r  r   ÚTools_update_darÄ   r@   r£   rä   r¯  r  r  rH  rk   r  r{   )rß   rb  rG  s   && r'   Ú
_update_daÚTOOLS._update_da†b  sÇ   € ß‹;Ü×!Ò! 5§:¡:¨vÖ6ðØ"ŸZ™Z�
Ü! *¬e¯n©n×=Ò=Ð=Ð=Ü×.Ò.¬u×/BÒ/BÀ:Ó/NÔPXÐY]ÓP^Ð`fÔgÜ×"Ò"¤5×#6Ò#6°zÓ#BÄHÈTÃNÔSÜ×"Ò"¤5×#6Ò#6°zÓ#BÄHÈTÃNÔSñ øô ô ß'Ó'¬NÔ,<Úðús   ±CC> Ã>D#Ä
D#Ä"D#c                 	ó(   € \         ^,          s \         # rv  )ÚTOOLS_JM_UNIQUE_IDr,   r)   r'   rÅ  ÚTOOLS.gen_id•b  s   € ô 	˜aÕÐÜ!Ð!r)   c                 ó0   € \         P                  ! 4        R# )z
Empty the glyph cache.
N)r£   Úfz_purge_glyph_cacher,   r)   r'   Úglyph_cache_emptyÚTOOLS.glyph_cache_empty›b  s   € ô
 	×"Ò"Ö$r)   c                ó   € \        W4      # )z%
Metadata of an image binary stream.
)r¨  )r   r¦  s   &&r'   r8  ÚTOOLS.image_profile¢b  s   € ô
   Ó3Ð3r)   Nc                ó,   € V e   \        V 4      s\        # )z+
Set MuPDF error display to True or False.
)rè   rª  ©ro  s   &r'   Úmupdf_display_errorsÚTOOLS.mupdf_display_errors©b  s   € ð Š>Ü#'¨£8Ð Ü#Ð#r)   c                ó,   € V e   \        V 4      s\        # )z.
Set MuPDF warnings display to True or False.
)rè   r=  rš  s   &r'   Úmupdf_display_warningsÚTOOLS.mupdf_display_warnings³b  s   € ð Š>Ü%)¨"£XÐ"Ü%Ð%r)   c                 ó"   € \         P                  # )z"Get version of MuPDF binary build.)r£   Ú
FZ_VERSIONr,   r)   r'   r  ÚTOOLS.mupdf_version½b  s   € ô ×ÑÐr)   c                ó’   € \         P                  ! 4        RP                  \        4      pV '       d   \        P                  4        V# )z>
Get the MuPDF warnings/errors with optional reset (default).
r#   )r£   Úfz_flush_warningsr  r«  r  Úreset_mupdf_warnings)r“
  rI   s   & r'   rÓ  ÚTOOLS.mupdf_warningsÂb  s3   € ô 	×ÒÔ!Ø�i‰iÔ0Ó1ˆßÜ×&Ñ&Ô(Øˆ
r)   c                 	ó   € \        4       sR # r+   )r´   r«  r,   r)   r'   r¥  ÚTOOLS.reset_mupdf_warningsÎb  s   € ô #'£&Òr)   c                ó2   € \         P                  ! V 4       R# )z
Set anti-aliasing level.
N)r£   Úfz_set_aa_level)r   s   &r'   Úset_aa_levelÚTOOLS.set_aa_levelÓb  s   € ô
 	×Ò˜eÖ$r)   c                	ój   € V f   \         # \        V 4      ^,           pV^28”  d   ^2pV R,          s \         # )N:Nrð  N)rO  r9   )rQ  rÆ  s   & r'   Úset_annot_stemÚTOOLS.set_annot_stemÚb  s8   € ð Š<Ü#Ð#Ü�4‹y˜1�}ˆØ�"Œ9ØˆDØ �9ÐÜÐr)   c                	óÚ  € \        V ^ R7      pVP                  '       g   R# \        P                  ! W14      p\        P                  ! V\        R4      4      p\        P                  ! V4      '       dø   \        P                  ! V4      p\        V4       FÒ  p\        P                  ! WW4      p\        P                  ! V^4      p	\        P                  ! V	\        P                  ! ^ 4      4       \        P                  ! V	\        P                  ! R4      4       \        P                  ! V	\        P                  ! V4      4       \        P                  ! V\        R4      V	4       KÔ  	  R# )rx   rß  Fr9  ru  r:  T)rÎ   rÌ   r£   rJ  r  r  rI  r«  rS  r¬  rR  rK  rU  rU  )
r1  r  rˆ  ra  rÜ  ÚdfontsrG   rg  ÚdfontÚwarrays
   &&&       r'   r  ÚTOOLS.set_font_widthåb  sÿ   € ä˜s¨QÔ/ˆØ�~�~ˆ~ÙÜ×$Ò$ SÓ/ˆÜ×#Ò# D¬(Ð3DÓ*EÓFˆÜ×Ò˜f×%Ò%Ü×#Ò# FÓ+ˆAÜ˜1–X�Ü×+Ò+¨FÓ6�Ü×,Ò,¨S°!Ó4�Ü×$Ò$ V¬U×->Ò->¸qÓ-AÔBÜ×$Ò$ V¬U×->Ò->¸uÓ-EÔFÜ×$Ò$ V¬U×->Ò->¸uÓ-EÔFÜ×"Ò" 5¬(°3«-¸Ö@ñ ñ r)   c                ó2   € \         P                  ! V 4       R# )z&
Set the graphics minimum line width.
N)r£   Úfz_set_graphics_min_line_width)Úmin_line_widths   &r'   Úset_graphics_min_line_widthÚ!TOOLS.set_graphics_min_line_width÷b  s   € ô
 	×,Ò,¨^Ö<r)   c                óî   € V '       d@   \         P                  '       d   \         P                  ! 4        R# \        R\        4       R# \         P                  '       d   \         P
                  ! 4        R# R# )z!Set ICC color handling on or off.zMuPDF built w/o ICC supportN)r£   rÍ  Úfz_enable_iccrÁ  rª	  Úfz_disable_iccrš  s   &r'   Úset_iccÚTOOLS.set_iccþb  sH   € ÷ Ü×"×"Ð"Ü×#Ò#Ö%äÐ6Ô7GÖHÜ× × Ð Ü× Ò Ö"ñ !r)   c                óR   € V e   \        V 4      \        n        \        P                  # )z!Set / unset MuPDF device caching.)rè   r¸  r�   rš  s   &r'   Úset_low_memoryÚTOOLS.set_low_memory	c  s!   € ð Š>Ü)-¨b«ŒHÔ&Ü×)Ñ)Ð)r)   c                ó²   € V eE   \        V 4      \        n        \        '       d%   \        P
                  ! \        P                  4       \        P                  # )z Set / unset small glyph heights.)rè   r¸  rŽ   r  r   Úset_small_glyph_heightsrš  s   &r'   rÃ  ÚTOOLS.set_small_glyph_heightsc  s:   € ð Š>Ü+/°«8ŒHÔ(ß‹{Ü×-Ò-¬h×.JÑ.JÔKÜ×+Ñ+Ð+r)   c                ó²   € V eE   \        V 4      \        n        \        '       d%   \        P
                  ! \        P                  4       \        P                  # )z;
Set / unset returning fontnames with their subset prefix.
)rè   r¸  r�   r  r   Úset_subset_fontnamesrš  s   &r'   rÆ  ÚTOOLS.set_subset_fontnamesc  s:   € ð
 Š>Ü(,¨R«ŒHÔ%ß‹{Ü×*Ò*¬8×+DÑ+DÔEÜ×(Ñ(Ð(r)   c                 ó�   € \        \        P                  ! 4       \        P                  ! 4       \        P                  ! 4       R7      # )z
Show anti-aliasing values.
)rš  r   Úgraphics_min_line_width)r7   r£   Úfz_graphics_aa_levelÚfz_text_aa_levelÚfz_graphics_min_line_widthr,   r)   r'   Úshow_aa_levelÚTOOLS.show_aa_level$c  s5   € ô
 Ü ×5Ò5Ó7Ü×-Ò-Ó/Ü*/×*JÒ*JÓ*Lôð 	r)   c                 ó   € R# )z
MuPDF store size limit.
Nr,   r,   r)   r'   Ústore_maxsizeÚTOOLS.store_maxsize/c  ó   € ñ r)   c                óŽ   € V ^d8¼  d   \         P                  ! 4        ^ # V ^ 8”  d    \         P                  ! ^dV ,
          4       R# R# )z'
Free 'percent' of current store size.
N)r£   Úfz_empty_storeÚfz_shrink_store)Úpercents   &r'   rë	  ÚTOOLS.store_shrink7c  s8   € ð
 �cŒ>Ü× Ò Ô"ÙØ�QŒ;Ü×!Ò! 3¨¥=Ö1ñ r)   c                 ó   € R# )z
MuPDF current store size.
Nr,   r,   r)   r'   Ú
store_sizeÚTOOLS.store_sizeCc  rÒ  r)   c                ó²   € V eE   \        V 4      \        n        \        '       d%   \        P
                  ! \        P                  4       \        P                  # )z1
Set ascender / descender corrections on or off.
)rè   r¸  r�   r  r   Úset_skip_quad_correctionsrš  s   &r'   Úunset_quad_correctionsÚTOOLS.unset_quad_correctionsKc  s:   € ð
 Š>Ü-1°"«XŒHÔ*ß‹{Ü×/Ò/´×0NÑ0NÔOÜ×-Ñ-Ð-r)   r×  r,   rv  ru  r+   )3r/   r0   r1   r2   rc  rB  r|  r[  rs  r¤  rP  r#  r  r"  r   r!  r%  r$  r&  r  r[  r  rÚ  r‚  rß  rŽ  rÅ  r•  r8  r›  rž  r  rÓ  r¥  r«  r®  r  r¸  r½  rÀ  rÃ  rÆ  rÍ  rÐ  rë	  rÙ  rÝ  rO  râ  Úfitz_configr3   r,   r)   r'   r  r  a  s1  † ñò7ð ñó ðð. ñó ðð óó ðð ñ#3ó ð#3ðJ ñó ðð ñó ðð ñó ðð& ñó ðð* ñó ðð& ñó ðð& ñó ðð& ñó ðð ñó ðð* ñó ðð6 ñ4ó ð4ðl ñ3ó ð3ð ñAó ðAð ñ0ó ð0òð ñ"ó ð"ð
 ñ%ó ð%ð ó4ó ð4ð ó$ó ð$ð ó&ó ð&ð ñ ó ð ð ó	ó ð	ð ñ)ó ð)ð ñ%ó ð%ð ó ó ð ð ñó ðð" ñ=ó ð=ð ó#ó ð#ð ó*ó ð*ð ó,ó ð,ð ó)ó ð)ð ñó ðð ñó ðð ñ2ó ð2ð ñó ðð ó.ó ð.ð Ðá Ó"„Kr)   r  c                 óˆ   € \         P                  ! 4        \         P                  ! R 4       \         P                  ! R 4       R # r+   )r£   r¤  Úfz_set_warning_callbackÚfz_set_error_callbackr,   r)   r'   Ú_atexitrã  sc  s*   € ä	×ÒÔÜ	×!Ò! $Ô'Ü	×Ò Ö%r)   ©Ú	_wxcolorsc                 ó   € \         # )z}
Returns dict mapping from name to (red, green, blue).
    name: lower-case name.
    red, green, blue: float in range 0..1.
)Úpdfcolorr,   r)   r'   Úcolors_pdf_dictrè  �c  s	   € ô €Or)   c                 ó   € \         # )z}
Returns list of (name, red, green, blue) tuples:
    name: upper-case name.
    red, green, blue: integers in range 0..255.
rä  r,   r)   r'   Úcolors_wx_listrê  –c  s
   € ô Ðr)   c                ó¢  € ^ RI p\        R\        : 24       \        P                  P                  \         R24      pV R2pVP                  4       R8X  d   V R2pMTp\        R4       \        RV: 24       \        R	V: 24       \        P                  P                  V4      '       g   Q R
V: R24       h\        P                  P                  V4      '       g   Q RV: R24       hVP                  4       R8w  EdN   V '       EdE   \        RV: R\         R24       \        P                  R4      R,          pRP                  V4      pRV R2p\        RV: R24       \        P                  ! V4       FÐ  p\        P                  ! Wg4      pV'       g   K#  V RVP                  ^4       2p	\        P                  P                  V	4      '       g&   \        P                  P!                  V	4      '       d'   \        RV	: R24       \        P"                  ! V	4       \        RV	 RV 24       \        P$                  ! Wy4       KÒ  	  W43# )a­  
Allows PyMuPDF installation to be used to compile and link programmes that
use the MuPDF C/C++ API.

Args:
    make_links:
        If true, then on non-windows we also create softlinks to any shared
        libraries that are supplied with a version suffix; this allows them
        to be used in a link command.

        For example we create links such as:

        site-packages/pymupdf/
            libmupdf.so -> libmupdf.so.26.7
            libmupdfcpp.so -> libmupdfcpp.so.26.7

Returns: (mupdf_include, mupdf_lib).
    mupdf_include:
        Path of MuPDF include directory within PyMuPDF install.
    mupdf_lib
        Path of MuPDF library directory within PyMuPDF install.
Nzmupdf_version=z/..z/mupdf-devel/includeÚWindowsz/mupdf-devel/libzWithin installed PyMuPDF:z    mupdf_include=z    mupdf_lib=zNot a directory: mupdf_include=r   zNot a directory: mupdf_lib=zCreating symlinks in mupdf_lib=z for MuPDF-z .so files.:r™  r   Nz[.]z^(lib[^.]+[.]so)[.]Ú$zmupdf_lib_regex=rˆ	  zRemoving existing link pfrom=zCreating symlink: z -> )r  r%   r  rh   r   ÚnormpathÚ__file__Úsystemr½  r8   r  r¾  rw  r‚  rx  Úislinkr¾  r²  Úsymlink)
Ú
make_linksr  r²  Úmupdf_includeÚ	mupdf_libÚregex_suffixÚmupdf_lib_regexÚleafr‹  Úpfroms
   &         r'   Ú_mupdf_develrú  Ÿc  sý  € ó. äˆ>Œ=Ñ
ÐÔä
�‰×ÑœH˜: SÐ)Ó*€Aà�cÐ-Ð.€Mà‡�Ó˜IÔ%à�cÐ)Ð*‰	ð ˆ	ÜÐ
#Ô%ÜÐ
ˆ}ÑÐÔ Üˆ/ˆy‰lÐÔä�7‰7�=‰=˜×'Ò'ÐNÐ+K¸]Ñ<LÈAÐ)NÓNÐ'Ü�7‰7�=‰=˜×#Ò#ÐFÐ'C¸¹ÀAÐ%FÓFÐ#à‡�Ó˜IÕ%¯*¨*ô 	Ð. I¡<¨{¼=¸/ÈÐUÔVÜ$×*Ñ*¨3Ó/°Õ4ˆØ—z‘z ,Ó/ˆØ/°¨~¸QÐ?ˆÜÐˆÑ  Ð"Ô#Ü—J’J˜yÖ)ˆDÜ—’˜Ó/ˆAß‰qØ$˜+ Q q§w¡w¨q£z lÐ3�ô —7‘7—>‘> %×(Ò(¬B¯G©G¯N©N¸5×,AÒ,AÜÐ8°%±¸Ð;Ô<Ü—I’I˜eÔ$ÜÐ(¨¨¨t°D°6Ð:Ô;Ü—
’
˜4Ö'ñ *ð Ð#Ð#r)   )r  )rF  c                  ó   € ] tR tRtRtR# )ÚFitzDeprecationiüc  r,   Nrò  r,   r)   r'   rü  rü  üc  s   † Ûr)   rü  c                 ó  € \         P                  ! R \        R7       RþR lp V \         n        RÿR lpV! \        RR4       V! \        R4       V! \        RR	4       V! \        R
4       V! \        R4       V! \        RR4       V! \        R4       V! \        RR4       V! \        R4       V! \        R4       V! \        R4       V! \        R4       V! \        R4       V! \        R4       V! \        RR4       V! \        R4       V! \        R4       V! \        RR4       V! \
        R4       V! \
        RR4       V! \        R4       V! \        R4       V! \        RR 4       V! \        R!4       V! \        R"4       V! \        R#R$4       V! \        R%R&4       V! \        R'R(4       V! \        R)R*4       V! \        R+R,4       V! \        R-R.4       V! \        R/R04       V! \        R1R24       V! \        R34       V! \        R44       V! \        R54       V! \        R64       V! \        R74       V! \        R8R94       V! \        R:R;4       V! \        R<R=4       V! \        R>4       V! \        R?4       V! \        R@RA4       V! \        RBRC4       V! \        RDRE4       V! \        RF4       V! \        RG4       V! \        RHRI4       V! \        RJ4       V! \        RKRL4       V! \        RMRN4       V! \        RO4       V! \        RP4       V! \        RQ4       V! \        RR4       V! \        RS4       V! \        RT4       V! \        RU4       V! \        RV4       V! \        RW4       V! \        RX4       V! \        RYRZ4       V! \        R[4       V! \        R\R]4       V! \        R^R_4       V! \        R`Ra4       V! \        Rb4       V! \        Rc4       V! \        Rd4       V! \        Re4       V! \        RfRg4       V! \        Rh4       V! \        Ri4       V! \        Rj4       V! \        RkRl4       V! \        Rm4       V! \        Rn4       V! \        Ro4       V! \        Rp4       V! \        RqRr4       V! \        Rs4       V! \        RsRt4       V! \        Ru4       V! \        Rv4       V! \        Rw4       V! \        Rx4       V! \        Ry4       V! \        R4       V! \        R4       V! \        Rz4       V! \        R{R|4       V! \        R}R~4       V! \        RR€4       V! \        R�R‚4       V! RRƒR„4       V! RR…R†4       V! RR‡4       V! RR‡Rˆ4       V! RR‰RŠ4       V! RR‹RŒ4       V! RR�RŽ4       V! RR�4       V! RR�4       V! \        Ry4       V! \        R‘4       V! \        R’4       V! \        R“4       V! \        R”4       V! \        R•4       V! \        R–4       V! \        R—4       V! \        R˜4       V! \        R™4       V! \        Rš4       V! \        R›4       V! \        Rœ4       V! \        R�4       V! \        Rž4       V! \        RŸ4       V! \        R 4       V! \        R¡4       V! \        R¢4       V! \        R£4       V! \        R¤R¥4       V! \        R¦R§4       V! \        R¨4       V! \        R©4       V! \        Rª4       V! \        R«4       V! \        R¬4       V! \        R­4       V! \        R®4       V! \        R¯4       V! \        R°4       V! \        R±4       V! \        R²4       V! \        R³4       V! \        R´4       V! \        Rµ4       V! \        R¶4       V! \        R·4       V! \        R¸4       V! \        R¹4       V! \        Rº4       V! \        R»R¼4       V! \        R½4       V! \        R¾R¿4       V! \        RÀ4       V! \        RÁRÂ4       V! \        RÃ4       V! \        R4       V! \        RÄRÅ4       V! \        R
4       V! \        RÆ4       V! \        RÇ4       V! \        R4       V! \        RR4       V! \        RÈ4       V! \        RÉ4       V! \        RÊ4       V! \        RË4       V! \        RÌ4       V! \        RÍRÎ4       V! \        RÏ4       V! \        RÐ4       V! \        RÑRÒ4       V! \        RÓRÔ4       V! \        RÕ4       V! \        RÖ4       V! \        R×4       V! \        RØ4       V! \        RÙRÚ4       V! \        RÛRÜ4       V! \        RÝ4       V! \        RÞRß4       V! \        Rà4       V! \        Rá4       V! \        Râ4       V! \        Rã4       V! \        Rä4       V! \        RåRæ4       V! \        Rç4       V! \        RèRé4       V! \        RêRë4       V! \        RìRí4       V! \        RîRï4       V! \        RîRð4       V! \        Rñ4       V! \        RòRó4       V! \        Rô4       V! \        Rõ4       V! \        R4       V! \        Rö4       V! \        R÷Rø4       V! \        R÷Rù4       V! \        R÷Rú4       V! \        Rû4       V! \        Rw4       V! \        Rü4       V! \        Rs4       V! \        RsRt4       V! \        Ru4       V! \        Rv4       V! \        Rw4       V! \        Rx4       V! \        Rý4       V! \        Rã4       V! \         R¬4       V! \         R­4       V! \         R®4       V! \         R¯4       V! \         R°4       V! \         R±4       V! \         R²4       V! \         R³4       V! \         R´4       V! \         Rµ4       V! \         R¶4       V! \         RË4       V! \         RÌ4       R# (   Úonce©ÚcategoryNc                óØ   € \         P                  ! WW#VR 7      pVP                  R4      pV^ 8  d   \        V4       R# WgR P	                  4       ^ ,          R,          p\        V4       R# ))rs   rü  NrW  )ÚwarningsÚformatwarningr§   r%   r  )rž   Úcatrj   rl   re   rs   r   rŸ  s   &&&&&&  r'   ÚshowthisÚ!restore_aliases.<locals>.showthisd  sY   € Ü×%Ò% c°ÀtÔLˆØ�I‰IÐ'Ó(ˆØˆqŒ5Ü�ŒIÙØ�Bˆx×"Ñ"Ó$ QÕ'¨Õ+ˆÜˆDŽ	r)   c                óÖ  a aaa€ S f   \         P                  \        ,          o S'       gE   RoRpS F:  pVR8X  d   RpK  V'       d   SVP                  4       ,          oRpK1  SV,          oK<  	  \	        S S4      o\	        S SR4      '       d   Q RS  RS 24       h\        S4      '       d0   V VVV3R lp\        S SV4       R	S R
SP                   2Vn        R# \        S SS4       R# )ai  
Adds an alias for a class_ or module item clled <class_>.<new>.

class_:
    Class/module to modify; use None for the current module.
new_name:
    String name of existing item, e.g. name of method.
legacy_name:
    Name of legacy object to create in <class_>. If None, we generate
    from <item> by removing underscores and capitalising the next
    letter.
Nr`   Fr@  Tzclass z already has c            	     ób   <€ \         P                  ! R S: RS RS R2\        R7       S! V / VB # )z"legacy_name=z" removed from z after v1.19.0 - use "z".rÿ  )r  r.  rü  )r  r  Úclass_Úlegacy_nameÚnew_nameÚ
new_objects   *,€€€€r'   Údeprecated_functionÚ<restore_aliases.<locals>._alias.<locals>.deprecated_function*d  s@   ø€ Ü—’Ø(˜K™>¨¸¸Ð@VÐW_ÐV`Ð`bÐcÜ!0õñ " DÐ3¨FÑ3Ð3r)   z;*** Deprecated and removed in version after v1.19.0 - use "z". ***
)rö  Úmodulesr/   rµ
  rî   r]  r÷  rc  )r	  r  r
  Úcapitalise_nextrõ  r  r  s   fff   @r'   Ú_aliasÚrestore_aliases.<locals>._aliasd  së   û€ ð Š>Ü—[‘[¤Õ*ˆFßØˆKØ#ˆOÛ�Ø˜”8Ø&*’Oß$Ø 1§7¡7£9Õ,�KØ&+’Oà 1Õ$’Kñ ô ˜f hÓ/ˆ
Ü˜F K°×6Ò6Ðc¸&ÀÀÈÐVaÐUbÐ8cÓcÐ6Ü�Z× Ò ÷4ð 4ô �V˜[Ð*=Ô>àQÐRZÐQ[Ð[cØ!×)Ñ)Ð*ð,ð  Ö'ô
 �V˜[¨*Ö5r)   rÔ  ÚfileGetrö  r  ÚsoundGetr  r  r$  ÚgetTextPagerQ  r‚  ÚsetBlendModer�  r   r¤  r³  rÉ  rÌ  rÐ  ÚsetOCrØ  rê  rY  ÚfileUpdrw  rx  rÉ  ÚconvertToPDFr·  r„  r…  ÚdeletePageRangerÒ  ÚembeddedFileAddrÖ  ÚembeddedFileCountrÛ  ÚembeddedFileDelrß  ÚembeddedFileGetrç  ÚembeddedFileInfor²  ÚembeddedFileNamesrð  ÚembeddedFileUpdr  r  r(  r4  rU  ry  ÚgetOCGsr”  ÚgetPageFontListr™  ÚgetPageImageListrª  r³  r·  ÚgetPageXObjectListr½  ÚgetSigFlagsrÄ  ÚgetToCrÐ  ró  ré  Ú	insertPDFr	  r„  Ú	isFormPDFrƒ  ÚisPDFr	  r	  r\	  r¥  r}	  r�	  rÇ  rò  r­	  rv  r·	  ÚpageCropBoxr(  r]  Ú
PDFCatalogrä  Ú
PDFTrailerræ	  ÚpreviousLocationrÃ  r¥
  rÃ  r’
  r'  ÚsetToCr2  r_  r˜
  rº  ÚisStreamr„  r^  r—
  r»  rè  ÚmetadataXMLrØ  ÚgetRectArear¯  r°  rº  r¹  rÂ  r9  r=  Ú	preRotaterC  ÚpreScalerF  ÚpreShearrK  ÚpreTranslaterÐ  Ú	getPDFnowr  Ú	getPDFstrr¡  ÚgetTextlengthr8  ÚImagePropertiesrÄ  Ú	PaperRectrÃ  Ú	PaperSizerÇ  rp  rA  r6  r<  rB  rF  rO  rT  rY  r_  rc  rg  rn  rt  rx  r}  r�  r†  rŠ  rŸ  r¶	  r  rß  ÚCropBoxPositionrã  r”
  rú  ru  r  r  r  r  r   r$  r(  r¬  r3  r;  r@  rK  rO  rS  r–
  rl  ÚgetDisplayListr}  rÏ  ÚgetFontListrÜ  r†  ÚgetImageListr)  rï  ÚgetSVGimagerù  rÿ  r  r@  r¦  rŸ  r®  rØ  Ú
_isWrappedr–  rN  rJ  r�  rl  ÚMediaBoxSizer«  rt  rx  r¤
  r—  Ú
setCropBoxr¥  ÚsetMediaBoxrî  r1  ÚshowPDFpagert  rÁ  rÙ  rÎ  ré  r8  Ú
copyPixmaprH  rO  ÚinvertIRectr  ÚpillowWriterƒ  Ú
pillowDatar"  Ú
writeImageÚwritePNGr»  rí  ÚsetResolutionrÄ  rÇ  rÛ  rè  ÚgetImageDataÚ
getPNGDataÚ
getPNGdatarà  ry  rR  r<  r+   )r  Úfilterwarningsrü  Úshowwarningrâ   rX  rÁ   râ  r   r  r+  rÒ   rì  r)  r+  rÍ  ro  )r  r  s     r'   Úrestore_aliasesrS  ÿc  s‹	  € Ü×Ò˜V¬oÕ>ôð $„HÔô)6ñV ŒE�:¨IÔ6Ù
ŒE�<Ô Ù
ŒE�;¨JÔ7Ù
ŒE�:ÔÙ
ŒE�=Ô!Ù
ŒE�>¨MÔ:Ù
ŒE�;ÔÙ
ŒE�?¨NÔ;Ù
ŒE�<Ô Ù
ŒE�<Ô Ù
ŒE�;ÔÙ
ŒE�:ÔÙ
ŒE�?Ô#Ù
ŒE�:ÔÙ
ŒE�8˜WÔ%Ù
ŒE�=Ô!Ù
ŒE�:ÔÙ
ŒE�=¨IÔ6Ù
ŒK˜Ô&Ù
ŒK˜¨MÔ:Ù
ŒH�oÔ&Ù
ŒHÐ*Ô+Ù
ŒHÐ&¨NÔ;Ù
ŒH�kÔ"Ù
ŒH�mÔ$Ù
ŒH�nÐ,=Ô>Ù
ŒH�mÐ,=Ô>Ù
ŒH�oÐ,?Ô@Ù
ŒH�mÐ,=Ô>Ù
ŒH�mÐ,=Ô>Ù
ŒH�nÐ,>Ô?Ù
ŒH�oÐ,?Ô@Ù
ŒH�mÐ,=Ô>Ù
ŒH�nÔ%Ù
ŒH�oÔ&Ù
ŒH�oÔ&Ù
ŒH�oÔ&Ù
ŒHÐ'Ô(Ù
ŒH�j¨IÔ6Ù
ŒHÐ&Ð,=Ô>Ù
ŒHÐ'Ð,>Ô?Ù
ŒHÐ'Ô(Ù
ŒH�oÔ&Ù
ŒHÐ)Ð,@ÔAÙ
ŒH�n¨MÔ:Ù
ŒH�i Ô*Ù
ŒHÐ(Ô)Ù
ŒH�mÔ$Ù
ŒH�l¨KÔ8Ù
ŒH�jÔ!Ù
ŒH�m¨KÔ8Ù
ŒH�h Ô(Ù
ŒH�oÔ&Ù
ŒH�mÔ$Ù
ŒH�oÔ&Ù
ŒH�kÔ"Ù
ŒH�oÔ&Ù
ŒH�kÔ"Ù
ŒH�lÔ#Ù
ŒH�jÔ!Ù
ŒH�oÔ&Ù
ŒH�lÔ#Ù
ŒH�n¨MÔ:Ù
ŒH�kÔ"Ù
ŒH�m¨LÔ9Ù
ŒH�m¨LÔ9Ù
ŒH�oÐ,>Ô?Ù
ŒH�nÔ%Ù
ŒHÐ'Ô(Ù
ŒH�nÔ%Ù
ŒH�nÔ%Ù
ŒH�i Ô*Ù
ŒHÐ(Ô)Ù
ŒH�oÔ&Ù
ŒH�oÔ&Ù
ŒHÐ&¨JÔ7Ù
ŒH�mÔ$Ù
ŒH�mÔ$Ù
ŒH�mÔ$Ù
ŒHÐ'Ô(Ù
ŒHÐ)¨MÔ:Ù
ŒE�:ÔÙ
ŒE�:¨MÔ:Ù
ŒE�?Ô#Ù
ŒE�>Ô"Ù
ŒE�:ÔÙ
ŒE�=Ô!Ù
ŒD�-Ô Ù
ŒD�,ÔÙ
ŒD�,ÔÙ
ŒFÐ$Ô%Ù
ŒF�K¨KÔ8Ù
ŒF�J¨JÔ7Ù
ŒF�J¨JÔ7Ù
ŒF�N¨NÔ;Ù
ˆD�-¨KÔ8Ù
ˆD�-¨KÔ8Ù
ˆDÐ#Ô$Ù
ˆDÐ#¨OÔ<Ù
ˆD�/Ð,=Ô>Ù
ˆD�,¨KÔ8Ù
ˆD�,¨KÔ8Ù
ˆD�-Ô Ù
ˆD�.Ô!Ù
ŒG�]Ô#Ù
ŒG�YÔÙ
ŒDÐ#Ô$Ù
ŒDÐ$Ô%Ù
ŒDÐ"Ô#Ù
ŒDÐ&Ô'Ù
ŒDÐ'Ô(Ù
ŒD�/Ô"Ù
ŒDÐ"Ô#Ù
ŒDÐ%Ô&Ù
ŒDÐ&Ô'Ù
ŒDÐ"Ô#Ù
ŒDÐ$Ô%Ù
ŒDÐ&Ô'Ù
ŒDÐ#Ô$Ù
ŒDÐ'Ô(Ù
ŒDÐ"Ô#Ù
ŒDÐ'Ô(Ù
ŒD�,ÔÙ
ŒDÐ"Ô#Ù
ŒD�)¨IÔ6Ù
ŒDÐ$Ð,=Ô>Ù
ŒD�.Ô!Ù
ŒD�-Ô Ù
ŒD�/Ô"Ù
ŒDÐ%Ô&Ù
ŒD�-Ô Ù
ŒD�-Ô Ù
ŒD�,ÔÙ
ŒD�+ÔÙ
ŒD�+ÔÙ
ŒD�/Ô"Ù
ŒD�+ÔÙ
ŒD�+ÔÙ
ŒD�-Ô Ù
ŒD�/Ô"Ù
ŒD�-Ô Ù
ŒD�-Ô Ù
ŒD�,ÔÙ
ŒD�.Ô!Ù
ŒD�.Ô!Ù
ŒDÐ#Ð,<Ô=Ù
ŒD�.Ô!Ù
ŒD�+¨MÔ:Ù
ŒDÐ"Ô#Ù
ŒD�,¨NÔ;Ù
ŒD�+ÔÙ
ŒD�,ÔÙ
ŒD�/¨MÔ:Ù
ŒD�*ÔÙ
ŒDÐ#Ô$Ù
ŒDÐ"Ô#Ù
ŒD�-Ô Ù
ŒD�.¨MÔ:Ù
ŒD�-Ô Ù
ŒD�.Ô!Ù
ŒD�-Ô Ù
ŒD�-Ô Ù
ŒDÐ"Ô#Ù
ŒD�,¨LÔ9Ù
ŒD�,ÔÙ
ŒD�,ÔÙ
ŒD�*¨JÔ7Ù
ŒD�/¨NÔ;Ù
ŒD�+ÔÙ
ŒD�/Ô"Ù
ŒDÐ#Ô$Ù
ŒD�,ÔÙ
ŒD�-¨LÔ9Ù
ŒD�.¨MÔ:Ù
ŒD�.Ô!Ù
ŒD�/¨MÔ:Ù
ŒDÐ)Ô*Ù
ŒD�-Ô Ù
ŒD�/Ô"Ù
ŒD�,ÔÙ
ŒF�LÔ!Ù
ŒF�F¨LÔ9Ù
ŒF�LÔ!Ù
ŒF�N¨MÔ:Ù
ŒF�J¨MÔ:Ù
ŒF�M¨LÔ9Ù
ŒF�F¨LÔ9Ù
ŒF�F¨JÔ7Ù
ŒF�KÔ Ù
ŒF�I¨OÔ<Ù
ŒF�LÔ!Ù
ŒF�KÔ Ù
ŒF�JÔÙ
ŒF�KÔ Ù
ŒF�I¨NÔ;Ù
ŒF�I¨LÔ9Ù
ŒF�I¨LÔ9Ù
ŒD�+ÔÙ
ŒD�*ÔÙ
ŒDÐ"Ô#Ù
ŒD�*ÔÙ
ŒD�*¨MÔ:Ù
ŒD�/Ô"Ù
ŒD�.Ô!Ù
ŒD�*ÔÙ
ŒD�-Ô Ù
ŒJ˜Ô'Ù
ŒJ˜Ô%Ù
ŒE�=Ô!Ù
ŒE�=Ô!Ù
ŒE�<Ô Ù
ŒE�;ÔÙ
ŒE�;ÔÙ
ŒE�?Ô#Ù
ŒE�;ÔÙ
ŒE�;ÔÙ
ŒE�=Ô!Ù
ŒE�?Ô#Ù
ŒE�=Ô!Ù
ŒE�=Ô!Ù
ŒEÐ#Ö$r)   zPyMuPDF z : Python bindings for the MuPDF z library.
Python z running on r  z-bit).
)r`   r™  r  r%  )rx   rx   rx   rx   rx   N)ÚPDF_ÚUCDN_SCRIPT_)r¾  r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  r>  r=  i   €)r™  é   r™  )r™  rV  r†  (   ©é·   gq=
×£pÝ?rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  )é    ç      Ð?)rˆ  çZd;ßOÕ?)é"   ç7‰A`åÐæ?)é#   r   )é$   çÅ °rh‘á?)é%   ç-²�ï§ê?)é&   gL7‰A`åè?)é'   çj¼t“Ü?)é(   r[  )é)   r[  )é*   r   )é+   r`  )é,   rZ  )é-   r`  )é.   rZ  )é/   ç˜nƒÀÊÑ?)é0   r   )é1   r   )rð  r   )é3   r   )é4   r   )é5   r   )é6   r   )é7   r   )é8   r   )é9   r   )é:   rn  )é;   rn  )é<   r`  )é=   r`  )é>   r`  )é?   gÑ"Ûù~jÜ?)é@   r`  )éA   ç´Èv¾Ÿç?)éB   çòÒMbXå?)éC   r€  )éD   g/Ý$�•ã?)éE   çZd;ßO�ã?)éF   çÑ"Ûù~jè?)éG   ç²�ï§ÆKã?)rñ  r€  )éI   r[  )rò  çþÔxé&1ä?)éK   r€  )éL   çÁÊ¡E¶óå?)éM   g¦›Ä °rì?)éN   r€  )r  r€  )éP   çú~j¼t“è?)éQ   gƒÀÊ¡E¶ç?)éR   g˜nƒÀÊá?)éS   g‹lçû©ñâ?)éT   r†  )éU   ç®Gázæ?)éV   re  )éW   r“  )rû  g¤p=
×£ä?)éY   çq=
×£pé?)r£  r†  )é[   r[  )rt  gV-²�ë?)é]   r[  )é^   çu“Vå?)ró  r   )é`   r   )éa   rŒ  )éb   r`  )éc   r`  )éd   çV-²�ß?)ée   re  )éf   çyé&1¬à?)ég   ççû©ñÒMÚ?)éh   rŠ  )ró  çu“VÕ?)éj   rŠ  )ék   r`  )él   r`  )ém   ç;ßO�—nâ?)én   rª  )éo   r`  )ép   r`  )r  rª  )ér   r`  )és   rŠ  )ét   re  )éu   r³  )év   r]  )éw   r�  )éx   gZd;ßO�ß?)éy   r�  )éz   r§  )é{   ç¸…ëQ¸Þ?)é|   r:  )rü  rÁ  )é~   r`  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  rW  )rF  rZ  )é¡   g×£p=
×ã?)r  gV-²�Ï?)é£   r`  )é¤   gÇK7‰A`Å?)é¥   r]  )é¦   r   )é§   çj¼t“è?)é¨   rÊ  )é©   rÊ  )éª   rÊ  )é«   çyé&1¬ð?)é¬   r]  )é­   rŠ  )é®   ç/Ý$�•ï?)é¯   rŠ  )r  gš™™™™™Ù?)é±   r`  )é²   r¬  )é³   r`  )rÒ  r`  )éµ   r³  )é¶   r§  rW  )é¸   r`  )é¹   r`  )éº   r`  )é»   r`  )é¼   r™  )é½   rŠ  )é¾   r™  )é¿   r¡  )éÀ   ç¼t“Vê?)éÁ   r�  )éÂ   r�  )éÃ   rÓ  )éÄ   r“  )éÅ   r“  )éÆ   rã  )éÇ   r“  )éÈ   r“  )éÉ   r]  )éÊ   r]  )éË   r]  )éÌ   r]  )éÍ   r]  )éÎ   r]  )éÏ   r]  )éÐ   r“  )éÑ   r]  )r÷  çHáz®Gé?)éÓ   rõ  )éÔ   g{®Gázì?)éÕ   rã  )éÖ   r`  )é×   r`  )éØ   r]  )éÙ   rŠ  )éÚ   rŠ  )éÛ   rÏ  )éÜ   rÓ  )éÝ   rŠ  )éÞ   rÓ  )éß   rŠ  )éà   r§  )éá   r®  )éâ   rõ  )éã   rõ  )éä   çôýÔxé&é?)éå   r]  )r  çú~j¼t“Ø?)éç   r
  )éè   r
  )éé   r
  )éê   r
  )éë   r
  )éì   r§  )éí   r§  )éî   r§  )éï   r§  rW  )éñ   r®  )éò   gð§ÆK7‰Ñ?)éó   r�  )éô   r�  )éõ   r�  )éö   r
  )é÷   r`  )éø   r
  )r  r
  )éú   r
  )éû   r
  )éü   r§  )éý   r§  )r  r§  rW  (   ©rX  çžï§ÆK7é?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rY  rn  )rˆ  ç^ºI+ï?)r\  g�—nƒÀî?)r^  r"  )r_  g\�Âõ(\ï?)ra  g5^ºIç?)rc  çsh‘í|?é?)rd  rõ  )rf  çZd;ßOé?)rg  r™  )rh  g¸…ëQ¸î?)ri  g?5^ºIî?)rj  r`  )rk  g\�Âõ(\ë?)rl  çôýÔxé&í?)rm  gB`åÐ"Ûí?)ro  r%  )rp  g=
×£p=î?)rð  r"  )rq  g)\�Âõ(è?)rr  gßO�—në?)rs  çü©ñÒMbè?)rt  ç'1¬Zè?)ru  gƒÀÊ¡Eâ?)rv  gD‹lçû©å?)rw  rˆ  )rx  çR¸…ëQè?)ry  ç}?5^ºIè?)rz  gTã¥›Ä è?)r{  r§  )r|  gD‹lçû©á?)r}  gÉv¾Ÿ/á?)r~  gX9´Èvâ?)r  g¾Ÿ/Ý$æ?)r�  r  )rƒ  r!  )r„  r!  )r…  rõ  )r‡  gÇK7‰A`é?)r‰  gœÄ °rhé?)rñ  çé&1¬ê?)r‹  rã  )rò  r#  )r�  g¶óýÔxéê?)rŽ  rã  )r�  rb  )r‘  r*  )r  çd;ßO�—ê?)r’  gð§ÆK7‰í?)r”  g+‡ÙÎç?)r•  g‰A`åÐ"ç?)r–  g+‡ÙÎ÷ç?)r—  rõ  )r˜  çòÒMbXé?)rš  g=
×£p=æ?)r›  ç¢E¶óýÔè?)rû  r“  )rœ  r,  )r£  r)  )rž  ç9´Èv¾Ÿæ?)rt  g-²�ï§æ?)rŸ  gmçû©ñÒå?)r   g;ßO�—næ?)ró  g;ßO�—nê?)r¢  g®Gázê?)r£  r#  )r¤  r#  )r¥  r.  )r¦  g–C‹lçûå?)r¨  çƒÀÊ¡Eæ?)r©  g?5^ºIæ?)r«  r  )r­  gÉv¾Ÿ/é?)ró  r]  )r¯  r$  )r°  g…ëQ¸é?)r±  r$  )r²  çV-²�ïë?)r´  r'  )rµ  r&  )r¶  r&  )r  r)  )r·  r)  )r¸  ç%�•C‹ì?)r¹  r1  )rº  r!  )r»  gJ+‡é?)r¼  gÕxé&1Ü?)r½  gD‹lçû©Á?)r¾  gî|?5^ºÑ?)r¿  g�Âõ(\�Ú?)rÀ  çJ+‡Ù?)rÂ  r2  )rü  çÇK7‰A`å?)rÃ  r3  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rÄ  g�•C‹lç?)r  çœÄ °rhá?)rÅ  r4  )rÆ  g…ëQ¸í?)rÇ  r‚  )rÈ  r(  )rÉ  r(  )rË  r-  )rÌ  g
×£p=
ã?)rÍ  gh‘í|?5æ?)rÎ  gÕxé&1ä?)rÐ  r!  )rÑ  r!  )rÒ  r!  )rÔ  r!  )r  r!  )rÕ  r!  )rÖ  r!  )r×  r!  )rÒ  r!  )rØ  r!  )rÙ  r!  r   )rÚ  r!  )rÛ  r!  )rÜ  r!  )rÝ  r!  )rÞ  r!  )rß  r!  )rà  r!  )rá  r!  )râ  r!  )rä  r!  )rå  r!  )ræ  r!  )rç  r!  )rè  r!  )ré  r!  )rê  r!  )rë  r!  )rì  r!  )rí  r!  )rî  r!  )rï  r!  )rð  r!  )rñ  r!  )rò  r!  )ró  r!  )rô  r!  )r÷  r!  )rö  r!  )r÷  gÏ÷Sã¥›ì?)rø  g7‰A`åÐê?)rù  g¨ÆK7‰Að?)rú  gZd;ßOÝ?)rû  çV-²�ïç?)rü  çÅ °rh‘í?)rý  r5  )rþ  gÇK7‰A`í?)rÿ  çD‹lçû©í?)r   çV-²í?)r  r8  )r  gã¥›Ä °ê?)r  r0  )r  gåÐ"Ûù~ê?)r  r6  )r  r6  )r  gòÒMbXí?)r	  gÃõ(\�Âí?)r  g˜nƒÀÊí?)r  goƒÀÊ¡Ý?)r  g¨ÆK7‰Aì?)r  ç�—nƒÀê?)r  r9  )r  çX9´Èv¾ë?)r  r:  )r  r/  )r  r/  )r  ç+‡ÙÎ÷ë?r   )r  r;  )r  r(  )r  gƒÀÊ¡Eî?)r  çyé&1¬è?)r  g®Gáz®ë?)r  r<  )r  çÑ"Ûù~jì?)r  g‹lçû©ñî?)r  r=  )r  r+  )r  r0  )r  r7  )r  g
×£p=
ï?r   r   )Ústrictr+   )rñ  rr  rx   )r¿  rx  )rè  r™  r™  r,   l        (Í  Ú__conditional_annotations__rc  Ú
__future__r   Úatexitr  Úcollectionsr!  Úimportlib.utilr›   rf   r;   rá  rh   r»  rw  rJ  rö  rÆ  rY  rô  r  r  rÁ  r`   r   rJ   r‚   r:   r  rZ   r^   r´   rO   rR   rP   rT   rW   r\   r_   r%   rv   r{   rÁ  rm  rn  rÜ  r„   r†   r  r  rŠ   r¸  r”   Ú__annotations__r–   r—   rŸ   r¢   rï  Ú	machineryÚSourceFileLoaderÚload_moduler{  r|  r£   rk   r=   r¤   Úreinit_singlethreadedr¨   Ú_buildr©   rª   r«   r¬   r­   r®   r¯   r°   r¡  r  Úpymupdf_daterµ   r8   rs  ÚFZ_VERSION_MAJORÚFZ_VERSION_MINORÚFZ_VERSION_PATCHÚversionÚVersionFitzÚVersionBindÚVersionDater¶   Úformat_grË  rÝ  r  r©  r¸  ÚOptionalrî  r7   r8  rœ  rú  ÚUnionr6   r®  ÚSequencerû  ræ  rù  r¹   rº   r»   r¼   rÊ   rÎ   r×   rÚ   rà   rÖ  râ   r~  rÚ  r+  rG  rX  ÚFzDocument_insert_pdfrú  rÁ   r<   rû  rã  rù  r   r  rQ  r©  rÂ  rZ  râ  r+  rœ  rÒ   rì  r)  r)  r+  ro  r*  r  rÍ  râ  r  r/   Ú_selfró  rD   r=  Ú_valuer5   r÷  Ú
getmembersÚPDF_SIGNATURE_SHOW_LABELSÚPDF_SIGNATURE_SHOW_DNÚPDF_SIGNATURE_SHOW_DATEÚPDF_SIGNATURE_SHOW_TEXT_NAMEÚPDF_SIGNATURE_SHOW_GRAPHIC_NAMEÚPDF_SIGNATURE_SHOW_LOGOÚ PDF_SIGNATURE_DEFAULT_APPEARANCEÚUCDN_EAST_ASIAN_HÚPDF_TX_FIELD_IS_MULTILINEÚUCDN_SCRIPT_ADLAMÚAnyr*  ÚBase14_fontnamesr"  r  rç  r8  r”  r÷  rø  rO  r«  rª  r=  ÚFZ_RECOMPRESS_NEVERÚFZ_RECOMPRESS_SAMEÚFZ_RECOMPRESS_LOSSLESSr
  ÚFZ_RECOMPRESS_J2Krý	  rÿ	  ÚFZ_SUBSAMPLE_BICUBICÚ	PDF_OC_ONÚPDF_OC_TOGGLEÚ
PDF_OC_OFFr  r  r   r  r{  r  ry  rz  ÚLINK_FLAG_R_VALIDÚLINK_FLAG_B_VALIDÚLINK_FLAG_FIT_HÚLINK_FLAG_FIT_VÚLINK_FLAG_R_IS_ZOOMr¿  rÀ  ÚSTAMP_ApprovedÚ
STAMP_AsIsÚSTAMP_ConfidentialÚSTAMP_DepartmentalÚSTAMP_ExperimentalÚSTAMP_ExpiredÚSTAMP_FinalÚSTAMP_ForCommentÚSTAMP_ForPublicReleaseÚSTAMP_NotApprovedÚSTAMP_NotForPublicReleaseÚ
STAMP_SoldÚSTAMP_TopSecretÚSTAMP_Draftr¿  rÀ  rÁ  rÂ  ÚTEXT_FONT_SUPERSCRIPTr†  r‡  rˆ  r‰  ÚTEXT_OUTPUT_TEXTÚTEXT_OUTPUT_HTMLÚTEXT_OUTPUT_JSONÚTEXT_OUTPUT_XMLÚTEXT_OUTPUT_XHTMLÚFZ_STEXT_PRESERVE_LIGATURESr¡
  ÚFZ_STEXT_PRESERVE_WHITESPACEr¢
  ÚFZ_STEXT_PRESERVE_IMAGESr„  ÚFZ_STEXT_INHIBIT_SPACESÚTEXT_INHIBIT_SPACESÚFZ_STEXT_DEHYPHENATEr 
  ÚFZ_STEXT_PRESERVE_SPANSÚTEXT_PRESERVE_SPANSÚFZ_STEXT_MEDIABOX_CLIPr£
  Ú$FZ_STEXT_USE_CID_FOR_UNKNOWN_UNICODEÚ TEXT_USE_CID_FOR_UNKNOWN_UNICODEÚFZ_STEXT_COLLECT_STRUCTUREÚTEXT_COLLECT_STRUCTUREÚFZ_STEXT_ACCURATE_BBOXESÚTEXT_ACCURATE_BBOXESÚFZ_STEXT_COLLECT_VECTORSÚTEXT_COLLECT_VECTORSÚFZ_STEXT_IGNORE_ACTUALTEXTÚTEXT_IGNORE_ACTUALTEXTÚFZ_STEXT_SEGMENTÚTEXT_SEGMENTÚFZ_STEXT_CLIPÚ	TEXT_CLIPÚFZ_STEXT_LAZY_VECTORSÚTEXT_LAZY_VECTORSÚFZ_STEXT_FUZZY_VECTORSÚTEXT_FUZZY_VECTORSÚFZ_STEXT_PARAGRAPH_BREAKÚTEXT_PARAGRAPH_BREAKÚFZ_STEXT_TABLE_HUNTÚTEXT_TABLE_HUNTÚFZ_STEXT_COLLECT_STYLESÚTEXT_COLLECT_STYLESÚ$FZ_STEXT_USE_GID_FOR_UNKNOWN_UNICODEÚ TEXT_USE_GID_FOR_UNKNOWN_UNICODEr  ÚTEXT_CLIP_RECTÚFZ_STEXT_ACCURATE_ASCENDERSÚTEXT_ACCURATE_ASCENDERSÚFZ_STEXT_ACCURATE_SIDE_BEARINGSÚTEXT_ACCURATE_SIDE_BEARINGSÚTEXT_STEXT_SEGMENTÚTEXT_CID_FOR_UNKNOWN_UNICODEÚTEXTFLAGS_WORDSÚTEXTFLAGS_BLOCKSÚTEXTFLAGS_DICTÚTEXTFLAGS_RAWDICTÚTEXTFLAGS_SEARCHÚTEXTFLAGS_HTMLÚTEXTFLAGS_XHTMLÚTEXTFLAGS_XMLÚTEXTFLAGS_TEXTÚTEXT_ENCODING_LATINÚTEXT_ENCODING_GREEKÚTEXT_ENCODING_CYRILLICr‘  r2  r.  r0  ÚPDF_BM_ColorÚPDF_BM_ColorBurnÚPDF_BM_ColorDodgeÚPDF_BM_DarkenÚPDF_BM_DifferenceÚPDF_BM_ExclusionÚPDF_BM_HardLightÚ
PDF_BM_HueÚPDF_BM_LightenÚPDF_BM_LuminosityÚPDF_BM_MultiplyÚPDF_BM_NormalÚPDF_BM_OverlayÚPDF_BM_SaturationÚPDF_BM_ScreenÚPDF_BM_SoftLightr  rÞ   r½  r¿  r¹  rä  rã  rå  r  Údictkey_ascrü  r   r  r¨  rÿ  rø  rÖ  r¥  r1  r4  r  Ú
dictkey_dar]  rÅ  Údictkey_descr  Údictkey_effectrù  rÄ  re  rû  rý  rþ  Údictkey_glyphr¤  r7  r¥  r>  rÆ  r  r¢  r5  r2  rŸ  rú  r‘  rÇ  r
  r   rd  r^  r6  r
  r3  rú  rÁ  r£  r  r  r¦  r§  r   rþ  rÿ  r8  r  rˆ  rô  rY  rN  rM  r×  r  rÕ  rO  r  r  r  r  rd  r  r|  r™  r#  rÃ  r.  r$  rö  r  r‹  r©  rJ  r	  r/  rÏ  r‘  r¢  rŽ  ry  r{  rë  rl  ry  rŠ  rƒ  r¡  r1  rB  r4  r´  rä  r¬  r‘  rµ	  rÆ  re  r·  rf
  rÙ  rg
  r�  rä  rð  rË  r©  r’  r“  ré  rê  rú  r  r  r  rÿ  rþ  r�  r°	  r’  rk  r#  rí  r³  re  rj  rø  rq  rY  rû  rf  r  r—  rœ  r�  r¨  rÓ  râ  rÚ  r$  rK  rñ  r  rõ  r	  r  r  rm  rè  ri  rû  r_  r>  r@  rV  rE  rH  rC	  r   rÃ  rô  r~  ræ  r`  r+  rh  rg  rS  r{  rù  r›  rp  r_  r.  r  rz  rž  rß  r  r  r•  r½  rÞ  r¶
  r«  r"  rÁ  r!  rÎ  r  r0  r&  rJ  rL  rÀ  r-  rK  rY  r/  rÈ  ÚMSG_BAD_DOCUMENTÚMSG_BAD_FILETYPEÚMSG_BAD_LOCATIONr‚  r–  rV  r©	  r  r1  rè  r†  r¸  ÚMSG_COLOR_COUNT_FAILEDr#  r0  r»  rÇ  r  r¢  rç  r‡  rÂ  rª	  rÁ  rå  r�  r  rK  rM  r�  ro  rL  rK  r  r†  r  rO  rI  rØ  r…  r  r�  r  rj  r2  r¡  r8  rD  rG  rK  rN  rS  rW  r[  r_  ra  rc  rf  ri  rn  rl  r‡  r‹  r’  r”  r—  ÚFzPathWalker2r™  r�  rÄ  rÈ  rË  rÎ  rÑ  rÓ  rÕ  rÙ  rÛ  rà  râ  rä  rç  ræ  rp  ÚPdfFilterOptions2rí  Ú	FzDevice2rB  Ú	FzOutput2rJ  rÇ  r^  r  r=  r@  r3  r4  rJ  rL  rR  rO  r}  rÐ  rt  ra  re  rL  rh  rx  r‚  rÞ  r£  rz  r  r  râ  r˜  rÜ  rJ  r6  rß  r1  r+  r5  rw  rÔ  rV  r~  r*  rÄ  rÃ  rÇ  r2  r  r`  r  ro  rN  r(  r%  r�  r»  rÆ  rÊ  r‹  r¸  r=  r  r  rá  râ  rã  Úregisterrå  rç  r   r$  r³  rI  rè  rê  rú  r  Úrecover_bbox_quadÚrecover_char_quadÚrecover_line_quadÚrecover_quadÚrecover_span_quadrF  ÚDeprecationWarningrü  rS  Ú__version__r÷  r  Úmaxsize)rg  r?  s   0@r'   Ú<module>rã     s  øðôõ #ó Û Û Û Û Û Û 	Û Û 	Û Û 	Û Û 
Û Û Û Û Û Û å ðsàðsð ðsð ð	sð
 ðsð ðsð ðsð ðsð ðsð ðsð ôsñl  2§:¡:§>¡>Ð2CÓ#DÈcÏjÉjÔY€ñ ˜rŸz™zŸ~™~¨mÓ<ÀcÇjÁjÔQ€
ñ ‹v€ØÐ òò!òðàðð ðð ð	ð
 ðð ðð ðð ðð ðð ôð:àðð ðð ð	ð
 ðð ðð ðð ðð ðð ôõ<.õ22ò ñ ˜×*Ñ*¨\Õ9¹CÀ»FÕBÓCÐ òò$ñ  #Ð$@À!ÓDÐ ñ Ð/°Ó6€÷'ñ 'ñ ‹:€à04€Ð-Ó 4ð Ð òò"ð. �j‰j�n‰n˜mÓ,€ØÒáˆHˆ:�_ [¡OÐ3XÐ	YÔZÙˆHˆ:�^ B§J¡J¨|Õ$<Ð#=Ð	>Ô?Ø�bÔÜãØ×)Ñ)×:Ñ:ØØó÷ ‘+“-ð 	ð ×Ñ×!Ñ!×'Ñ'�EðÝñ ˆuÐ-×.Ò.Ø×#Ò#Ô%Ø	×ÒÔ!òõ #Ý &Ý $Ý #Ý #Ý )Ý  Ý &à× Ñ €ð €ñ °-×2EÑ2EÀcÔ2JÓKÑ2J¨Q™g ažjÑ2JÑKÓLÐ à˜u×5Ñ5°u×7MÑ7MÈu×OeÑOeÐfÔfð UØ
CÐ/BÑ.Dð  ESÈ%×J`ÑJ`Ðbg×bxÑbxÐz÷  {Qñ  {Qð  JRñ  ITð  	UóUÐfð
 ˜M¨4Ð
0€Ø€Ø€Ø€ð
2˜Dô 2ð$ €ð0Ø×"Ñ"€Jð
 �?‰?˜:Õ&€Ø
�/‰/˜$Õ
€Ø�?‰?˜5Õ!€Ø	�‰�c˜4�iÕ	 €Ø	�‰˜Ÿ™Õ	)€Ø	�‰˜Õ	€à€Ø€
Ø€	Ø€	ò4õ$4ò.0õ0ò*ð  €	÷
Z<ñ Z<÷z*c'ñ c'÷LP	ñ P	÷fñ ÷BOñ O÷.+ñ +÷Z Ø"'×"=Ò"=Ð÷ISñ ISðVf €÷)&ñ )&÷X|"ñ |"÷~ñ ÷tñ t÷noñ oôd:�Vô :ñ. Ó€÷e,ñ e,÷NNñ Nõb
 ÷Oñ Oõd;÷|j:ñ j:÷Zus'ñ s'÷lxñ x÷veXñ eX÷P`ñ `÷F	[ñ [÷|hBñ hB÷VWñ W÷t
añ a÷Htñ tðt Ø�KŠK˜Õ!€EØØ"Ÿ^š^×1Ò1Ö3‰MˆE�6Ø×ÒÑ 8×9Ô9Ø×#Ò#Ð$4×5Ò5áñ ˜E 5¨&Ö1ñ 4ð2 )*Ø×-Ò-õ).à×)Ò)õ)*ð ×+Ò+õ),ð ×0Ò0õ	)1ð
 ×3Ò3õ)4ð ×+Ò+õ),Ð$ð ×"Ò" aÔ'Ð'Ð'ð %¨×(GÒ(GÔGÐGÐGØ × 7Ò 7Ô7Ð7Ð7Øˆu�fà
�*Š*€ñÐ ð" €Û	€AØ!"€O�A—G’G“IÓñ 
à%€�Ñ Ø-€�Ñ Ø*€�Ñ Ø1€�Ñ Ø#€�Ñ Ø+€�Ñ Ø(€�Ñ Ø/€�Ñ Ø'€�Ñ Ø&€�Ñ Ø(€�Ñ Ø,€�Ñ Ø"€�Ñ Ø(€�Ñ à
€Ø€ñ €Ø€àÐ ØÐ ØÐ ØÐ ð ×/Ò/Ð Ø×-Ò-Ð Ø×5Ò5Ð Ø×-Ò-Ð Ø×+Ò+Ð Ø×+Ò+Ð Ø×1Ò1Ð Ø×1Ò1Ð ð
 €	Ø€Ø€
ð
 €	Ø€	Ø€Ø€Ø€
Ø€
ØÐ ØÐ ØÐ ØÐ Ø€Ø€ØÐ àÐ ØÐ à€Ø€
ØÐ ØÐ ØÐ Ø€Ø€ØÐ ØÐ ØÐ ØÐ Ø€
Ø€Ø€à€ØÐ ØÐ ØÐ àÐ ØÐ ØÐ ØÐ Ø€àÐ ØÐ ØÐ Ø€ØÐ à×;Ò;Ð Ø ×=Ò=Ð Ø×5Ò5Ð Ø×3Ò3Ð Ø×-Ò-Ð Ø×3Ò3Ð Ø×1Ò1Ñ Ø#(×#MÒ#MÑ  Ø×9Ò9Ñ Ø×5Ò5Ñ Ø×5Ò5Ñ Ø×9Ò9Ñ Ø×%Ò%�Ø×Ò�	Ø™*Ô$Ø×3Ò3ÑØ™*Ô$Ø×5Ò5Ñà×5Ò5Ñ Ø×+Ò+�Ø×3Ò3Ñ Ø#(×#MÒ#MÑ  Ø×)Ò)�Ø×;Ò;Ñ Ø#×CÒCÑ ñ "Ñ Ù?Ñ àØ
!õ"à
"õ#ñ õñ +õ	+�ð Ø
!õ"à
"õ#ñ õñ +õ	+Ñ ð Ø
!õ"à
"õ#ñ õð õ	ñ
 +õ+�ñ #Ñ àØ
"õ#á
õð õñ +õ	+Ñ ð Ø
!õ"à
"õ#ñ õð õ	ñ
 +õ+�ð Ø
!õ"à
"õ#ñ õð õ	ñ
 +õ+�ð Ø
!õ"à
"õ#ñ õñ +õ	+�ð Ø
!õ"à
"õ#ñ õñ +õ	+�ð Ñ ØÑ ØÑ àÑ ð 
�Ø
�Ø
�ð �ØÑ Ø Ñ Ø�Ø Ñ ØÑ ØÑ Ø�
Ø�Ø Ñ Ø�Ø�Ø�Ø Ñ Ø�ØÑ ð 	ñ  DØÑYØñ  lØÑeØÑ}ØÑZØÑgð
�
ô	‘Lõ 	ô	™õ 	ô	‘]õ 	ñ 	‘6Ó�Ù	‘GÓ	�Ù	‘GÓ	�ð
 �Ø�Ø�Ø�Ø�Ø�Ø�	Ø�Ø�Ø!Ñ Ø�Ø%Ñ Ø�Ø�
Ø�Ø�Ø�Ø�Ø�Ø�ØÑ Ø�Ø�Ø!Ñ Ø�Ø�Ø�Ø�
Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�Ø�ØÑ Ø�Ø�Ø�Ø�Ø�ðß:Ô:á*×/Ó/Ó1ÑÙ!×&Ò&Ö(‰Ù,7¹­NÑ™QÕ Ó)ñ )á™ñA
�ñHA
�óNó	ó"ó!3óH'óUóóTô<ô
Uô ôTôôô:6ô$ô
ôCôL÷Ið I÷Ið Iôô/ô*2ô %ôPô.3=ôl
ô2ô>ô&&ô<
ôôVôrô84ônô$%ôPô ô.0ôj/ôdô(ô&ô"ôJNô0ôIô ô$ô ô*ô.ô6(ôôô(ôô"÷J%ð %÷P7ð 7ôtô(ô0ôô2/ôô ;ô|4)ônô,ô"^ôB)ôXô ôB
 ôô>ôð. �
ôô)ôXôD$ôNô<KôZ7ô:ô0\ô(Tôl(%ôT
Hô*ô.+ôB>ôô:3ôl? ôD*ô*ô6ô
ô*ô,.ô
ôôô2	ôô*ôZô.(6ôVBôB"ô(ôô	ô"ô*ôZô,6ô.ôHô"ô0FôR&#ôR<ô8#:ôL-ô`3ô<'ôBô*"ôDô8ô ô2ô0 ôF(ôñ &Ñ Ù)�Ù?Ñ Ù(Ñ Ù%�Ù(Ñ Ù0Ñ Ù!Ñ Ù!Ñ Ù'Ñ Ù%Ñ Ù%�Ù�Ù%�Ù#�Ù*�Ù!�Ù�Ù-Ñ Ù/Ñ Ù&�Ù$�Ù�Ù�Ù(�Ù.�Ù,Ñ ð 'Ñ ÙÑ ô÷	÷Pð P÷ð ÷ð ÷	ð 	÷	ð 	÷Hð H÷
ð 
÷
-ð 
-÷.ð .ô$ô.÷
#ð 
#ôô2.ôbô÷"ð "÷J2ð 2÷jCSñLBØ$(ñBØ=AðBØRV÷Bò B÷J':ó ':÷T'ð 'ô,DôNJô1ôôôôôôXôô$ôN.ôbôUôpô8ôôNôöpˆU× Ò õ pôf!ôH0ôfô*ô(ôôôôôôô$ôô
!ô
÷+ð +ö ˜u×6Ò6õ ö. §¢õ .ö>$ 5§?¢?õ $ô0ö$P/ 5§?¢?õ P/öf3%˜eŸošoõ 3%÷l1ó 1÷hð ÷*ð ÷
ð 
ô
ôôô8ô÷ð ö$‘fõ ô÷Fó F÷Rð ô1÷(ó (ôVGñ8Q*˜dñ Q* tñ Q*°ñ Q*¸ñ Q*À$ñ Q*È4ö Q*ñh˜tñ ¨ñ °ñ ¸$ñ À4ñ ÈDö ôHôfôôôô/ôôôô$ôNô,ô6ô "ô>ô2D2÷N)ð )÷ð ô(6
ôp2÷/÷dHð H÷@4ð 4÷ð ô$ô)ôXð, Ñ ØÑ ØÑ Ø !Ñ ÷	ð 	ô1ññ ñ	ñ
 “fñð ññ ññ “fñð ññ ñð ñð öñD=ð ñ=ñ ñ	=ð
 ñ=ð ñ=ð ð=ð ñ=ð ñ=ð ñ=ð ñ=ð ö=÷@{#ô {#÷~ Ø	×!Ó!Ñ"2Ô3Ø	×Ó¡Ô/ô(&ð ‡ƒ‘Ô ÷ Ð Ù×Ò�	ñ ‹6�Ü�M�D‰!‰Q‘Ù �e¡Q s¥U©A¨c­EÐ2�H‰T�ZŠZ‹\Óñ ôô÷I$÷^ Ð ñ
 $×5Ò5Ñ Ù#×5Ò5Ñ Ù#×5Ò5Ñ Ù#×0Ò0�Ù#×5Ò5Ñ ç Ð ö	Ñ(õ 	ôU%ðn ð �á
�;�-Ñ?À¸}ñ MØ×"Ò" 1Õ%Ð& a¨×(8Ò(8¸Õ(;Ð'<¹LÈÏÊÈÑVXÐ_b×_jÒ_jÑmrÔ_rÑY[ÐxzÐX{ñ  |Dð	Eò øð]\ ô ÞðüòH LøðN ô 0Ø˜Õ" ZÕ/ƒJð0ûñh] ô ØÔðúsM   È'AQ Ê4AQ!Ì9AQ& ì:AAR ÁQAQÁQAQÁQ&ARÁR ARÁRARÁRAR