Ë
    FU híc ã                   ó   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& ddlm'Z' ddlm(Z( ddlm)Z) ddlm*Z* ddl+m,Z, ddl+m-Z-  ej\                  d ej^                  «      Z0d!„ Z1d"„ Z2d#„ Z3 ed$d%«      Z4 ed&d'«      Z5 ed(d)«      Z6 ed*d+«      Z7 ed,d-«      Z8 ed.d'«      Z9 ed/d0«      Z: ed1d2«      Z; ed3d4«      Z< G d5„ d6ej8                  «      Z=y)7é    N)Údefaultdict)Ú
namedtuple)ÚDecimal)ÚFraction©Úwraps)ÚStringIO)Úisinf)Úisnan)Úwarné   )Ú	xmlwriter)ÚFormat)ÚDrawing)ÚShape)Ú	XMLwriter)Úxl_rowcol_to_cell)Úxl_rowcol_to_cell_fast)Úxl_cell_to_rowcol)Úxl_col_to_name)Úxl_range©Úxl_color)Úxl_pixel_width)Úget_sparkline_style)Úsupported_datetime)Údatetime_to_excel_datetime)Úget_image_properties)Úpreserve_whitespace)Úquote_sheetname)ÚDuplicateTableName)ÚOverlappingRangeaÌ  
    \bANCHORARRAY\(    |
    \bBYCOL\(          |
    \bBYROW\(          |
    \bCHOOSECOLS\(     |
    \bCHOOSEROWS\(     |
    \bDROP\(           |
    \bEXPAND\(         |
    \bFILTER\(         |
    \bHSTACK\(         |
    \bLAMBDA\(         |
    \bMAKEARRAY\(      |
    \bMAP\(            |
    \bRANDARRAY\(      |
    \bREDUCE\(         |
    \bSCAN\(           |
    \bSEQUENCE\(       |
    \bSINGLE\(         |
    \bSORT\(           |
    \bSORTBY\(         |
    \bSWITCH\(         |
    \bTAKE\(           |
    \bTEXTSPLIT\(      |
    \bTOCOL\(          |
    \bTOROW\(          |
    \bUNIQUE\(         |
    \bVSTACK\(         |
    \bWRAPCOLS\(       |
    \bWRAPROWS\(       |
    \bXLOOKUP\(c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )zn
    Decorator function to convert A1 notation in cell method calls
    to the default row/col notation.

    c                 ó†   •— 	 |r|d   }t        |«        ‰| g|¢­i |¤ŽS # t        $ r t        «      }||dd  z   }Y Œ*w xY w©Nr   r   )ÚintÚ
ValueErrorr   )ÚselfÚargsÚkwargsÚ	first_argÚnew_argsÚmethods        €úL/var/www/timesheet/venv/lib/python3.12/site-packages/xlsxwriter/worksheet.pyÚcell_wrapperz'convert_cell_args.<locals>.cell_wrapper_   s]   ø€ ð	'áØ  ™G�	Ü�I”ñ �dÐ,˜TÒ, VÑ,Ð,øô ò 	'ä(¨Ó3ˆHØ˜d 1 2˜hÑ&ŠDð	'ús   ƒ! ¡A ¿A r   ©r-   r/   s   ` r.   Úconvert_cell_argsr1   X   s#   ø€ ô ˆ6ƒ]ó-ó ð-ð Ðó    c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )zo
    Decorator function to convert A1 notation in range method calls
    to the default row/col notation.

    c                 ó4  •— 	 |rt        |d   «        ‰
| g|¢­i |¤ŽS # t        $ ro d|d   v r4|d   j                  d«      \  }}t        |«      \  }}t        |«      \  }}nt        |d   «      \  }}||}}||||g}	|	j	                  |dd  «       |	}Y Œƒw xY w)Nr   ú:r   ©r&   r'   Úsplitr   Úextend)r(   r)   r*   Úcell_1Úcell_2Úrow_1Úcol_1Úrow_2Úcol_2r,   r-   s             €r.   r/   z(convert_range_args.<locals>.cell_wrapperw   s»   ø€ ð	áÜ�D˜‘G”ñ �dÐ,˜TÒ, VÑ,Ð,øô ò 	à�d˜1‘g‰~Ø!% a¡§¡¨sÓ!3‘�˜Ü0°Ó8‘��uÜ0°Ó8‘�‘uä0°°a±Ó9‘��uØ$ e�u�à˜u e¨UÐ3ˆHØ�O‰O˜D  ˜HÔ%ØŠDð	ús   ƒ ŸA5BÂBr   r0   s   ` r.   Úconvert_range_argsr?   p   s#   ø€ ô ˆ6ƒ]ó-ó ð-ð* Ðr2   c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )zq
    Decorator function to convert A1 notation in columns method calls
    to the default row/col notation.

    c                 ó$  •— 	 |rt        |d   «        ‰
| g|¢­i |¤ŽS # t        $ rg |d   j                  d«      D �cg c]  }|dz   ‘Œ	 nc c}w c}\  }}t        |«      \  }}t        |«      \  }}||g}	|	j	                  |dd  «       |	}Y Œ{w xY w)Nr   r5   Ú1r   r6   )r(   r)   r*   Úcolr9   r:   Ú_r<   r>   r,   r-   s             €r.   Úcolumn_wrapperz+convert_column_args.<locals>.column_wrapper—   s¢   ø€ ð	áÜ�D˜‘G”ñ �dÐ,˜TÒ, VÑ,Ð,øô ò 	à37¸±7·=±=ÀÓ3EÖF¨C˜c C›iÑFùÔF‰NˆF�FÜ(¨Ó0‰HˆAˆuÜ(¨Ó0‰HˆAˆuØ˜u�~ˆHØ�O‰O˜D  ˜HÔ%ØŠDð	ús   ƒ ŸB¾AÁ
ABÂBr   )r-   rE   s   ` r.   Úconvert_column_argsrF   �   s#   ø€ ô ˆ6ƒ]ó-ó ð-ð  Ðr2   ÚStringzstring, formatÚNumberznumber, formatÚBlankÚformatÚBooleanzboolean, formatÚFormulazformula, format, valueÚDatetimeÚArrayFormulaz$formula, format, value, range, atypeÚ
RichStringzstring, format, raw_stringÚErrorzerror, format, valuec                   óv  ‡ — e Zd ZdZˆ fd„Zd„ Zed„ «       Zd„ Zedêd„«       Z	dêd„Z
edêd„«       Zdêd	„Zedêd
„«       Zdêd„Zedëd„«       Zdëd„Ze	 	 dëd„«       Ze	 	 dëd„«       Zdìd„Z	 	 	 díd„Zedêd„«       Zdêd„Zedêd„«       Zdêd„Zedîd„«       Zdîd„Zed„ «       Zd„ Zd„ Zedêd„«       Zedêd„«       Z edêd„«       Z!edêd„«       Z"edêd„«       Z#edêd „«       Z$edêd!„«       Z%d"„ Z&dìd#„Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.e/	 dîd+„«       Z0e/	 dîd,„«       Z1d-„ Z2dîd.„Z3dîd/„Z4dïd0„Z5e	 dêd1„«       Z6ed2„ «       Z7d3„ Z8d4„ Z9edêd5„«       Z:e	 dêd6„«       Z;edêd7„«       Z<edêd8„«       Z=ed9„ «       Z>edðd:„«       Z?	 dñd;„Z@edòd<„«       ZAedód=„«       ZBdôd>„ZCd?„ ZDd@„ ZEdA„ ZFdõdB„ZGdódC„ZHedêdD„«       ZIdE„ ZJdF„ ZKdödG„ZLdödH„ZMdI„ ZNdJ„ ZOdK„ ZPd÷dL„ZQdødM„ZRdødN„ZSdêdO„ZTe/dêdP„«       ZUdödQ„ZVdR„ ZWdS„ ZXedT„ «       ZYdU„ ZZdV„ Z[dW„ Z\dX„ Z]dY„ Z^dZ„ Z_d[„ Z`dêd\„Zadêd]„Zbd^„ Zcd_„ Zddùd`„Zeda„ Zfdb„ Zgdc„ Zhdd„ Zide„ Zjdf„ Zkdg„ Zldh„ Zmdi„ Zndj„ Zodk„ Zpdl„ Zqdm„ Zrdn„ Zsdúdo„Ztdúdp„Zudq„ Zvdr„ Zwds„ Zxdt„ Zydu„ Zzdv„ Z{dw„ Z|dx„ Z}dy„ Z~dz„ Zd{„ Z€d|„ Z�dêd}„Z‚dêd~„Zƒd„ Z„d€„ Z…d�„ Z†d‚„ Z‡dƒ„ Zˆd„„ Z‰d…„ ZŠdêd†„Z‹d‡„ ZŒdˆ„ Z�d‰„ ZŽdŠ„ Z�d‹„ Z�dŒ„ Z‘d�„ Z’dŽ„ Z“d�„ Z”d�„ Z•d‘„ Z–d’„ Z—d“„ Z˜d”„ Z™d•„ Zšd–„ Z›dúd—„Zœd˜„ Z�dïd™„Zždêdš„ZŸd›„ Z dœ„ Z¡d�„ Z¢dž„ Z£dŸ„ Z¤d „ Z¥d¡„ Z¦d¢„ Z§d£„ Z¨d¤„ Z©d¥„ Zªd¦„ Z«d§„ Z¬	 dîd¨„Z­	 dîd©„Z®dª„ Z¯d«„ Z°d¬„ Z±d­„ Z²d®„ Z³d¯„ Z´d°„ Zµd±„ Z¶d²„ Z·d³„ Z¸d´„ Z¹dµ„ Zºd¶„ Z»d·„ Z¼d¸„ Z½d¹„ Z¾dº„ Z¿d»„ ZÀd¼„ ZÁd½„ ZÂd¾„ ZÃd¿„ ZÄdÀ„ ZÅdÁ„ ZÆdÂ„ ZÇdÃ„ ZÈdÄ„ ZÉdêdÅ„ZÊdÆ„ ZËdÇ„ ZÌdÈ„ ZÍdÉ„ ZÎdÊ„ ZÏdË„ ZÐdÌ„ ZÑdÍ„ ZÒdÎ„ ZÓdÏ„ ZÔdÐ„ ZÕdÑ„ ZÖdÒ„ Z×dÓ„ ZØdÔ„ ZÙdÕ„ ZÚdÖ„ ZÛd×„ ZÜdØ„ ZÝdÙ„ ZÞdÚ„ ZßdÛ„ ZàdÜ„ ZádÝ„ ZâdÞ„ Zãdß„ Zädà„ Zådá„ Zædâ„ Zçdã„ Zèdä„ Zédå„ Zêdæ„ Zëdç„ Zìdè„ Zídé„ Zîˆ xZïS )ûÚ	Worksheetz=
    A class for writing the Excel XLSX Worksheet file.

    c                 ó$
  •— t         t        | �  «        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        g | _
        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        i | _        g | _        d| _        d| _        d| _        d| _        g | _        d	| _        d| _        d| _        d| _        d
| _         d| _!        d| _"        d| _#        d| _$        d| _%        d| _&        d| _'        d| _(        d| _)        d| _*        d| _+        d| _,        g | _-        g | _.        g | _/        d| _0        d| _1        d| _2        d| _3        d| _4        d| _5        d| _6        d| _7        d| _8        d| _9        d| _:        d| _;        d| _<        d| _=        d| _>        d| _?        d| _@        g | _A        g | _B        i | _C        g | _D        d| _E        i | _F        t�        t�        «      | _I        d| _J        d
| _K        d| _L        d| _M        d
| _N        d| _O        d| _P        d| _Q        d| _R        d
| _S        d
| _T        d
| _U        d| _V        d| _W        d| _X        d| _Y        d| _Z        d| _[        d| _\        d| _]        i | _^        g | __        t�        t�        «      | _`        g | _a        i | _b        i | _c        i | _d        d| _e        d| _f        d| _g        t�        t�        «      | _h        g | _i        d| _j        d| _k        d| _l        g | _m        d| _n        d| _o        d| _p        g | _q        d| _r        i | _s        i | _t        i | _u        i | _v        d| _w        d| _x        d
| _y        d| _z        d| _{        g | _|        g | _}        g | _~        g | _        g | _€        g | _�        g | _‚        g | _ƒ        g | _„        g | _…        g | _†        g | _‡        g | _ˆ        g | _‰        i | _Š        d| _‹        i | _Œ        d| _�        i | _Ž        d| _�        d| _�        d| _‘        d| _’        d| _“        g | _”        i | _•        g | _–        d| _—        d
| _˜        d| _™        d| _š        d| _›        t�        t�        «      | _œ        d| _�        d| _ž        d| _Ÿ        d| _         d| _¡        d| _¢        d| _£        d| _¤        d| _¥        d| _¦        d| _§        d| _¨        d| _l        d| _¥        d| _¦        d| _©        d| _ª        d| _«        i | _¬        d| _­        d| _®        d| _¯        d| _°        y)z
        Constructor.

        Nr   Fi×  i   i @  éÿ  Ú é   r   Tçffffffæ?ç      è?ç333333Ó?éd   é   é   ç\�Âõ(Ü @é@   éD   é   i  )±ÚsuperrR   Ú__init__ÚnameÚindexÚ	str_tableÚpaletteÚconstant_memoryÚtmpdirÚis_chartsheetÚ
ext_sheetsÚ
fileclosedÚexcel_versionÚexcel2003_styleÚ
xls_rowmaxÚ
xls_colmaxÚ
xls_strmaxÚ
dim_rowminÚ
dim_rowmaxÚ
dim_colminÚ
dim_colmaxÚcol_infoÚ
selectionsÚhiddenÚactiveÚ	tab_colorÚtop_left_cellÚpanesÚactive_paneÚselectedÚpage_setup_changedÚ
paper_sizeÚorientationÚprint_options_changedÚhcenterÚvcenterÚprint_gridlinesÚscreen_gridlinesÚprint_headersÚrow_col_headersÚheader_footer_changedÚheaderÚfooterÚheader_footer_alignsÚheader_footer_scalesÚheader_imagesÚfooter_imagesÚheader_images_listÚmargin_leftÚmargin_rightÚ
margin_topÚmargin_bottomÚmargin_headerÚmargin_footerÚrepeat_row_rangeÚrepeat_col_rangeÚprint_area_rangeÚ
page_orderÚblack_whiteÚdraft_qualityÚprint_commentsÚ
page_startÚfit_pageÚ	fit_widthÚ
fit_heightÚhbreaksÚvbreaksÚprotect_optionsÚprotected_rangesÚnum_protected_rangesÚset_colsr   ÚdictÚset_rowsÚzoomÚzoom_scale_normalÚprint_scaleÚis_right_to_leftÚ
show_zerosÚleading_zerosÚoutline_row_levelÚoutline_col_levelÚoutline_styleÚoutline_belowÚoutline_rightÚ
outline_onÚoutline_changedÚoriginal_row_heightÚdefault_row_heightÚdefault_row_pixelsÚdefault_col_widthÚdefault_col_pixelsÚdefault_date_pixelsÚdefault_row_zeroedÚnamesÚwrite_matchÚtableÚmergeÚmerged_cellsÚtable_cellsÚ	row_spansÚhas_vmlÚhas_header_vmlÚhas_commentsÚcommentsÚcomments_listÚcomments_authorÚcomments_visibleÚvml_shape_idÚbuttons_listÚvml_header_idÚautofilter_areaÚautofilter_refÚfilter_rangeÚ	filter_onÚfilter_colsÚfilter_typeÚfilter_cellsÚ	row_sizesÚcol_size_changedÚrow_size_changedÚlast_shape_idÚ	rel_countÚhlink_countÚ
hlink_refsÚexternal_hyper_linksÚexternal_drawing_linksÚexternal_comment_linksÚexternal_vml_linksÚexternal_table_linksÚexternal_background_linksÚdrawing_linksÚvml_drawing_linksÚchartsÚimagesÚtablesÚ
sparklinesÚshapesÚ
shape_hashÚdrawingÚdrawing_relsÚdrawing_rels_idÚvml_drawing_relsÚvml_drawing_rels_idÚbackground_imageÚbackground_bytesÚrstringÚprevious_rowÚvalidationsÚcond_formatsÚdata_bars_2010Úuse_data_bars_2010Údxf_priorityÚ	page_viewÚvba_codenameÚ	date_1904Ú
hyperlinksÚstrings_to_numbersÚstrings_to_urlsÚnan_inf_to_errorsÚstrings_to_formulasÚdefault_date_formatÚdefault_url_formatÚremove_timezoneÚmax_url_lengthÚrow_data_filenameÚrow_data_fhÚworksheet_metaÚvml_data_idÚrow_data_fh_closedÚvertical_dpiÚhorizontal_dpiÚwrite_handlersÚignored_errorsÚhas_dynamic_arraysÚuse_future_functionsÚignore_write_string)r(   Ú	__class__s    €r.   rb   zWorksheet.__init__Î   sb  ø€ ô 	Œi˜Ñ'Ô)àˆŒ	ØˆŒ
ØˆŒØˆŒØ ˆÔØˆŒØ"ˆÔàˆŒØˆŒØ!ˆÔØ$ˆÔà!ˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒàˆŒØˆŒØˆŒØˆŒØˆŒØˆÔàˆŒ
ØˆÔØˆŒà"'ˆÔØˆŒØˆÔà%*ˆÔ"ØˆŒØˆŒØ$ˆÔØ $ˆÔØ"ˆÔØ$ˆÔà%*ˆÔ"ØˆŒØˆŒØ$(ˆÔ!Ø$(ˆÔ!ØˆÔØˆÔØ"$ˆÔàˆÔØˆÔØˆŒØ!ˆÔØ ˆÔØ ˆÔà "ˆÔØ "ˆÔØ "ˆÔàˆŒØˆÔØˆÔØˆÔØˆŒàˆŒØˆŒØˆŒàˆŒØˆŒà!ˆÔØ "ˆÔØ$%ˆÔ!ØˆŒÜ#¤DÓ)ˆŒàˆŒ	Ø!"ˆÔØˆÔØ !ˆÔØˆŒØˆÔà!"ˆÔØ!"ˆÔØˆÔØˆÔØˆÔØˆŒØ$ˆÔà#%ˆÔ Ø"$ˆÔØ"$ˆÔØ!%ˆÔØ"$ˆÔØ#%ˆÔ Ø"#ˆÔàˆŒ
ØˆÔÜ ¤Ó&ˆŒ
ØˆŒ
ØˆÔØˆÔØˆŒàˆŒØ#ˆÔØ!ˆÔÜ#¤DÓ)ˆŒØˆÔØ!ˆÔØ !ˆÔØ ˆÔØˆÔØˆÔà!ˆÔØ"ˆÔØˆÔØˆŒØˆÔØˆÔØˆÔàˆŒØ %ˆÔØ %ˆÔàˆÔØˆŒØˆÔØˆŒØ$&ˆÔ!Ø&(ˆÔ#Ø&(ˆÔ#Ø"$ˆÔØ$&ˆÔ!Ø)+ˆÔ&ØˆÔØ!#ˆÔØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆÔØ ˆÔØ "ˆÔØ#$ˆÔ Ø $ˆÔØ %ˆÔàˆŒØˆÔàˆÔØˆÔØ ˆÔØ"'ˆÔØˆÔØˆŒà ˆÔàˆŒÜ%¤dÓ+ˆŒà"'ˆÔØ#ˆÔØ!&ˆÔØ#'ˆÔ à#'ˆÔ Ø"&ˆÔØ$ˆÔØ"ˆÔà!%ˆÔØˆÔØ"ˆÔØˆÔØ ˆÔà!%ˆÔØˆÔØ"'ˆÔàˆÔØˆÔà ˆÔà"ˆÔà"'ˆÔØ$)ˆÔ!Ø#(ˆÕ r2   c                 óà  — |dk(  r | j                   ||g|¢­Ž S | j                  r%|j                  d«      r | j                  ||g|¢­Ž S |j                  d«      r%|j	                  d«      r | j                  ||g|¢­Ž S d|v rb| j
                  rVt        j                  d|«      s,t        j                  d|«      st        j                  d|«      r | j                  ||g|¢­Ž S | j                  rZ	 t        |«      }| j                  st        |«      s#t        |«      s | j                  |||g|d	d  ¢­Ž S  | j                   ||g|¢­Ž S  | j                   ||g|¢­Ž S # t        $ r Y Œ3w xY w)
NrU   ú=z{=ú}r5   ú(ftp|http)s?://úmailto:z(in|ex)ternal:r   )Ú_write_blankrÿ   Ú
startswithÚ_write_formulaÚendswithrý   ÚreÚmatchÚ
_write_urlrü   Úfloatrþ   r   r
   Ú_write_numberr'   Ú_write_string)r(   ÚtokenÚrowrC   r)   Úfs         r.   Ú_write_token_as_stringz Worksheet._write_token_as_string¨  sx  € à�BŠ;Ø$�4×$Ñ$ S¨#Ð5°Ò5Ð5à×#Ò#¨×(8Ñ(8¸Ô(=Ø&�4×&Ñ& s¨CÐ7°$Ò7Ð7à×Ñ˜DÔ! e§n¡n°SÔ&9Ø&�4×&Ñ& s¨CÐ7°$Ò7Ð7ð �5‰LØ×$Ò$ä—‘Ð*¨EÔ2Ü—8‘8˜I uÔ-Ü—8‘8Ð,¨eÔ4ð #�4—?‘? 3¨Ð3¨dÒ3Ð3à×"Ò"ðÜ˜%“L�Ø×)Ò)´%¸´(Ä5ÈÄ8Ø-˜4×-Ñ-¨c°3¸ÐE¸DÀÀ¸HÒEÐEð
 &�4×%Ñ% c¨3Ð6°Ò6Ð6ð &�4×%Ñ% c¨3Ð6°Ò6Ð6øô ò áðús   Ã4AE! Å!	E-Å,E-c                 ó*   —  | j                   ||g|¢­Ž S )aÎ  
        Write data to a worksheet cell by calling the appropriate write_*()
        method based on the type of data being passed.

        Args:
            row:   The cell row (zero indexed).
            col:   The cell column (zero indexed).
            *args: Args to pass to sub functions.

        Returns:
             0:    Success.
            -1:    Row or column is out of worksheet bounds.
            other: Return value of called method.

        ©Ú_write©r(   r!  rC   r)   s       r.   ÚwritezWorksheet.writeÍ  s   € ð" ˆt�{‰{˜3 Ð+ dÒ+Ð+r2   c                 óš  — |st        d«      ‚|d   }|j                  }|| j                  v r| j                  |   } || ||g|¢­Ž }|€n|S |€ | j                  ||g|¢­Ž S |t        u r | j
                  ||g|¢­Ž S |t        t        t        t        fv r | j                  ||g|¢­Ž S |t        u r | j                  |||g|¢­Ž S |t        j                  t        j                  t        j                  t        j                   fv r | j"                  ||g|¢­Ž S t%        |t        t        t        t        f«      r | j                  ||g|¢­Ž S t%        |t        «      r | j                  |||g|¢­Ž S t%        |t        «      r | j
                  ||g|¢­Ž S t'        |«      r | j"                  ||g|¢­Ž S 	 t        |«      } | j                  |||g|dd  ¢­Ž S # t(        $ r Y n#t         $ r t        dt+        |«      z  «      ‚w xY w	 t        |«        | j,                  ||g|¢­Ž S # t(        $ r t        dt+        |«      z  «      ‚w xY w)Nz,write() takes at least 4 arguments (3 given)r   r   zUnsupported type %s in write())Ú	TypeErrorr  r  r  ÚboolÚ_write_booleanr  r&   r   r   r  Ústrr#  ÚdatetimeÚdateÚtimeÚ	timedeltaÚ_write_datetimeÚ
isinstancer   r'   Útyper  )	r(   r!  rC   r)   r   Ú
token_typeÚwrite_handlerÚfunction_returnr"  s	            r.   r&  zWorksheet._writeá  s˜  € áÜÐJÓKÐKð �Q‘ˆð —_‘_ˆ
ð ˜×,Ñ,Ñ,Ø ×/Ñ/°
Ñ;ˆMÙ+¨D°#°sÐB¸TÒBˆOð
 Ð&Øà&Ð&ð ˆ=Ø$�4×$Ñ$ S¨#Ð5°Ò5Ð5ð œÑØ&�4×&Ñ& s¨CÐ7°$Ò7Ð7àœ%¤¤g¬xÐ8Ñ8Ø%�4×%Ñ% c¨3Ð6°Ò6Ð6àœÑØ.�4×.Ñ.¨u°c¸3ÐFÀÒFÐFàÜ×ÑÜ�M‰MÜ�M‰MÜ×Ñð	
ñ 
ð (�4×'Ñ'¨¨SÐ8°4Ò8Ð8ô
 �eœe¤S¬'´8Ð<Ô=Ø%�4×%Ñ% c¨3Ð6°Ò6Ð6ô �eœSÔ!Ø.�4×.Ñ.¨u°c¸3ÐFÀÒFÐFô �eœTÔ"Ø&�4×&Ñ& s¨CÐ7°$Ò7Ð7ô ˜eÔ$Ø'�4×'Ñ'¨¨SÐ8°4Ò8Ð8ð	LÜ�e“ˆAØ%�4×%Ñ% c¨3°Ð=°D¸¸°HÒ=Ð=øÜò 	ÙÜò 	LÜÐ<¼tÀE»{ÑJÓKÐKð	Lúð	LÜ�ŒJØ%�4×%Ñ% c¨3Ð6°Ò6Ð6øÜò 	LÜÐ<¼tÀE»{ÑJÓKÐKð	Lús   Æ8"G Ç	HÇ& HÈ
H) È)!I
c                 ó*   — | j                  ||||«      S )a›  
        Write a string to a worksheet cell.

        Args:
            row:    The cell row (zero indexed).
            col:    The cell column (zero indexed).
            string: Cell data. Str.
            format: An optional cell Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: String truncated to 32k characters.

        )r  )r(   r!  rC   ÚstringÚcell_formats        r.   Úwrite_stringzWorksheet.write_string1  s   € ð" ×!Ñ! # s¨F°KÓ@Ð@r2   c                 óf  — d}| j                  ||«      ryt        |«      | j                  kD  r|d | j                   }d}| j                  s| j                  j                  |«      }n|}| j                  r || j                  kD  r| j                  |«       t        ||«      | j                  |   |<   |S ©Nr   éÿÿÿÿéþÿÿÿ)
Ú_check_dimensionsÚlenrp   rg   re   Ú_get_shared_string_indexrò   Ú_write_single_rowÚcell_string_tupler¿   )r(   r!  rC   r9  r:  Ú	str_errorÚstring_indexs          r.   r  zWorksheet._write_stringE  s¯   € Øˆ	ð ×!Ñ! # sÔ+Øô ˆv‹;˜Ÿ™Ò(ØÐ-˜dŸo™oÐ.ˆFØˆIð ×#Ò#ØŸ>™>×BÑBÀ6ÓJ‰Là!ˆLð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ô  1°¸{ÓKˆ�
‰
�3‰˜ÑàÐr2   c                 ó*   — | j                  ||||«      S )a„  
        Write a number to a worksheet cell.

        Args:
            row:         The cell row (zero indexed).
            col:         The cell column (zero indexed).
            number:      Cell data. Int or float.
            cell_format: An optional cell Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        )r  ©r(   r!  rC   Únumberr:  s        r.   Úwrite_numberzWorksheet.write_number`  s   € ð  ×!Ñ! # s¨F°KÓ@Ð@r2   c                 óö  — t        |«      st        |«      rˆ| j                  rqt        |«      r| j                  ||d|d«      S |t        j
                  k(  r| j                  ||d|d«      S |t        j
                   k(  r | j                  ||d|d«      S t        d«      ‚| j                  ||«      ry| j                  r || j                  kD  r| j                  |«       t        ||«      | j                  |   |<   y)Nú#NUM!z1/0ú#DIV/0!z-1/0zUNAN/INF not supported in write_number() without 'nan_inf_to_errors' Workbook() optionr>  r   )r   r
   rþ   r  ÚmathÚinfr*  r@  rg   rò   rC  Úcell_number_tupler¿   rH  s        r.   r  zWorksheet._write_numbers  sð   € Ü�Œ=œE &œMØ×%Ò%Ü˜”=Ø×.Ñ.¨s°C¸À+ÈwÓWÐWØœtŸx™xÒ'Ø×.Ñ.¨s°C¸ÀÈYÓWÐWØ¤§¡˜yÒ(Ø×.Ñ.¨s°C¸ÀÈiÓXÐXäðDóð ð ×!Ñ! # sÔ+Øð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ô  1°¸ÓEˆ�
‰
�3‰˜Ñàr2   c                 ó*   — | j                  ||||«      S )aè  
        Write a blank cell with formatting to a worksheet cell. The blank
        token is ignored and the format only is written to the cell.

        Args:
            row:         The cell row (zero indexed).
            col:         The cell column (zero indexed).
            blank:       Any value. It is ignored.
            cell_format: An optional cell Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        )r  ©r(   r!  rC   Úblankr:  s        r.   Úwrite_blankzWorksheet.write_blank�  s   € ð" × Ñ   c¨5°+Ó>Ð>r2   c                 ó¾   — |€y| j                  ||«      ry| j                  r || j                  kD  r| j                  |«       t	        |«      | j
                  |   |<   y)Nr   r>  )r@  rg   rò   rC  Úcell_blank_tupler¿   rR  s        r.   r  zWorksheet._write_blank£  sb   € àÐØð ×!Ñ! # sÔ+Øð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ô  0°Ó<ˆ�
‰
�3‰˜Ñàr2   c                 ó,   — | j                  |||||«      S )aô  
        Write a formula to a worksheet cell.

        Args:
            row:         The cell row (zero indexed).
            col:         The cell column (zero indexed).
            formula:     Cell formula.
            cell_format: An optional cell Format object.
            value:       An optional value for the formula. Default is 0.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: Formula can't be None or empty.

        )r  ©r(   r!  rC   Úformular:  Úvalues         r.   Úwrite_formulazWorksheet.write_formulaµ  s   € ð& ×"Ñ" 3¨¨W°kÀ5ÓIÐIr2   c           	      óÎ  — | j                  ||«      ry|�|dk(  rt        d«       yt        j                  |«      r| j	                  |||||||«      S |j                  d«      r(|j                  d«      r| j                  |||||||«      S | j                  |«      }| j                  r || j                  kD  r| j                  |«       t        |||«      | j                  |   |<   y)Nr>  rU   zFormula can't be None or emptyú{r  r   )r@  r   Úre_dynamic_functionÚsearchÚwrite_dynamic_array_formular  r  Ú_write_array_formulaÚ_prepare_formularg   rò   rC  Úcell_formula_tupler¿   rX  s         r.   r  zWorksheet._write_formulaË  sõ   € Ø×!Ñ! # sÔ+Øàˆ?˜g¨šmÜÐ1Ô2Øô ×%Ñ% gÔ.Ø×3Ñ3Ø�S˜#˜s G¨[¸%óð ð
 ×Ñ˜cÔ" w×'7Ñ'7¸Ô'<Ø×,Ñ,Ø�S˜#˜s G¨[¸%óð ð
 ×'Ñ'¨Ó0ˆð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ô  2°'¸;ÈÓNˆ�
‰
�3‰˜Ñàr2   c           
      óŠ   — t         j                  |«      r| j                  |||||||«      S | j                  |||||||d«      S )an  
        Write a formula to a worksheet cell/range.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            formula:      Cell formula.
            cell_format:  An optional cell Format object.
            value:        An optional value for the formula. Default is 0.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Ústatic)r^  r_  r`  ra  )r(   Ú	first_rowÚ	first_colÚlast_rowÚlast_colrY  r:  rZ  s           r.   Úwrite_array_formulazWorksheet.write_array_formulaë  sb   € ô: ×%Ñ% gÔ.Ø×3Ñ3Ø˜9 h°¸'À;ÐPUóð ð ×(Ñ(ØØØØØØØØó	
ð 		
r2   c           
      óN   — | j                  |||||||d«      }|dk(  rd| _        |S )a|  
        Write a dynamic array formula to a worksheet cell/range.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            formula:      Cell formula.
            cell_format:  An optional cell Format object.
            value:        An optional value for the formula. Default is 0.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Údynamicr   T)ra  r  )	r(   rf  rg  rh  ri  rY  r:  rZ  Úerrors	            r.   r`  z%Worksheet.write_dynamic_array_formula  sB   € ð8 ×)Ñ)ØØØØØØØØó	
ˆð �AŠ:Ø&*ˆDÔ#àˆr2   c                 ó
  — |j                  d«      r|dd  }|j                  d«      r|dd  }|j                  d«      r|d d }d|v r|S t        j                  dd|«      }t        j                  d	d
|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }t        j                  dd |«      }t        j                  d!d"|«      }t        j                  d#d$|«      }t        j                  d%d&|«      }t        j                  d'd(|«      }t        j                  d)d*|«      }t        j                  d+d,|«      }t        j                  d-d.|«      }t        j                  d/d0|«      }t        j                  d1d2|«      }t        j                  d3d4|«      }t        j                  d5d6|«      }t        j                  d7d8|«      }t        j                  d9d:|«      }t        j                  d;d<|«      }t        j                  d=d>|«      }t        j                  d?d@|«      }| j                  s|s|S t        j                  dAdB|«      }t        j                  dCdD|«      }t        j                  dEdF|«      }t        j                  dGdH|«      }t        j                  dIdJ|«      }t        j                  dKdL|«      }t        j                  dMdN|«      }t        j                  dOdP|«      }t        j                  dQdR|«      }t        j                  dSdT|«      }t        j                  dUdV|«      }t        j                  dWdX|«      }t        j                  dYdZ|«      }t        j                  d[d\|«      }t        j                  d]d^|«      }t        j                  d_d`|«      }t        j                  dadb|«      }t        j                  dcdd|«      }t        j                  dedf|«      }t        j                  dgdh|«      }t        j                  didj|«      }t        j                  dkdl|«      }t        j                  dmdn|«      }t        j                  dodp|«      }t        j                  dqdr|«      }t        j                  dsdt|«      }t        j                  dudv|«      }t        j                  dwdx|«      }t        j                  dydz|«      }t        j                  d{d||«      }t        j                  d}d~|«      }t        j                  dd€|«      }t        j                  d�d‚|«      }t        j                  dƒd„|«      }t        j                  d…d†|«      }t        j                  d‡dˆ|«      }t        j                  d‰dŠ|«      }t        j                  d‹dŒ|«      }t        j                  d�dŽ|«      }t        j                  d�d�|«      }t        j                  d‘d’|«      }t        j                  d“d”|«      }t        j                  d•d–|«      }t        j                  d—d˜|«      }t        j                  d™dš|«      }t        j                  d›dœ|«      }t        j                  d�dž|«      }t        j                  dŸd |«      }t        j                  d¡d¢|«      }t        j                  d£d¤|«      }t        j                  d¥d¦|«      }t        j                  d§d¨|«      }t        j                  d©dª|«      }t        j                  d«d¬|«      }t        j                  d­d®|«      }t        j                  d¯d°|«      }t        j                  d±d²|«      }t        j                  d³d´|«      }t        j                  dµd¶|«      }t        j                  d·d¸|«      }t        j                  d¹dº|«      }t        j                  d»d¼|«      }t        j                  d½d¾|«      }t        j                  d¿dÀ|«      }t        j                  dÁdÂ|«      }t        j                  dÃdÄ|«      }t        j                  dÅdÆ|«      }t        j                  dÇdÈ|«      }t        j                  dÉdÊ|«      }t        j                  dËdÌ|«      }t        j                  dÍdÎ|«      }t        j                  dÏdÐ|«      }t        j                  dÑdÒ|«      }t        j                  dÓdÔ|«      }t        j                  dÕdÖ|«      }t        j                  d×dØ|«      }t        j                  dÙdÚ|«      }t        j                  dÛdÜ|«      }t        j                  dÝdÞ|«      }t        j                  dßdà|«      }t        j                  dádâ|«      }t        j                  dãdä|«      }t        j                  dådæ|«      }t        j                  dçdè|«      }t        j                  dédê|«      }t        j                  dëdì|«      }t        j                  dídî|«      }t        j                  dïdð|«      }t        j                  dñdò|«      }t        j                  dódô|«      }t        j                  dõdö|«      }t        j                  d÷dø|«      }t        j                  dùdú|«      }t        j                  dûdü|«      }t        j                  dýdþ|«      }t        j                  dÿ�d |«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d	�d
|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d|«      }t        j                  �d�d |«      }t        j                  �d!�d"|«      }t        j                  �d#�d$|«      }t        j                  �d%�d&|«      }t        j                  �d'�d(|«      }t        j                  �d)�d*|«      }t        j                  �d+�d,|«      }t        j                  �d-�d.|«      }t        j                  �d/�d0|«      }t        j                  �d1�d2|«      }t        j                  �d3�d4|«      }t        j                  �d5�d6|«      }t        j                  �d7�d8|«      }t        j                  �d9�d:|«      }t        j                  �d;�d<|«      }|S (=  Nr]  r   r  r  r>  z_xlfn.z\bANCHORARRAY\(z_xlfn.ANCHORARRAY(z	\bBYCOL\(z_xlfn.BYCOL(z	\bBYROW\(z_xlfn.BYROW(z\bCHOOSECOLS\(z_xlfn.CHOOSECOLS(z\bCHOOSEROWS\(z_xlfn.CHOOSEROWS(z\bDROP\(z_xlfn.DROP(z
\bEXPAND\(z_xlfn.EXPAND(z
\bFILTER\(z_xlfn._xlws.FILTER(z
\bHSTACK\(z_xlfn.HSTACK(z
\bLAMBDA\(z_xlfn.LAMBDA(z\bMAKEARRAY\(z_xlfn.MAKEARRAY(z\bMAP\(z
_xlfn.MAP(z\bRANDARRAY\(z_xlfn.RANDARRAY(z
\bREDUCE\(z_xlfn.REDUCE(z\bSCAN\(z_xlfn.SCAN(z	\SINGLE\(z_xlfn.SINGLE(z\bSEQUENCE\(z_xlfn.SEQUENCE(z\bSORT\(z_xlfn._xlws.SORT(z
\bSORTBY\(z_xlfn.SORTBY(z
\bSWITCH\(z_xlfn.SWITCH(z\bTAKE\(z_xlfn.TAKE(z\bTEXTSPLIT\(z_xlfn.TEXTSPLIT(z	\bTOCOL\(z_xlfn.TOCOL(z	\bTOROW\(z_xlfn.TOROW(z
\bUNIQUE\(z_xlfn.UNIQUE(z
\bVSTACK\(z_xlfn.VSTACK(z\bWRAPCOLS\(z_xlfn.WRAPCOLS(z\bWRAPROWS\(z_xlfn.WRAPROWS(z\bXLOOKUP\(z_xlfn.XLOOKUP(z	\bACOTH\(z_xlfn.ACOTH(z\bACOT\(z_xlfn.ACOT(z\bAGGREGATE\(z_xlfn.AGGREGATE(z
\bARABIC\(z_xlfn.ARABIC(z\bARRAYTOTEXT\(z_xlfn.ARRAYTOTEXT(z\bBASE\(z_xlfn.BASE(z\bBETA.DIST\(z_xlfn.BETA.DIST(z\bBETA.INV\(z_xlfn.BETA.INV(z\bBINOM.DIST.RANGE\(z_xlfn.BINOM.DIST.RANGE(z\bBINOM.DIST\(z_xlfn.BINOM.DIST(z\bBINOM.INV\(z_xlfn.BINOM.INV(z
\bBITAND\(z_xlfn.BITAND(z\bBITLSHIFT\(z_xlfn.BITLSHIFT(z	\bBITOR\(z_xlfn.BITOR(z\bBITRSHIFT\(z_xlfn.BITRSHIFT(z
\bBITXOR\(z_xlfn.BITXOR(z\bCEILING.MATH\(z_xlfn.CEILING.MATH(z\bCEILING.PRECISE\(z_xlfn.CEILING.PRECISE(z\bCHISQ.DIST.RT\(z_xlfn.CHISQ.DIST.RT(z\bCHISQ.DIST\(z_xlfn.CHISQ.DIST(z\bCHISQ.INV.RT\(z_xlfn.CHISQ.INV.RT(z\bCHISQ.INV\(z_xlfn.CHISQ.INV(z\bCHISQ.TEST\(z_xlfn.CHISQ.TEST(z\bCOMBINA\(z_xlfn.COMBINA(z
\bCONCAT\(z_xlfn.CONCAT(z\bCONFIDENCE.NORM\(z_xlfn.CONFIDENCE.NORM(z\bCONFIDENCE.T\(z_xlfn.CONFIDENCE.T(z\bCOTH\(z_xlfn.COTH(z\bCOT\(z
_xlfn.COT(z\bCOVARIANCE.P\(z_xlfn.COVARIANCE.P(z\bCOVARIANCE.S\(z_xlfn.COVARIANCE.S(z\bCSCH\(z_xlfn.CSCH(z\bCSC\(z
_xlfn.CSC(z\bDAYS\(z_xlfn.DAYS(z\bDECIMAL\(z_xlfn.DECIMAL(z\bERF.PRECISE\(z_xlfn.ERF.PRECISE(z\bERFC.PRECISE\(z_xlfn.ERFC.PRECISE(z\bEXPON.DIST\(z_xlfn.EXPON.DIST(z\bF.DIST.RT\(z_xlfn.F.DIST.RT(z
\bF.DIST\(z_xlfn.F.DIST(z\bF.INV.RT\(z_xlfn.F.INV.RT(z	\bF.INV\(z_xlfn.F.INV(z
\bF.TEST\(z_xlfn.F.TEST(z\bFILTERXML\(z_xlfn.FILTERXML(z\bFLOOR.MATH\(z_xlfn.FLOOR.MATH(z\bFLOOR.PRECISE\(z_xlfn.FLOOR.PRECISE(z\bFORECAST.ETS.CONFINT\(z_xlfn.FORECAST.ETS.CONFINT(z\bFORECAST.ETS.SEASONALITY\(z_xlfn.FORECAST.ETS.SEASONALITY(z\bFORECAST.ETS.STAT\(z_xlfn.FORECAST.ETS.STAT(z\bFORECAST.ETS\(z_xlfn.FORECAST.ETS(z\bFORECAST.LINEAR\(z_xlfn.FORECAST.LINEAR(z\bFORMULATEXT\(z_xlfn.FORMULATEXT(z\bGAMMA.DIST\(z_xlfn.GAMMA.DIST(z\bGAMMA.INV\(z_xlfn.GAMMA.INV(z\bGAMMALN.PRECISE\(z_xlfn.GAMMALN.PRECISE(z	\bGAMMA\(z_xlfn.GAMMA(z	\bGAUSS\(z_xlfn.GAUSS(z\bHYPGEOM.DIST\(z_xlfn.HYPGEOM.DIST(z\bIFNA\(z_xlfn.IFNA(z\bIFS\(z
_xlfn.IFS(z	\bIMAGE\(z_xlfn.IMAGE(z
\bIMCOSH\(z_xlfn.IMCOSH(z	\bIMCOT\(z_xlfn.IMCOT(z
\bIMCSCH\(z_xlfn.IMCSCH(z	\bIMCSC\(z_xlfn.IMCSC(z
\bIMSECH\(z_xlfn.IMSECH(z	\bIMSEC\(z_xlfn.IMSEC(z
\bIMSINH\(z_xlfn.IMSINH(z	\bIMTAN\(z_xlfn.IMTAN(z\bISFORMULA\(z_xlfn.ISFORMULA(z\bISOMITTED\(z_xlfn.ISOMITTED(z\bISOWEEKNUM\(z_xlfn.ISOWEEKNUM(z\bLET\(z
_xlfn.LET(z\bLOGNORM.DIST\(z_xlfn.LOGNORM.DIST(z\bLOGNORM.INV\(z_xlfn.LOGNORM.INV(z
\bMAXIFS\(z_xlfn.MAXIFS(z
\bMINIFS\(z_xlfn.MINIFS(z\bMODE.MULT\(z_xlfn.MODE.MULT(z\bMODE.SNGL\(z_xlfn.MODE.SNGL(z	\bMUNIT\(z_xlfn.MUNIT(z\bNEGBINOM.DIST\(z_xlfn.NEGBINOM.DIST(z\bNORM.DIST\(z_xlfn.NORM.DIST(z\bNORM.INV\(z_xlfn.NORM.INV(z\bNORM.S.DIST\(z_xlfn.NORM.S.DIST(z\bNORM.S.INV\(z_xlfn.NORM.S.INV(z\bNUMBERVALUE\(z_xlfn.NUMBERVALUE(z\bPDURATION\(z_xlfn.PDURATION(z\bPERCENTILE.EXC\(z_xlfn.PERCENTILE.EXC(z\bPERCENTILE.INC\(z_xlfn.PERCENTILE.INC(z\bPERCENTRANK.EXC\(z_xlfn.PERCENTRANK.EXC(z\bPERCENTRANK.INC\(z_xlfn.PERCENTRANK.INC(z\bPERMUTATIONA\(z_xlfn.PERMUTATIONA(z\bPHI\(z
_xlfn.PHI(z\bPOISSON.DIST\(z_xlfn.POISSON.DIST(z\bQUARTILE.EXC\(z_xlfn.QUARTILE.EXC(z\bQUARTILE.INC\(z_xlfn.QUARTILE.INC(z\bQUERYSTRING\(z_xlfn.QUERYSTRING(z\bRANK.AVG\(z_xlfn.RANK.AVG(z\bRANK.EQ\(z_xlfn.RANK.EQ(z\bRRI\(z
_xlfn.RRI(z\bSECH\(z_xlfn.SECH(z\bSEC\(z
_xlfn.SEC(z
\bSHEETS\(z_xlfn.SHEETS(z	\bSHEET\(z_xlfn.SHEET(z
\bSKEW.P\(z_xlfn.SKEW.P(z\bSTDEV.P\(z_xlfn.STDEV.P(z\bSTDEV.S\(z_xlfn.STDEV.S(z\bT.DIST.2T\(z_xlfn.T.DIST.2T(z\bT.DIST.RT\(z_xlfn.T.DIST.RT(z
\bT.DIST\(z_xlfn.T.DIST(z\bT.INV.2T\(z_xlfn.T.INV.2T(z	\bT.INV\(z_xlfn.T.INV(z
\bT.TEST\(z_xlfn.T.TEST(z\bTEXTAFTER\(z_xlfn.TEXTAFTER(z\bTEXTBEFORE\(z_xlfn.TEXTBEFORE(z\bTEXTJOIN\(z_xlfn.TEXTJOIN(z\bUNICHAR\(z_xlfn.UNICHAR(z\bUNICODE\(z_xlfn.UNICODE(z\bVALUETOTEXT\(z_xlfn.VALUETOTEXT(z	\bVAR.P\(z_xlfn.VAR.P(z	\bVAR.S\(z_xlfn.VAR.S(z\bWEBSERVICE\(z_xlfn.WEBSERVICE(z\bWEIBULL.DIST\(z_xlfn.WEIBULL.DIST(z
\bXMATCH\(z_xlfn.XMATCH(z\bXOR\(z
_xlfn.XOR(z
\bZ.TEST\(z_xlfn.Z.TEST()r  r  r  Úsubr  )r(   rY  Úexpand_future_functionss      r.   rb  zWorksheet._prepare_formulaF  s  € à×Ñ˜cÔ"Ø˜a˜b�kˆGØ×Ñ˜cÔ"Ø˜a˜b�kˆGØ×Ñ˜CÔ Ø˜c˜r�lˆGð �wÑØˆNô —&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜Ð(=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜ ¸Ó@ˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&˜Ð&9¸7ÓCˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&˜Ð)9¸7ÓCˆà×(Ò(Ñ1HØˆNä—&‘&˜ ~°wÓ?ˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&Ð0Ð2KÈWÓUˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&Ð-Ð/EÀwÓOˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&˜Ð)9¸7ÓCˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜Ð)9¸7ÓCˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð-Ð/EÀwÓOˆÜ—&‘&Ø'Ð)FÈó
ˆô —&‘&Ø+Ð-NÐPWó
ˆô —&‘&Ð1Ð3MÈwÓWˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&˜ m°WÓ=ˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&˜¨¸ÓAˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜ ~°wÓ?ˆÜ—&‘&Ð-Ð/EÀwÓOˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&˜Ð*;¸WÓEˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&Ð*Ð,?ÀÓIˆÜ—&‘&Ð+Ð-AÀ7ÓKˆÜ—&‘&Ð)Ð+=¸wÓGˆÜ—&‘&Ð.Ð0GÈÓQˆÜ—&‘&Ð.Ð0GÈÓQˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&Ð/Ð1IÈ7ÓSˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&˜ \°7Ó;ˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð,Ð.CÀWÓMˆÜ—&‘&Ð,Ñ.CÀWÓMˆÜ—&‘&Ñ+Ñ-AÀ7ÓKˆÜ—&‘&™Ñ*;¸WÓEˆÜ—&‘&™Ñ)9¸7ÓCˆÜ—&‘&™¡\°7Ó;ˆÜ—&‘&™¡m°WÓ=ˆÜ—&‘&™¡\°7Ó;ˆÜ—&‘&™©¸ÓAˆÜ—&‘&™¡~°wÓ?ˆÜ—&‘&™©¸ÓAˆÜ—&‘&™Ñ)9¸7ÓCˆÜ—&‘&™Ñ)9¸7ÓCˆÜ—&‘&Ñ)Ñ+=¸wÓGˆÜ—&‘&Ñ)Ñ+=¸wÓGˆÜ—&‘&™©¸ÓAˆÜ—&‘&™Ñ*;¸WÓEˆÜ—&‘&™¡~°wÓ?ˆÜ—&‘&™©¸ÓAˆÜ—&‘&Ñ)Ñ+=¸wÓGˆÜ—&‘&Ñ*Ñ,?ÀÓIˆÜ—&‘&™Ñ*;¸WÓEˆÜ—&‘&™Ñ)9¸7ÓCˆÜ—&‘&™Ñ)9¸7ÓCˆÜ—&‘&Ñ+Ñ-AÀ7ÓKˆÜ—&‘&™¡~°wÓ?ˆÜ—&‘&™¡~°wÓ?ˆÜ—&‘&Ñ*Ñ,?ÀÓIˆÜ—&‘&Ñ,Ñ.CÀWÓMˆÜ—&‘&™©¸ÓAˆÜ—&‘&™¡\°7Ó;ˆÜ—&‘&™©¸ÓAˆàˆr2   c	                 ó8  — ||kD  r||}}||kD  r||}}| j                  ||«      ry| j                  ||«      ry||k(  r||k(  rt        ||«      }	nt        ||«      dz   t        ||«      z   }	| j                  |«      }| j                  r || j                  kD  r| j                  |«       t        ||||	|«      | j                  |   |<   | j                  sGt        ||dz   «      D ]5  }
t        ||dz   «      D ]!  }|
|k7  s||k7  sŒ| j                  |
|d|«       Œ# Œ7 y)Nr>  r5   r   r   )
r@  r   rb  rg   rò   rC  Úcell_arformula_tupler¿   Úranger  )r(   rf  rg  rh  ri  rY  r:  rZ  ÚatypeÚ
cell_ranger!  rC   s               r.   ra  zWorksheet._write_array_formulaü  s\  € ð �xÒØ"*¨I�xˆIØ�xÒØ"*¨I�xˆIð ×!Ñ! )¨YÔ7ØØ×!Ñ! (¨HÔ5Øð ˜Ò  Y°(Ò%:Ü*¨9°iÓ@‰Jô " )¨YÓ7Øñä# H¨hÓ7ñ8ð ð ×'Ñ'¨Ó0ˆð ×Ò I°×0AÑ0AÒ$AØ×"Ñ" 9Ô-ô ,@Ø�[ %¨°Uó,
ˆ�
‰
�9Ñ˜iÑ(ð
 ×#Ò#Ü˜Y¨°1©Ó5ò E�Ü  ¨H°q©LÓ9ò E�CØ˜iÒ'¨3°)Ó+;Ø×*Ñ*¨3°°Q¸ÕDñEðEð
 r2   c                 ó*   — | j                  ||||«      S )aŽ  
        Write a date or time to a worksheet cell.

        Args:
            row:         The cell row (zero indexed).
            col:         The cell column (zero indexed).
            date:        Date and/or time as a datetime object.
            cell_format: A cell Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        )r2  )r(   r!  rC   r/  r:  s        r.   Úwrite_datetimezWorksheet.write_datetime2  s   € ð  ×#Ñ# C¨¨d°KÓ@Ð@r2   c                 óø   — | j                  ||«      ry| j                  r || j                  kD  r| j                  |«       | j	                  |«      }|€| j
                  }t        ||«      | j                  |   |<   y)Nr>  r   )r@  rg   rò   rC  Ú_convert_date_timer   Úcell_datetime_tupler¿   )r(   r!  rC   r/  r:  rI  s         r.   r2  zWorksheet._write_datetimeE  s~   € à×!Ñ! # sÔ+Øð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ð ×(Ñ(¨Ó.ˆð ÐØ×2Ñ2ˆKô  3°6¸;ÓGˆ�
‰
�3‰˜Ñàr2   c                 ó*   — | j                  ||||«      S )aˆ  
        Write a boolean value to a worksheet cell.

        Args:
            row:         The cell row (zero indexed).
            col:         The cell column (zero indexed).
            boolean:     Cell data. bool type.
            cell_format: An optional cell Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        )r,  )r(   r!  rC   Úbooleanr:  s        r.   Úwrite_booleanzWorksheet.write_booleanZ  s   € ð  ×"Ñ" 3¨¨W°kÓBÐBr2   c                 óÈ   — | j                  ||«      ry| j                  r || j                  kD  r| j                  |«       |rd}nd}t	        ||«      | j
                  |   |<   y)Nr>  r   r   )r@  rg   rò   rC  Úcell_boolean_tupler¿   )r(   r!  rC   r|  r:  rZ  s         r.   r,  zWorksheet._write_booleanm  sf   € à×!Ñ! # sÔ+Øð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'áØ‰EàˆEô  2°%¸ÓEˆ�
‰
�3‰˜Ñàr2   c                 ó.   — | j                  ||||||«      S )aˆ  
        Write a hyperlink to a worksheet cell.

        Args:
            row:    The cell row (zero indexed).
            col:    The cell column (zero indexed).
            url:    Hyperlink url.
            format: An optional cell Format object.
            string: An optional display string for the hyperlink.
            tip:    An optional tooltip.
        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: String longer than 32767 characters.
            -3: URL longer than Excel limit of 255 characters.
            -4: Exceeds Excel limit of 65,530 urls per worksheet.
        )r  )r(   r!  rC   Úurlr:  r9  Útips          r.   Ú	write_urlzWorksheet.write_urlˆ  s   € ð& �‰˜s C¨¨k¸6À3ÓGÐGr2   c                 ó¸  — | j                  ||«      ry|€|}d}|j                  d«      r&|j                  dd«      }|j                  dd«      }d}d}|j                  d«      rJ|j                  dd«      }|j                  dd	«      }|j                  dd«      }|j                  dd	«      }d
}|j                  dd«      }d}	t        |«      | j                  kD  rt        d«       y|}
|dk(  rŠd|v r|j                  dd«      \  }}
nd }
| j                  |«      }|
�|s| j                  |
«      }
t        j                  d|«      st        j                  d|«      rd|z   }t        j                  dd|«      }|
xs d}| j                  }t        |«      |kD  st        |«      |kD  rt        d||fz  «       y| xj                  dz  c_        | j                  dkD  rt        d|z  «       y|€| j                  }| j                  s@| j                  r || j                   kD  r| j#                  |«       | j%                  ||||«       |||
|dœ| j&                  |   |<   |	S )Nr>  r   ú	internal:rU   é   Fú	external:ú/ú\Tr  r   zFIgnoring URL since it exceeds Excel's string limit of 32767 charactersr?  ú#ú\w:ú\\úfile:///z^\.\\zfIgnoring URL '%s' with link or location/anchor > %d characters since it exceeds Excel's limit for URLSéýÿÿÿiúÿ  zNIgnoring URL '%s' since it exceeds Excel's limit of 65,530 URLS per worksheet.éüÿÿÿ)Ú	link_typer�  r-  r‚  )r@  r  ÚreplacerA  rp   r   r7   Ú_escape_urlr  r  ro  r  rÚ   r  r  rg   rò   rC  r  rû   )r(   r!  rC   r�  r:  r9  r‚  r�  ÚexternalrE  Úurl_strÚtmp_url_strÚmax_urls                r.   r  zWorksheet._write_urlž  s‹  € à×!Ñ! # sÔ+Øð ˆ>ØˆFð ˆ	ð �>‰>˜+Ô&Ø—+‘+˜k¨2Ó.ˆCØ—^‘^ K°Ó4ˆFØˆIð ˆØ�>‰>˜+Ô&Ø—+‘+˜k¨2Ó.ˆCØ—+‘+˜c 4Ó(ˆCØ—^‘^ K°Ó4ˆFØ—^‘^ C¨Ó.ˆFØˆHð —‘ 	¨2Ó.ˆð ˆ	Üˆv‹;˜Ÿ™Ò(Üð#ôð ð ˆð ˜Š>à�c‰zØ"Ÿy™y¨¨aÓ0‘�‘Wà�à×"Ñ" 3Ó'ˆCàÐ"©8Ø×*Ñ*¨7Ó3�ô �x‰x˜ Ô$¬¯©°¸Ô(<Ø  3Ñ&�ô —&‘&˜ 2 sÓ+ˆCð ’m ˆØ×%Ñ%ˆÜˆs‹8�gÒ¤ [Ó!1°GÒ!;ÜðEØHKÈWÀ~ñVôð ð 	×Ò˜AÑÕà×Ñ˜eÒ#Üð-Ø/2ñ3ôð ð ÐØ×1Ñ1ˆKà×'Ò'à×#Ò#¨¨d×.?Ñ.?Ò(?Ø×&Ñ& sÔ+ð ×Ñ˜s C¨°Ô=ð #ØØØñ	%
ˆ�‰˜Ñ˜SÑ!ð Ðr2   c                 ó*   —  | j                   ||g|¢­Ž S )aI  
        Write a "rich" string with multiple formats to a worksheet cell.

        Args:
            row:          The cell row (zero indexed).
            col:          The cell column (zero indexed).
            string_parts: String and format pairs.
            cell_format:  Optional Format object.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: String truncated to 32k characters.
            -3: 2 consecutive formats used.
            -4: Empty string used.
            -5: Insufficient parameters.

        )Ú_write_rich_stringr'  s       r.   Úwrite_rich_stringzWorksheet.write_rich_string	  s   € ð* 'ˆt×&Ñ& s¨CÐ7°$Ò7Ð7r2   c                 ó†  — t        |«      }d }d}d}| j                  ||«      ryt        |d   t        «      r|j	                  «       }t        «       }t        «       | _        | j                  j                  |«       t        «       }	g }
d}d}t        |«      dk  rt        d«       y|D ]”  }t        |t        «      sS|dk7  r#|
j                  |	«       |
j                  |«       n|
j                  |«       |dk(  rt        d«        y	||z  }d
}n*|dk(  r|dkD  rt        d«        y|
j                  |«       d}|dz  }Œ– t        |
d   t        «      s| j                  j                  d«       |
D ]•  }t        |t        «      r-| j                  j                  d«       | j                  |«       Œ@g }t        |«      r|j                  d«       | j                  j                  d||«       | j                  j!                  d«       Œ— | j                  j"                  j%                  «       }t        |«      | j&                  kD  rt        d«       y| j(                  s| j*                  j-                  |«      }n|}| j(                  r || j.                  kD  r| j1                  |«       t3        |||«      | j4                  |   |<   y)Nr   rU   r>  rJ   r†  zfYou must specify more than 2 format/fragments for rich strings. Ignoring input in write_rich_string().éûÿÿÿzYExcel doesn't allow empty strings in rich strings. Ignoring input in write_rich_string().r�  r9  zaExcel doesn't allow 2 consecutive formats in rich strings. Ignoring input in write_rich_string().rŽ  r   Úr)z	xml:spaceÚpreserveÚtzfString length must be less than or equal to Excel's limit of 32,767 characters in write_rich_string().r?  )Úlistr@  r3  r   Úpopr	   r   rñ   Ú_set_filehandlerA  r   ÚappendÚ_xml_start_tagÚ_write_fontr   Ú_xml_data_elementÚ_xml_end_tagÚfhÚgetvaluerp   rg   re   rB  rò   rC  Úcell_rich_string_tupler¿   )r(   r!  rC   r)   Útokensr:  rF  Ú
raw_stringr§  ÚdefaultÚ	fragmentsÚpreviousÚposr   Ú
attributesr9  s                   r.   r˜  zWorksheet._write_rich_string!  s°  € Ü�d“ˆØˆØˆØˆ
ð ×!Ñ! # sÔ+Øô �f˜R‘j¤&Ô)Ø Ÿ*™*›,ˆKô ‹ZˆÜ “{ˆŒØ�‰×$Ñ$ RÔ(ô “(ˆð
 ˆ	ØˆØˆäˆv‹;˜!ÒÜðBôð àò "	ˆEÜ˜e¤VÔ,à˜xÒ'à×$Ñ$ WÔ-Ø×$Ñ$ UÕ+ð ×$Ñ$ UÔ+à˜B’;ÜðAôñ ð ˜eÑ#�
Ø#‘ð ˜xÒ'¨C°!ªGÜðJôñ ð × Ñ  Ô'Ø#�à�1‰H‰CðE"	ôJ ˜) A™,¬Ô/Ø�L‰L×'Ñ'¨Ô,ð ò 	/ˆEÜ˜%¤Ô(à—‘×+Ñ+¨CÔ0Ø× Ñ  Õ'ð  �
ä& uÔ-Ø×%Ñ%Ð&?Ô@à—‘×.Ñ.¨s°E¸:ÔFØ—‘×)Ñ)¨#Õ.ð	/ð  —‘—‘×)Ñ)Ó+ˆô ˆz‹?˜TŸ_™_Ò,Üð?ôð ð ×#Ò#ØŸ>™>×BÑBÀ6ÓJ‰Là!ˆLð ×Ò C¨$×*;Ñ*;Ò$;Ø×"Ñ" 3Ô'ô  6Ø˜+ zó 
ˆ�
‰
�3‰˜Ñð r2   c                 ó"   — || j                   |<   y)a"  
        Add a callback function to the write() method to handle user defined
        types.

        Args:
            user_type:      The user type() to match on.
            user_function:  The user defined function to write the type data.
        Returns:
            Nothing.

        N)r  )r(   Ú	user_typeÚuser_functions      r.   Úadd_write_handlerzWorksheet.add_write_handlerš  s   € ð *7ˆ×Ñ˜IÒ&r2   c                 óP   — |D ]!  }| j                  ||||«      }|r|c S |dz  }Œ# y)a†  
        Write a row of data starting from (row, col).

        Args:
            row:    The cell row (zero indexed).
            col:    The cell column (zero indexed).
            data:   A list of tokens to be written with write().
            format: An optional cell Format object.
        Returns:
            0:  Success.
            other: Return value of write() method.

        r   r   r%  ©r(   r!  rC   Údatar:  r   rm  s          r.   Ú	write_rowzWorksheet.write_row©  ó=   € ð ò 	ˆEØ—K‘K  S¨%°Ó=ˆEÙØ’Ø�1‰H‰Cð		ð r2   c                 óP   — |D ]!  }| j                  ||||«      }|r|c S |dz  }Œ# y)a‰  
        Write a column of data starting from (row, col).

        Args:
            row:    The cell row (zero indexed).
            col:    The cell column (zero indexed).
            data:   A list of tokens to be written with write().
            format: An optional cell Format object.
        Returns:
            0:  Success.
            other: Return value of write() method.

        r   r   r%  r¶  s          r.   Úwrite_columnzWorksheet.write_columnÀ  r¹  r2   c                 ó’  — | j                  ||dd«      rt        d||fz  «       y|€i }|j                  dd«      }|j                  dd«      }|j                  dd	«      }|j                  d
d	«      }|j                  dd«      }	|j                  dd«      }
|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  d|«      }|s.t        j                  j                  |«      st        d|z  «       y| j                  j                  ||||||||	|
||||g«       y)a¸  
        Insert an image with its top-left corner in a worksheet cell.

        Args:
            row:      The cell row (zero indexed).
            col:      The cell column (zero indexed).
            filename: Path and filename for in supported formats.
            options:  Position, scale, url and data stream of the image.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Tz Cannot insert image at (%d, %d).r>  NÚx_offsetr   Úy_offsetÚx_scaler   Úy_scaler�  r‚  Úobject_positionr†  Ú
image_dataÚdescriptionÚ
decorativeFÚpositioningúImage file '%s' not found.)r@  r   ÚgetÚosÚpathÚexistsrå   r¢  )r(   r!  rC   ÚfilenameÚoptionsr½  r¾  r¿  rÀ  r�  r‚  ÚanchorrÂ  rÃ  rÄ  s                  r.   Úinsert_imagezWorksheet.insert_image×  sP  € ð" ×!Ñ! # s¨D°$Ô7ÜÐ3°s¸C°jÑ@ÔAØàˆ?ØˆGà—;‘;˜z¨1Ó-ˆØ—;‘;˜z¨1Ó-ˆØ—+‘+˜i¨Ó+ˆØ—+‘+˜i¨Ó+ˆØ�k‰k˜% Ó&ˆØ�k‰k˜% Ó&ˆØ—‘Ð.°Ó2ˆØ—[‘[ ¨tÓ4ˆ
Ø—k‘k -°Ó6ˆØ—[‘[ ¨uÓ5ˆ
ð —‘˜]¨FÓ3ˆá¤"§'¡'§.¡.°Ô":ÜÐ-°Ñ8Ô9Øà�‰×ÑàØØØØØØØØØØØØðô	
ð" r2   c                 óš  — | j                  ||«      rt        d||fz  «       y|€i }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }	|j                  d	d
«      }
|s.t        j                  j                  |«      st        d|z  «       y|r2|€| j                  }d| _        | j                  ||||d|«       d
| _        t        ||«      \  }}}}}}}||||	|
g}| j                  j                  ||«      }t        d||«      | j                  |   |<   y)a�  
        Embed an image in a worksheet cell.

        Args:
            row:      The cell row (zero indexed).
            col:      The cell column (zero indexed).
            filename: Path and filename for in supported formats.
            options:  Url and data stream of the image.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        zCannot embed image at (%d, %d).r>  Nr�  r‚  r:  rÂ  rÃ  rÄ  FrÆ  Tú#VALUE!r   )r@  r   rÇ  rÈ  rÉ  rÊ  r  r  rƒ  r   Úembedded_imagesÚget_image_indexÚcell_error_tupler¿   )r(   r!  rC   rË  rÌ  r�  r‚  r:  rÂ  rÃ  rÄ  Ú
image_typerD   ÚdigestÚimageÚimage_indexs                   r.   Úembed_imagezWorksheet.embed_image  s`  € ð" ×!Ñ! # sÔ+ÜÐ2°c¸3°ZÑ?Ô@Øàˆ?ØˆGà�k‰k˜% Ó&ˆØ�k‰k˜% Ó&ˆØ—k‘k -°Ó6ˆØ—[‘[ ¨tÓ4ˆ
Ø—k‘k -°Ó6ˆØ—[‘[ ¨uÓ5ˆ
á¤"§'¡'§.¡.°Ô":ÜÐ-°Ñ8Ô9ØáØÐ"Ø"×5Ñ5�à'+ˆDÔ$Ø�N‰N˜3  S¨+°t¸SÔAØ',ˆDÔ$ô ! ¨:Ó6ñ	
ØØØØØØØð ˜: z°;À
ÐKˆØ×*Ñ*×:Ñ:¸5À&ÓIˆô  0°	¸;ÈÓTˆ�
‰
�3‰˜Ñàr2   c                 ó¦  — | j                  ||dd«      rt        d||fz  «       y|€d}|€i }|j                  dd«      }|j                  dd«      }|j                  d	d
«      }|j                  dd
«      }|j                  dd
«      }	|j                  dd«      }
|j                  dd«      }| j                  j	                  ||||||||	||
|g«       y)a†  
        Insert an textbox with its top-left corner in a worksheet cell.

        Args:
            row:      The cell row (zero indexed).
            col:      The cell column (zero indexed).
            text:     The text for the textbox.
            options:  Textbox options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Tz"Cannot insert textbox at (%d, %d).r>  NrU   r½  r   r¾  r¿  r   rÀ  rÁ  rÃ  rÄ  F)r@  r   rÇ  rè   r¢  )r(   r!  rC   ÚtextrÌ  r½  r¾  r¿  rÀ  rÍ  rÃ  rÄ  s               r.   Úinsert_textboxzWorksheet.insert_textboxR  sï   € ð" ×!Ñ! # s¨D°$Ô7ÜÐ5¸¸c¸
ÑBÔCØàˆ<ØˆDàˆ?ØˆGà—;‘;˜z¨1Ó-ˆØ—;‘;˜z¨1Ó-ˆØ—+‘+˜i¨Ó+ˆØ—+‘+˜i¨Ó+ˆØ—‘Ð.°Ó2ˆØ—k‘k -°Ó6ˆØ—[‘[ ¨uÓ5ˆ
à�‰×ÑàØØØØØØØØØØðô	
ð r2   c                 ó$  — | j                  ||dd«      rt        d||fz  «       y|€i }|j                  s"|j                  r"|j                  j                  rt        d«       yd|_        |j                  rd|j                  _        |j	                  dd«      }|j	                  dd«      }|j	                  d	d
«      }|j	                  dd
«      }|j	                  dd
«      }	|j	                  dd«      }
|j	                  dd«      }|j
                  d
k7  r|j
                  }|j                  d
k7  r|j                  }|j                  r|j                  }|j                  r|j                  }| j                  j                  ||||||||	|
|g
«       y)a„  
        Insert an chart with its top-left corner in a worksheet cell.

        Args:
            row:     The cell row (zero indexed).
            col:     The cell column (zero indexed).
            chart:   Chart object.
            options: Position and scale of the chart.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Tz Cannot insert chart at (%d, %d).r>  Nz7Chart cannot be inserted in a worksheet more than once.r½  r   r¾  r¿  r   rÀ  rÁ  rÃ  rÄ  F)r@  r   Úalready_insertedÚcombinedrÇ  r¿  rÀ  r½  r¾  rä   r¢  )r(   r!  rC   ÚchartrÌ  r½  r¾  r¿  rÀ  rÍ  rÃ  rÄ  s               r.   Úinsert_chartzWorksheet.insert_chart†  sr  € ð" ×!Ñ! # s¨D°$Ô7ÜÐ3°s¸C°jÑ@ÔAØàˆ?ØˆGð ×!Ò! U§^¢^¸¿¹×8WÒ8WÜÐJÔKØà%)ˆEÔ"à�~Š~Ø26�—‘Ô/à—;‘;˜z¨1Ó-ˆØ—;‘;˜z¨1Ó-ˆØ—+‘+˜i¨Ó+ˆØ—+‘+˜i¨Ó+ˆØ—‘Ð.°Ó2ˆØ—k‘k -°Ó6ˆØ—[‘[ ¨uÓ5ˆ
ð �=‰=˜AÒØ—m‘mˆGà�=‰=˜AÒØ—m‘mˆGà�>Š>Ø—~‘~ˆHà�>Š>Ø—~‘~ˆHà�‰×ÑàØØØØØØØØØðô	
ð r2   c                 ó¬   — |€i }| j                  ||«      ryt        |«      | j                  kD  ryd| _        d| _        ||||g| j
                  |   |<   y)až  
        Write a comment to a worksheet cell.

        Args:
            row:     The cell row (zero indexed).
            col:     The cell column (zero indexed).
            comment: Cell comment. Str.
            options: Comment formatting options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: String longer than 32k characters.

        r>  r?  r   r   )r@  rA  rp   rÄ   rÆ   rÇ   )r(   r!  rC   ÚcommentrÌ  s        r.   Úwrite_commentzWorksheet.write_commentÍ  sh   € ð" ˆ?ØˆGð ×!Ñ! # sÔ+Øô ˆw‹<˜$Ÿ/™/Ò)ØàˆŒØˆÔð $'¨¨W°gÐ">ˆ�‰�cÑ˜3Ñàr2   c                 ó   — d| _         y)z†
        Make any comments in the worksheet visible.

        Args:
            None.

        Returns:
            Nothing.

        r   N)rÊ   ©r(   s    r.   Úshow_commentszWorksheet.show_commentsñ  ó   € ð !"ˆÕr2   c                 ó€   — |s.t         j                  j                  |«      st        d|z  «       y|| _        || _        y)zî
        Set a background image for a worksheet.

        Args:
            filename:       Path and filename for in supported formats.
            is_byte_stream: File is a stream of bytes.
        Returns:
            Nothing.

        rÆ  r>  N)rÈ  rÉ  rÊ  r   rð   rï   )r(   rË  Úis_byte_streams      r.   Úset_backgroundzWorksheet.set_backgroundþ  s7   € ñ ¤b§g¡g§n¡n°XÔ&>ÜÐ-°Ñ8Ô9Øà .ˆÔØ (ˆÕr2   c                 ó   — || _         y)z¦
        Set the default author of the cell comments.

        Args:
            author: Comment author name. String.

        Returns:
            Nothing.

        N)rÉ   )r(   Úauthors     r.   Úset_comments_authorzWorksheet.set_comments_author  s   € ð  &ˆÕr2   c                 ó   — | j                   S )zw
        Retrieve the worksheet name.

        Args:
            None.

        Returns:
            Nothing.

        )rc   rå  s    r.   Úget_namezWorksheet.get_name  s   € ð �y‰yÐr2   c                 óV   — d| _         d| _        | j                  | j                  _        y)a  
        Set this worksheet as the active worksheet, i.e. the worksheet that is
        displayed when the workbook is opened. Also set it as selected.

        Note: An active worksheet cannot be hidden.

        Args:
            None.

        Returns:
            Nothing.

        r   r   N)rw   r}   rd   r  Úactivesheetrå  s    r.   ÚactivatezWorksheet.activate,  s$   € ð ˆŒØˆŒØ*.¯*©*ˆ×ÑÕ'r2   c                 ó    — d| _         d| _        y)zó
        Set current worksheet as a selected worksheet, i.e. the worksheet
        has its tab highlighted.

        Note: A selected worksheet cannot be hidden.

        Args:
            None.

        Returns:
            Nothing.

        r   r   N)r}   rw   rå  s    r.   ÚselectzWorksheet.select>  s   € ð ˆŒØˆ�r2   c                 ó    — d| _         d| _        y)zv
        Hide the current worksheet.

        Args:
            None.

        Returns:
            Nothing.

        r   r   N©rw   r}   rå  s    r.   ÚhidezWorksheet.hideO  ó   € ð ˆŒð ˆ�r2   c                 ó    — d| _         d| _        y)z˜
        Hide the current worksheet. This can only be unhidden by VBA.

        Args:
            None.

        Returns:
            Nothing.

        r†  r   Nrö  rå  s    r.   Úvery_hiddenzWorksheet.very_hidden_  rø  r2   c                 óH   — d| _         | j                  | j                  _        y)aJ  
        Set current worksheet as the first visible sheet. This is necessary
        when there are a large number of worksheets and the activated
        worksheet is not visible on the screen.

        Note: A selected worksheet cannot be hidden.

        Args:
            None.

        Returns:
            Nothing.

        r   N)rw   rd   r  Ú
firstsheetrå  s    r.   Úset_first_sheetzWorksheet.set_first_sheeto  s   € ð ˆŒØ)-¯©ˆ×ÑÕ&r2   c                 ó   — |€i }||kD  r||}}d}|j                  dd«      }|j                  dd«      }|j                  dd«      }	|s|r|rd}
nd}
| j                  d|||
«      ry| j                  d|||
«      ry|	dk  rd}	|	dkD  rd}	|	| j                  kD  r|	| _        t        ||d	z   «      D ]  }||||	|dg| j                  |<   Œ d| _        y)
a  
        Set the width, and other properties of a single column or a
        range of columns.

        Args:
            first_col:   First column (zero-indexed).
            last_col:    Last column (zero-indexed). Can be same as first_col.
            width:       Column width. (optional).
            cell_format: Column cell_format. (optional).
            options:     Dict of options such as hidden and level.

        Returns:
            0:  Success.
            -1: Column number is out of worksheet bounds.

        Trw   FÚ	collapsedÚlevelr   r>  é   r   )rÇ  r@  r°   rs  ru   rÖ   )r(   rg  ri  Úwidthr:  rÌ  Ú
ignore_rowrw   rÿ  r   Ú
ignore_colrC   s               r.   Ú
set_columnzWorksheet.set_column�  s  € ð( ˆ?ØˆGð �xÒØ%-¨y˜ˆYð ˆ
ð —‘˜X uÓ-ˆØ—K‘K ¨UÓ3ˆ	Ø—‘˜G QÓ'ˆñ ™5¡VØ‰JàˆJð ×!Ñ! ! X¨z¸:ÔFØØ×!Ñ! ! Y°
¸JÔGØð �1Š9ØˆEØ�1Š9ØˆEà�4×)Ñ)Ò)Ø%*ˆDÔ"ô ˜ H¨q¡LÓ1ò 	WˆCØ"'¨°f¸eÀYÐPUÐ!VˆD�M‰M˜#Òð	Wð !%ˆÔàr2   c                 óR   — |�| j                  |«      }| j                  |||||«      S )a;  
        Set the width, and other properties of a single column or a
        range of columns, where column width is in pixels.

        Args:
            first_col:   First column (zero-indexed).
            last_col:    Last column (zero-indexed). Can be same as first_col.
            width:       Column width in pixels. (optional).
            cell_format: Column cell_format. (optional).
            options:     Dict of options such as hidden and level.

        Returns:
            0:  Success.
            -1: Column number is out of worksheet bounds.

        )Ú_pixels_to_widthr  )r(   rg  ri  r  r:  rÌ  s         r.   Úset_column_pixelszWorksheet.set_column_pixelsÂ  s1   € ð( ÐØ×)Ñ)¨%Ó0ˆEà�‰˜y¨(°E¸;ÈÓPÐPr2   c                 ó<  — | j                   rt        d«       y| j                  €yi }t        | j                  j
                  | j                  j
                  j                  ¬«      }t        | j                  | j                  dz   «      D �]3  }| j                  j                  |«      sŒ t        | j                  | j                  dz   «      D �]í  }|| j                  |   v sŒ| j                  |   |   }|j                  j                  }d}|dv r_|dk(  r|j                  }||   }	n|j                   }	d|	vrt#        |	«      }�n1|	j%                  d«      D ]  }	t#        |	«      }
|
|kD  sŒ|
}Œ �n|d	k(  r"d
t'        t)        |j*                  «      «      z  }nß|dk(  r| j,                  }nÍ|dk(  r|j.                  rd}n¹d}n¶|dk(  s|dk(  r¬t1        |j2                  t4        t6        f«      r1|j2                  dkD  r}d
t'        t)        |j2                  «      «      z  }n[t1        |j2                  t(        «      rt#        |j2                  «      }n+t1        |j2                  t8        «      r|j2                  rd}nd}| j:                  j                  ||f«      r
|dkD  r|dz  }|j                  |d«      }||kD  s�Œé|||<   �Œð �Œ6 |j=                  «       D ]É  \  }}| j?                  |d
z   «      }|dkD  rd}| j@                  j                  |«      ry| j@                  j                  |«      }|d   }|d   }|�-|s+||kD  sŒk|| j@                  |   d<   d| j@                  |   d<   Œ�|| j@                  |   d<   d| j@                  |   d<   Œµ|dddddg| j@                  |<   ŒË y)zœ
        Simulate autofit based on the data, and datatypes in each column.

        Args:
            None.

        Returns:
            Nothing.

        z1Autofit is not supported in constant_memory mode.N)Úkeyr   r   ©rG   rO   rG   ú
rH   r  rM   rK   é   é$   rL   rN   é   g     ào@é   TF)!rg   r   rr   Úsortedre   Ústring_tableÚ__getitem__rs  rq   r¿   rÇ  rs   rt   r  Ú__name__r9  r«  r   r7   rA  r-  rI  r»   r|  r3  rZ  r  r&   r+  rÔ   Úitemsr  ru   )r(   Úcol_width_maxÚstringsÚrow_numÚcol_numÚcellÚ	cell_typeÚlengthÚ	string_idr9  Ú
seg_lengthÚ	width_maxÚpixel_widthr  ru   Ú
user_widthrw   s                    r.   ÚautofitzWorksheet.autofitÛ  s�  € ð ×ÒÜÐDÔEØð �?‰?Ð"Øð ˆô Ø�N‰N×'Ñ'¨T¯^©^×-HÑ-H×-TÑ-Tô
ˆô ˜TŸ_™_¨d¯o©oÀÑ.AÓBó W	8ˆGØ—:‘:—>‘> 'Ô*Øä  §¡°$·/±/ÀAÑ2EÓFó S8�Ø˜dŸj™j¨Ñ1Ò1ØŸ:™: gÑ.¨wÑ7�DØ $§¡× 7Ñ 7�IØ�Fà Ð$<Ñ<ð %¨Ò0Ø(,¯©˜IØ%,¨YÑ%7™Fà%)§_¡_˜Fà vÑ-ä%3°FÓ%;šFð +1¯,©,°tÓ*<ò 8 Ü-;¸FÓ-C 
Ø#-°Ó#6Ø-7¡Fò8ð
 # hÒ.ð "#¤S¬¨T¯[©[Ó)9Ó%:Ñ!:™à" jÒ0ð "&×!9Ñ!9™à" iÒ/ð  Ÿ<š<Ø%'™Fà%'™Fà" iÒ/°9ÀÒ3Nô
 & d§j¡j´5¼#°,Ô?Ø#Ÿz™z¨Aš~Ø)*¬S´°T·Z±Z³Ó-AÑ)A¡ä'¨¯
©
´CÔ8Ü%3°D·J±JÓ%?™Fä'¨¯
©
´DÔ9Ø#ŸzšzØ)+¡à)+ ð ×(Ñ(×,Ñ,¨g°wÐ-?Ô@ÀVÈaÂZØ "™˜ð !.× 1Ñ 1°'¸1Ó =�IØ 	Ô)Ø17˜ gÓ.ògS8ð	W	8ðt %2×$7Ñ$7Ó$9ò 	NÑ ˆG�[ð ×)Ñ)¨+¸©/Ó:ˆEð �uŠ}Ø�ð �}‰}× Ñ  Ô)ð  Ÿ=™=×,Ñ,¨WÓ5�Ø% a™[�
Ø! !™�ØÐ)±&à˜zÓ)Ø49˜Ÿ™ gÑ.¨qÑ1Ø48˜Ÿ™ gÑ.¨qÒ1à05�D—M‘M 'Ñ*¨1Ñ-Ø04�D—M‘M 'Ñ*¨1Ò-à*/°°u¸aÀÈÐ)M�—‘˜gÒ&ñ5	Nr2   c                 ó¶  — |€i }| j                   �| j                   }nd}| j                  ||«      ry|€| j                  }|j                  dd«      }|j                  dd«      }|j                  dd«      }|dk(  rd}| j                  }|dk  rd}|dkD  rd}|| j                  kD  r|| _        |||||g| j
                  |<   d	| _        ||g| j                  |<   y)
aš  
        Set the width, and other properties of a row.

        Args:
            row:         Row number (zero-indexed).
            height:      Row height. (optional).
            cell_format: Row cell_format. (optional).
            options:     Dict of options such as hidden, level and collapsed.

        Returns:
            0:  Success.
            -1: Row number is out of worksheet bounds.

        r   r>  rw   Frÿ  r   r   r  T)rs   r@  r·   rÇ  r¯   r¨   r×   rÕ   )	r(   r!  Úheightr:  rÌ  Úmin_colrw   rÿ  r   s	            r.   Úset_rowzWorksheet.set_rowm  s  € ð ˆ?ØˆGð �?‰?Ð&Ø—o‘o‰GàˆGð ×!Ñ! # wÔ/Øàˆ>Ø×,Ñ,ˆFð —‘˜X uÓ-ˆØ—K‘K ¨UÓ3ˆ	Ø—‘˜G QÓ'ˆð �QŠ;ØˆFØ×,Ñ,ˆFð �1Š9ØˆEØ�1Š9ØˆEà�4×)Ñ)Ò)Ø%*ˆDÔ"ð % k°6¸5À)ÐLˆ�‰�cÑð !%ˆÔð  & vÐ.ˆ�‰�sÑàr2   c                 óP   — |�| j                  |«      }| j                  ||||«      S )a°  
        Set the width (in pixels), and other properties of a row.

        Args:
            row:         Row number (zero-indexed).
            height:      Row height in pixels. (optional).
            cell_format: Row cell_format. (optional).
            options:     Dict of options such as hidden, level and collapsed.

        Returns:
            0:  Success.
            -1: Row number is out of worksheet bounds.

        )Ú_pixels_to_heightr&  )r(   r!  r$  r:  rÌ  s        r.   Úset_row_pixelszWorksheet.set_row_pixelsª  s/   € ð ÐØ×+Ñ+¨FÓ3ˆFà�|‰|˜C ¨°gÓ>Ð>r2   c                 ón   — |€| j                   }|| j                  k7  rd| _        || _         |rd| _        yy)zý
        Set the default row properties.

        Args:
            height:           Default height. Optional, defaults to 15.
            hide_unused_rows: Hide unused rows. Optional, defaults to False.

        Returns:
            Nothing.

        NTr   )r·   r¶   r×   r¼   )r(   r$  Úhide_unused_rowss      r.   Úset_default_rowzWorksheet.set_default_row¾  sB   € ð ˆ>Ø×,Ñ,ˆFà�T×-Ñ-Ò-à$(ˆDÔ!Ø&,ˆDÔ#áØ&'ˆDÕ#ð r2   c           	      óR  — ||k(  r||k(  rt        d«       y||kD  r||}}||kD  r||}}| j                  ||«      ry| j                  ||«      ryt        ||||«      }t        ||dz   «      D ]¿  }t        ||dz   «      D ]«  }	| j                  j                  ||	f«      r/| j                  j                  ||	f«      }
t        d|›d|
›d�«      ‚| j                  j                  ||	f«      r/| j                  j                  ||	f«      }
t        d|›d|
›d�«      ‚|| j                  ||	f<   Œ­ ŒÁ | j                  j                  ||||g«       | j                  ||||«       t        ||dz   «      D ]5  }t        ||dz   «      D ]!  }	||k(  r|	|k(  rŒ| j                  ||	d	|«       Œ# Œ7 y
)a3  
        Merge a range of cells.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            data:         Cell data.
            cell_format:  Cell Format object.

        Returns:
             0:    Success.
            -1:    Row or column is out of worksheet bounds.
            other: Return value of write().

        zCan't merge single cellNr>  r   zMerge range 'ú!' overlaps previous merge range 'ú'.ú!' overlaps previous table range 'rU   r   )r   r@  r   rs  rÁ   rÇ  r"   rÂ   rÀ   r¢  r&  r  )r(   rf  rg  rh  ri  r·  r:  ru  r!  rC   Úprevious_ranges              r.   Úmerge_rangezWorksheet.merge_rangeÕ  sí  € ð2 ˜Ò  Y°(Ò%:ÜÐ*Ô+Øð �xÒØ%-¨y˜ˆYØ�xÒØ%-¨y˜ˆYð ×!Ñ! )¨YÔ7ØØ×!Ñ! (¨HÔ5Øô ˜i¨°H¸hÓGˆ
Ü˜ H¨q¡LÓ1ò 	?ˆCÜ˜Y¨°1©Ó5ò ?�Ø×$Ñ$×(Ñ(¨#¨s¨Ô4Ø%)×%6Ñ%6×%:Ñ%:¸CÀ¸:Ó%F�NÝ*â%¢~ð7óð ð ×%Ñ%×)Ñ)¨3°¨*Ô5Ø%)×%5Ñ%5×%9Ñ%9¸3À¸*Ó%E�NÝ*â%¢~ð7óð ð
 5?�D×%Ñ% s¨C jÒ1ñ?ð	?ð$ 	�
‰
×Ñ˜9 i°¸8ÐDÔEð 	�‰�I˜y¨$°Ô<ô ˜ H¨q¡LÓ1ò 	=ˆCÜ˜Y¨°1©Ó5ò =�Ø˜)Ò#¨¨yÒ(8ØØ×!Ñ! # s¨B°Õ<ñ=ð	=ð r2   c                 óä   — ||k  r||}}||k  r||}}| j                  ||||«      }t        ||||«      }|| _        || _        ||g| _        t        ||dz   «      D ]  }d| j                  ||f<   Œ y)aƒ  
        Set the autofilter area in the worksheet.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.

        Returns:
             Nothing.

        r   TN)Ú_convert_name_arear   rÎ   rÏ   rÐ   rs  rÔ   )r(   rf  rg  rh  ri  ÚareaÚrefrC   s           r.   Ú
autofilterzWorksheet.autofilter!	  sœ   € ð  �iÒØ%-¨y˜ˆYØ�iÒØ%-¨y˜ˆYð ×&Ñ& y°)¸XÀxÓPˆÜ�y )¨X°xÓ@ˆà#ˆÔØ!ˆÔØ&¨Ð1ˆÔô ˜ H¨q¡LÓ1ò 	7ˆCØ26ˆD×Ñ˜y¨#Ð.Ò/ñ	7r2   c                 óä  — | j                   st        d«       y	 t        |«       | j                  \  }}||k  s||kD  rt        d|||fz  «       y| j                  |«      }t        |«      dvrt        d|z  «       | j                  ||«      }t        |«      dk(  r&|d	   dk(  r| j                  ||d
   g«       d
| _        yt        |«      dk(  r:|d	   dk(  r2|d   d
k(  r*|d   dk(  r"| j                  ||d
   |d   g«       d
| _        y|| j                  |<   d	| j                  |<   d
| _        y# t        $ r6 |}t	        |dz   «      \  }}|| j
                  k\  rt        d|z  «       Y yY �ŒIw xY w)zÆ
        Set the column filter criteria.

        Args:
            col:       Filter column (zero-indexed).
            criteria:  Filter criteria.

        Returns:
             Nothing.

        ú-Must call autofilter() before filter_column()NrB   úInvalid column '%s'z6Column '%d' outside autofilter() column range (%d, %d))rV   r  z+Incorrect number of tokens in criteria '%s'r†  r   r   r  rV   é   )rÎ   r   r&   r'   r   ro   rÐ   Ú_extract_filter_tokensrA  Ú_parse_filter_expressionÚfilter_column_listrÒ   rÓ   rÑ   )r(   rC   ÚcriteriaÚ
col_letterrD   Ú	col_firstÚcol_lastrª  s           r.   Úfilter_columnzWorksheet.filter_columnB	  sŸ  € ð ×#Ò#ÜÐ@ÔAØð		Ü�ŒHð !%× 1Ñ 1Ñˆ�Hð �Š?˜c HšnÜØHØ˜	 8Ð,ñ-ôð à×,Ñ,¨XÓ6ˆäˆv‹;˜fÑ$ÜÐ>ÀÑIÔJà×.Ñ.¨x¸Ó@ˆô ˆv‹;˜!Ò  q¡	¨Q¢à×#Ñ# C¨&°©)¨Ô5ð ˆ�ô �‹[˜AÒ &¨¡)¨q¢.°V¸A±YÀ!²^ÈÈqÉ	ÐUVÊà×#Ñ# C¨&°©)°V¸A±YÐ)?Ô@ð ˆ�ð %+ˆD×Ñ˜SÑ!Ø$%ˆD×Ñ˜SÑ!àˆ�øôO ò 	àˆJÜ(¨¨s©Ó3‰HˆQ�à�d—o‘oÒ%ÜÐ*¨ZÑ7Ô8Ùò &ð	ús   šD0 Ä09E/Å.E/c                 ón  — | j                   st        d«       y	 t        |«       | j                  \  }}||k  s||kD  rt        d|||fz  «       y|| j                  |<   d| j                  |<   d| _	        y# t        $ r5 |}t	        |dz   «      \  }}|| j
                  k\  rt        d|z  «       Y yY ŒŽw xY w)zî
        Set the column filter criteria in Excel 2007 list style.

        Args:
            col:      Filter column (zero-indexed).
            filters:  List of filter criteria to match.

        Returns:
             Nothing.

        r9  NrB   r:  z5Column '%d' outside autofilter() column range (%d,%d)r   )
rÎ   r   r&   r'   r   ro   rÐ   rÒ   rÓ   rÑ   )r(   rC   Úfiltersr@  rD   rA  rB  s          r.   r>  zWorksheet.filter_column_list~	  sØ   € ð ×#Ò#ÜÐ@ÔAØð		Ü�ŒHð !%× 1Ñ 1Ñˆ�Hð �Š?˜c HšnÜðØ  )¨XÐ6ñ7ôð à 'ˆ×Ñ˜ÑØ !ˆ×Ñ˜ÑØˆ�øô+ ò 	àˆJÜ(¨¨s©Ó3‰HˆQ�à�d—o‘oÒ%ÜÐ*¨ZÑ7Ô8Ùñ &ð	ús   šA6 Á69B4Â3B4c                 ó¨  — | j                  ||dd«      ry| j                  ||dd«      ry|€i }n|j                  «       }h d£}|j                  «       D ]  }||vsŒt        d|z  «        y d|v r|d   |d<   d	|v r|d	   |d<   d
|vrt        d«       ydddddddddddddœ}|d
   |vrt        d|d
   z  «       y||d
      |d
<   |d
   dk(  r#|j	                  d«      €|j	                  d«      €y|d
   dk(  s|d
   dk(  s|d
   dk(  r
d|d<   d|d<   d|vrt        d«       yi dd“dd“dd“d d“d!d“d"d#“d$d#“d%d#“d&d'“d(d'“d)d*“d+d*“d,d-“d.d-“d/d0“d1d0“}	|d   |	vrt        d2|d   z  «       y|	|d      |d<   |d   dk(  s|d   dk(  rd|vrt        d3«       yd|d<   d4d5d6d7œ}
d8|vrd4|d8<   n$|d8   |
vrt        d9|d8   z  «       y|
|d8      |d8<   |d
   d:v r^|d   rYt        |d   «      rK| j                  |d   «      }d;|z  |d<   |d   r*t        |d   «      r| j                  |d   «      }d;|z  |d<   |j	                  d«      r#t        |d   «      d<kD  rt        d=|d   z  «       y|j	                  d>«      r#t        |d>   «      d<kD  rt        d?|d>   z  «       y|j	                  d«      r#t        |d   «      d@kD  rt        dA|d   z  «       y|j	                  dB«      r#t        |dB   «      d@kD  rt        dC|dB   z  «       y|d
   dk(  rBt        |d   t        «      r/ | j                  |d   Ž }t        |«      d@kD  rt        dD|z  «       ydE|vrd5|dE<   dF|vrd5|dF<   dG|vrd5|dG<   dH|vrd5|dH<   ||||gg|dI<   dJ|v r|dI   j                  |dJ   «       dK|v r|dK   j                  dLdM«      |dK<   | j                  j                  |«       y4)Na  
        Add a data validation to a worksheet.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            options:      Data validation options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: Incorrect parameter or option.
        Tr>  N>   rZ  ÚsourceÚmaximumÚminimumr?  ÚdropdownÚvalidateÚ
error_typeÚ
show_errorÚ
show_inputÚerror_titleÚinput_titleÚmulti_rangeÚother_cellsÚignore_blankÚerror_messageÚinput_messagez+Unknown parameter '%s' in data_validation()r?  rG  rZ  rI  rK  z5Parameter 'validate' is required in data_validation()ÚnoneÚwholeÚdecimalrŸ  r/  r0  Ú
textLengthÚcustom)Úanyz	any valuezwhole numberrW  ÚintegerrX  rŸ  r/  r0  ztext lengthr  rZ  zJUnknown validation type '%s' for parameter 'validate' in data_validation()rP  rU  Úbetweenr?  rH  z5Parameter 'criteria' is required in data_validation()únot betweenÚ
notBetweenúequal toÚequalr  ú==únot equal toÚnotEqualú!=ú<>úgreater thanÚgreaterThanú>ú	less thanÚlessThanú<úgreater than or equal toÚgreaterThanOrEqualú>=úless than or equal toÚlessThanOrEqualú<=zHUnknown criteria type '%s' for parameter 'criteria' in data_validation()zcParameter 'maximum' is required in data_validation() when using 'between' or 'not between' criteriar   r   r†  )ÚstopÚwarningÚinformationrL  zJUnknown criteria type '%s' for parameter 'error_type' in data_validation()©r/  r0  ú%.16gé    z6Length of input title '%s' exceeds Excel's limit of 32rO  z6Length of error title '%s' exceeds Excel's limit of 32éÿ   z9Length of input message '%s' exceeds Excel's limit of 255rT  z9Length of error message '%s' exceeds Excel's limit of 255zSLength of list items '%s' exceeds Excel's limit of 255, use a formula range insteadrS  rJ  rN  rM  ÚcellsrR  rQ  ú$rU   )r@  ÚcopyÚkeysr   rÇ  r   ry  rA  r3  rŸ  Ú	_csv_joinr8   r‘  ró   r¢  )r(   rf  rg  rh  ri  rÌ  Úvalid_parametersÚ	param_keyÚvalid_typesÚcriteria_typesÚerror_typesÚ	date_timerY  s                r.   Údata_validationzWorksheet.data_validation¨	  sù  € ð$ ×!Ñ! )¨Y¸¸dÔCØØ×!Ñ! (¨H°d¸DÔAØàˆ?Ø‰Gð —l‘l“nˆGò
Ðð* !Ÿ™›ò 	ˆIØÐ 0Ò0ÜÐBÀYÑNÔOÙð	ð �wÑØ& xÑ0ˆG�GÑØ˜ÑØ& yÑ1ˆG�GÑð ˜WÑ$ÜÐHÔIØð ØØ#ØØØ ØØØØ'Ø"Øñ
ˆð  �:Ñ kÑ1Üð2Ø4;¸JÑ4GñHôð à"-¨g°jÑ.AÑ"BˆG�JÑð
 �JÑ 6Ò)Ø—‘˜MÓ*Ð2Ø—‘˜OÓ,Ð4àð
 �JÑ 6Ò)Ø�zÑ" fÒ,Ø�zÑ" hÒ.à"+ˆG�JÑØ!%ˆG�IÑð ˜WÑ$ÜÐHÔIØð
Ø�yð
à˜<ð
ð ˜ð
ð �ð	
ð
 �'ð
ð ˜Jð
ð �*ð
ð �*ð
ð ˜Mð
ð �ð
ð ˜ð
ð �ð
ð 'Ð(<ð
ð Ð&ð
ð $Ð%6ð
ð  Ð#ð!
ˆð( �:Ñ nÑ4Üð2Ø4;¸JÑ4GñHôð à"0°¸Ñ1DÑ"EˆG�JÑð �:Ñ )Ò+¨w°zÑ/BÀlÒ/RØ Ñ'ÜðEôð à!%ˆG�IÑð ØØñ
ˆð ˜wÑ&Ø$%ˆG�LÒ!Ø�\Ñ"¨+Ñ5Üð'Ø)0°Ñ)>ñ?ôð à$/°¸Ñ0EÑ$FˆG�LÑ!ð �JÑÐ#3Ñ3Ø˜Ò Ü" 7¨7Ñ#3Ô4à×/Ñ/°¸Ñ0@ÓAˆIà&¨Ñ2ˆG�GÑà�yÒ!Ô&8¸ÀÑ9KÔ&LØ ×3Ñ3°G¸IÑ4FÓG�	Ø%,¨yÑ%8�˜	Ñ"ð �;‰;�}Ô%¬#¨g°mÑ.DÓ*EÈÒ*JÜØHØ˜-Ñ(ñ)ôð ð �;‰;�}Ô%¬#¨g°mÑ.DÓ*EÈÒ*JÜØHØ˜-Ñ(ñ)ôð ð �;‰;�Ô'¬C°¸Ñ0HÓ,IÈCÒ,OÜØKØ˜/Ñ*ñ+ôð ð �;‰;�Ô'¬C°¸Ñ0HÓ,IÈCÒ,OÜØKØ˜/Ñ*ñ+ôð ð �:Ñ &Ò(¬Z¸ÀÑ8HÌ$Ô-OØ$�d—n‘n g¨gÑ&6Ð7ˆGÜ�7‹|˜cÒ!Üð7Ø9@ñAôð ð  Ñ(Ø&'ˆG�NÑ#Ø˜WÑ$Ø"#ˆG�JÑØ˜wÑ&Ø$%ˆG�LÑ!Ø˜wÑ&Ø$%ˆG�LÑ!ð '¨	°8¸XÐFÐGˆ�Ñð ˜GÑ#Ø�GÑ×#Ñ# G¨MÑ$:Ô;ð ˜GÑ#Ø%,¨]Ñ%;×%CÑ%CÀCÈÓ%LˆG�MÑ"ð 	×Ñ×Ñ Ô(àr2   c                 óŒ  — | j                  ||dd«      ry| j                  ||dd«      ry|€i }n|j                  «       }h d£}|j                  «       D ]  }||vsŒt        d|z  «        y d|vrt        d«       yi d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d!“d"d"“d#d$“d%d&d'œ¥}|d   |vrt        d(|d   z  «       y|d   dk(  rd|d)<   ||d      |d<   i d*d*“d+d,“d-d.“d/d.“d0d.“d1d2“d3d2“d4d2“d5d6“d7d6“d8d9“d:d9“d;d<“d=d<“d>d?“d@d?“dAdB“dCdDdEdFdGdHdIdJdKdLdMdNdKdNdOœ¥}	dP|v r|dP   |	v r|	|dP      |dP<   |d   dQv r³d
|d<   dR|v r6t	        |dR   «      st        dS«       y| j                  |dR   «      }
dT|
z  |dR<   dU|v r6t	        |dU   «      st        dV«       y| j                  |dU   «      }
dT|
z  |dU<   dW|v r6t	        |dW   «      st        dX«       y| j                  |dW   «      }
dT|
z  |dW<   i dYdZ“d[d\“d]d^“d_d`“dadb“dcdd“dedf“dgdh“didj“dkdl“dmdn“dodp“dqdr“dsdt“dudv“dwdx“dydz“}|d   d&k(  r¬|j                  d{«      st        d|«       y}|d{   |vrt        d~|d{   z  «       y||d{      |d{<   d|d€<   |d{   j                  d�«      rd‚|d€<   n|d{   j                  dƒ«      rd„|d€<   | j                  |j                  d€«      |j                  d…«      «      |d…<   ||kD  r||}}||kD  r||}}t        ||||«      }t        ||«      }d†|v r|d†   }|j                  d‡dˆ«      }d‰|v r|d‰   r|d‰   j                  «       |d‰<   | j                  |dŠ<   | xj                  d‹z  c_        | j                  s»|j                  dŒ«      sª|j                  d�«      s™|j                  dŽ«      sˆ|j                  d�«      sw|j                  d�«      sf|j                  d‘«      sU|j                  d’«      sD|j                  d“«      s3|j                  d”«      s"|j                  d•«      s|j                  d–«      rd|d—<   |d   dk(  r›|dP   dBk(  rdB|d<   d˜|dR   ›d™|›dš�|d›<   n~|dP   dCk(  rdœ|d<   d�|dR   ›d™|›dž�|d›<   na|dP   dDk(  r dD|d<   dŸ|t        |dR   «      |dR   fz  |d›<   n9|dP   dEk(  r dE|d<   d |t        |dR   «      |dR   fz  |d›<   nt        d¡|dP   z  «       |d   dk(  rà|dP   dFk(  r	d¢|z  |d›<   nÏ|dP   dGk(  r	d£|z  |d›<   n¾|dP   d¤k(  r	d¥|z  |d›<   n­|dP   dHk(  rd¦|›d§|›d¨�|d›<   n˜|dP   dIk(  rd©|›dª|›d«�|d›<   nƒ|dP   dJk(  rd©|›d¬|›d­�|d›<   nn|dP   dKk(  rd®|›d¯|›d°�|d›<   nY|dP   dLk(  rd±|›d²|›d³|›d´�|d›<   nA|dP   dMk(  rd±|›dµ|›d¶�|d›<   n,|dP   dNk(  rd±|›d·|›d³|›d¸|›d¹�	|d›<   nt        dº|dP   z  «       |d   dk(  rd»|z  |d›<   |d   dk(  rd¼|z  |d›<   |d   dk(  rd½|z  |d›<   |d   d k(  rd¾|z  |d›<   |d   d!k(  r¢d¿|d<   d|d‰<   d|dÀ<   d|dÁ<   |j!                  dÂdÃ«       |j!                  dÄdÅ«       |j!                  dÆdÇ«       |j!                  dÈdÇ«       |j!                  dÉdÊ«       |j!                  dËdÌ«       t#        |dÉ   «      |dÉ<   t#        |dË   «      |dË<   |d   d"k(  rÖd¿|d<   d|d‰<   |j!                  dÂdÃ«       |j!                  dÀdÍ«       |j!                  dÄdÅ«       |j!                  dÆdÇ«       |j!                  dÈdÇ«       |j!                  dÉdÎ«       |j!                  dÁdÏ«       |j!                  dËdÐ«       t#        |dÉ   «      |dÉ<   t#        |dÁ   «      |dÁ<   t#        |dË   «      |dË<   dÑ|vrdÒ|dÑ<   |d   d$k(  �r¡d|d‰<   |j                  dÂ«      sdÃ|dÂ<   dÓ|dÔ<   n|dÂ   |dÔ<   |j                  dÄ«      sdÅ|dÄ<   dÕ|dÖ<   n|dÄ   |dÖ<   |j!                  dÆdÇ«       |j!                  dÈdÇ«       |j!                  d×dØ«       |j!                  dŽ|d×   «       |j!                  dÙdÚ«       |j!                  d“dÚ«       |j!                  d�dÚ«       |j!                  d–dˆ«       |j!                  d�dÛ«       |j!                  d‘dÛ«       |j!                  d�dÚ«       |j!                  d’dÚ«       |j!                  d”dˆ«       |j!                  d•dÜ«       t#        |d×   «      |d×<   t#        |dŽ   «      |dŽ<   t#        |d•   «      |d•<   t#        |d�   «      |d�<   t#        |d‘   «      |d‘<   |j                  d—«      r6dÝ| _        |dÂ   dÃk(  r|dÆ   dÇk(  rd|dÆ<   |dÄ   dÅk(  r|dÈ   dÇk(  rd|dÈ<   ||dÞ<   	 |dÆ   j'                  d/«      |dÆ<   	 |dÑ   j'                  d/«      |dÑ<   	 |dÈ   j'                  d/«      |dÈ<   || j,                  v r| j,                  |   j/                  |«       yÇ|g| j,                  |<   yÇ# t(        t*        f$ r Y Œw xY w# t(        t*        f$ r Y Œ|w xY w# t(        t*        f$ r Y Œyw xY w)ßa#  
        Add a conditional format to a worksheet.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            options:      Conditional format options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: Incorrect parameter or option.
        Tr>  N>$   r4  ÚiconsrZ  rJ   rH  rI  Úbar_onlyr?  Úmax_typeÚmid_typeÚmin_typeÚ	bar_colorÚ	bar_solidÚ	max_colorÚ	max_valueÚ	mid_colorÚ	mid_valueÚ	min_colorÚ	min_valueÚ
icon_styleÚ
icons_onlyÚ
max_lengthÚ
min_lengthrQ  Ústop_if_trueÚbar_directionÚbar_no_borderÚdata_bar_2010Úreverse_iconsÚbar_axis_colorÚbar_border_colorÚbar_axis_positionÚbar_negative_colorÚbar_negative_color_sameÚbar_negative_border_colorÚbar_negative_border_color_samez.Unknown parameter '%s' in conditional_format()r?  r4  z4Parameter 'type' is required in conditional_format()r  ÚcellIsr/  r0  ÚaverageÚaboveAverageÚ	duplicateÚduplicateValuesÚuniqueÚuniqueValuesÚtopÚtop10ÚbottomrÚ  Útime_periodÚ
timePeriodÚblanksÚcontainsBlanksÚ	no_blanksÚnotContainsBlanksÚerrorsÚcontainsErrorsÚ	no_errorsÚnotContainsErrorsÚ2_color_scaleÚ3_color_scaleÚdata_barÚdataBarÚ
expressionÚiconSet)rY  Úicon_setz?Unknown value '%s' for parameter 'type' in conditional_format()Ú	directionr]  r^  r_  r`  ra  r  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  Ú
containingÚcontainsTextÚnotContainsÚ
beginsWithÚendsWithÚ	yesterdayÚtodayÚ	last7DaysÚlastWeekÚthisWeekÚnextWeekÚ	lastMonthÚ	thisMonthÚ	nextMonth)znot containingzbegins withz	ends withrÅ  rÆ  zlast 7 daysz	last weekz	this weekz	next weekz
last monthz
this monthz
next monthzcontinue weekzcontinue monthr?  rv  rZ  z5Conditional format 'value' must be a datetime object.rw  rI  z7Conditional format 'minimum' must be a datetime object.rH  z7Conditional format 'maximum' must be a datetime object.Ú3_arrowsÚ3ArrowsÚ3_flagsÚ3FlagsÚ3_traffic_lights_rimmedÚ3TrafficLights2Ú3_symbols_circledÚ3SymbolsÚ4_arrowsÚ4ArrowsÚ4_red_to_blackÚ4RedToBlackÚ4_traffic_lightsÚ4TrafficLightsÚ5_arrows_grayÚ5ArrowsGrayÚ
5_quartersÚ	5QuartersÚ3_arrows_grayÚ3ArrowsGrayÚ3_traffic_lightsÚ3TrafficLightsÚ3_signsÚ3SignsÚ	3_symbolsÚ	3Symbols2Ú4_arrows_grayÚ4ArrowsGrayÚ	4_ratingsÚ4RatingÚ5_arrowsÚ5ArrowsÚ	5_ratingsÚ5Ratingr”  z^The 'icon_style' parameter must be specified when 'type' == 'icon_set' in conditional_format()rŽ  z/Unknown icon_style '%s' in conditional_format()rV   Útotal_iconsÚ4r;  Ú5r  r‡  rQ  r{  rU   rJ   Úpriorityr   r›  r�  rž  r   r¡  r¢  r£  rš  rŸ  r�  r™  Úis_data_bar_2010zNOT(ISERROR(SEARCH("z",z)))rY  ÚnotContainsTextzISERROR(SEARCH("z))zLEFT(%s,%d)="%s"zRIGHT(%s,%d)="%s"z2Invalid text criteria '%s' in conditional_format()zFLOOR(%s,1)=TODAY()-1zFLOOR(%s,1)=TODAY()ÚtomorrowzFLOOR(%s,1)=TODAY()+1zAND(TODAY()-FLOOR(z,1)<=6,FLOOR(z,1)<=TODAY())zAND(TODAY()-ROUNDDOWN(z*,0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(z,0)<(WEEKDAY(TODAY())+7))z",0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(z ,0)-TODAY()<=7-WEEKDAY(TODAY()))zAND(ROUNDDOWN(z+,0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(z",0)-TODAY()<(15-WEEKDAY(TODAY())))z
AND(MONTH(z)=MONTH(TODAY())-1,OR(YEAR(z)=YEAR(TODAY()),AND(MONTH(z)=1,YEAR(A1)=YEAR(TODAY())-1)))z)=MONTH(TODAY()),YEAR(z)=YEAR(TODAY()))z)=MONTH(TODAY())+1,OR(YEAR(z
)=12,YEAR(z)=YEAR(TODAY())+1)))z9Invalid time_period criteria '%s' in conditional_format()zLEN(TRIM(%s))=0zLEN(TRIM(%s))>0zISERROR(%s)zNOT(ISERROR(%s))Ú
colorScalerŠ  r�  r‹  Úminr‰  Úmaxr“  r   r�  r’  z#FF7128rŽ  z#FFEF9CÚ
percentilez#F8696Bz#FFEB84z#63BE7Br‘  é2   ÚautoMinÚx14_min_typeÚautoMaxÚx14_max_typerŒ  z#638EC6rˆ  Fz#FF0000z#000000éÚ  rs  )r@  r|  r}  r   r   ry  rÇ  r  Ú_set_icon_propsr   r   r‘  Ú_get_dxf_indexr÷   rö   rA  Ú
setdefaultr   rl   ÚlstripÚKeyErrorÚAttributeErrorrô   r¢  )r(   rf  rg  rh  ri  rÌ  Úvalid_parameterr€  Ú
valid_typeÚcriteria_typer„  Úvalid_iconsru  Ú
start_cells                 r.   Úconditional_formatzWorksheet.conditional_format«
  sÊ  € ð( ×!Ñ! )¨Y¸¸dÔCØØ×!Ñ! (¨H°d¸DÔAØàˆ?Ø‰Gð —l‘l“nˆGò%
ˆðP !Ÿ™›ò 	ˆIØ Ò/ÜÐEÈ	ÑQÔRÙð	ð ˜Ñ ÜÐGÔHØð
Ø�Hð
à�Fð
ð �Fð
ð �~ð	
ð
 Ð*ð
ð �nð
ð �7ð
ð �gð
ð �Fð
ð ˜<ð
ð Ð&ð
ð Ð,ð
ð Ð&ð
ð Ð,ð
ð ˜_ð
ð  ˜_ð!
ð" ˜	ð#
ð$ $Ø!ò'
ˆ
ð. �6‰? *Ñ,Üð*Ø,3°F©Oñ<ôð à�v‰ (Ò*Ø'/�˜Ñ$Ø(¨°©Ñ9ˆG�F‰Oð!
Ø�yð!
à˜<ð!
ð ˜ð!
ð �ð	!
ð
 �'ð!
ð ˜Jð!
ð �*ð!
ð �*ð!
ð ˜Mð!
ð �ð!
ð ˜ð!
ð �ð!
ð 'Ð(<ð!
ð Ð&ð!
ð $Ð%6ð!
ð  Ð#ð!!
ð" ˜.ð#!
ð$ ,Ø'Ø#Ø$ØØ&Ø#Ø#Ø#Ø%Ø%Ø%à'Ø)òA!
ˆðH ˜Ñ  W¨ZÑ%8¸MÑ%IØ"/°¸
Ñ0CÑ"DˆG�JÑð �6‰?Ð.Ñ.Ø&ˆG�F‰Oà˜'Ñ!Ü)¨'°'Ñ*:Ô;ÜÐPÔQØà $× 7Ñ 7¸ÀÑ8HÓ I�Ià'.°Ñ':�G˜GÑ$à˜GÑ#Ü)¨'°)Ñ*<Ô=ÜÐRÔSØà $× 7Ñ 7¸À	Ñ8JÓ K�IØ)0°9Ñ)<�G˜IÑ&à˜GÑ#Ü)¨'°)Ñ*<Ô=ÜÐRÔSØà $× 7Ñ 7¸À	Ñ8JÓ K�IØ)0°9Ñ)<�G˜IÑ&ð
Ø˜	ð
à�xð
ð &Ð'8ð
ð   ð	
ð
 ˜	ð
ð ˜mð
ð Ð 0ð
ð ˜]ð
ð ˜+ð
ð ˜]ð
ð Ð 0ð
ð �xð
ð ˜ð
ð ˜]ð
ð ˜ð
ð  ˜	ð!
ð" ˜ð#
ˆð* �6‰?˜iÒ'à—;‘;˜|Ô,ÜðCôð ð �|Ñ$¨KÑ7ÜØEØ˜lÑ+ñ,ôð à(3°G¸LÑ4IÑ(J�˜Ñ%ð &'ˆG�MÑ"Ø�|Ñ$×/Ñ/°Ô4Ø)*�˜Ò&Ø˜Ñ&×1Ñ1°#Ô6Ø)*�˜Ñ&à#×3Ñ3Ø—‘˜MÓ*¨G¯K©K¸Ó,@ó ˆG�GÑð
 �xÒØ"*¨I�xˆIà�xÒØ"*¨I�xˆIô ˜i¨°H¸hÓGˆ
Ü& y°)Ó<ˆ
ð ˜GÑ#Ø  Ñ/ˆJØ#×+Ñ+¨C°Ó4ˆJð �wÑ 7¨8Ò#4Ø '¨Ñ 1× @Ñ @Ó BˆG�HÑð #×/Ñ/ˆ�
ÑØ×Ò˜QÑÕð ×#Ò#Ø�{‰{˜?Ô+Ø�{‰{˜;Ô'Ø�{‰{Ð-Ô.Ø�{‰{Ð/Ô0Ø�{‰{Ð4Ô5Ø�{‰{Ð6Ô7Ø�{‰{Ð;Ô<Ø�{‰{˜?Ô+Ø�{‰{Ð.Ô/Ø�{‰{Ð+Ô,Ø�{‰{˜?Ô+à*.ˆGÐ&Ñ'ð �6‰?˜fÒ$Ø�zÑ" nÒ4Ø"0�˜’à˜GÓ$Úð&�˜	Ò"ð ˜Ñ$¨Ò5Ø"3�˜’à˜GÓ$Úð&�˜	Ò"ð ˜Ñ$¨Ò4Ø".�˜‘Ø%7ØÜ˜ Ñ(Ó)Ø˜GÑ$ð;ñ &�˜	Ò"ð
 ˜Ñ$¨
Ò2Ø",�˜‘Ø%8ØÜ˜ Ñ(Ó)Ø˜GÑ$ð<ñ &�˜	Ò"ô ð.Ø07¸
Ñ0CñDôð �6‰?˜lÒ*Ø�zÑ" kÒ1Ø%<¸zÑ%I�˜	Ò"à˜Ñ$¨Ò/Ø%:¸ZÑ%G�˜	Ò"à˜Ñ$¨
Ò2Ø%<¸zÑ%I�˜	Ò"ð ˜Ñ$¨Ó3ò "¢:ð/ð ˜	Ò"ð ˜Ñ$¨
Ó2ò "¢:ð/ð ˜	Ò"ð ˜Ñ$¨
Ó2ò "¢:ð/ð ˜	Ò"ð ˜Ñ$¨
Ó2ò "¢:ð/ð ˜	Ò"ð ˜Ñ$¨Ó3ò "¢:ªzð;ð ˜	Ò"ð ˜Ñ$¨Ó3ò "¢:ð/ð ˜	Ò"ð ˜Ñ$¨Ó3ò "¢:ªzº:ðGð ˜	Ò"ô ð.Ø07¸
Ñ0CñDôð �6‰?Ð.Ò.Ø!2°ZÑ!?ˆG�IÑà�6‰?Ð1Ò1Ø!2°ZÑ!?ˆG�IÑà�6‰?Ð.Ò.Ø!.°Ñ!;ˆG�IÑà�6‰?Ð1Ò1Ø!3°jÑ!@ˆG�IÑð �6‰?˜oÒ-Ø*ˆG�F‰Oð !%ˆG�HÑð #'ˆG�JÑØ#'ˆG�KÑ à×Ñ˜z¨5Ô1Ø×Ñ˜z¨5Ô1Ø×Ñ˜{¨AÔ.Ø×Ñ˜{¨AÔ.Ø×Ñ˜{¨IÔ6Ø×Ñ˜{¨IÔ6ä#+¨G°KÑ,@Ó#AˆG�KÑ Ü#+¨G°KÑ,@Ó#AˆG�KÑ ð �6‰?˜oÒ-Ø*ˆG�F‰Oð !%ˆG�HÑà×Ñ˜z¨5Ô1Ø×Ñ˜z¨<Ô8Ø×Ñ˜z¨5Ô1Ø×Ñ˜{¨AÔ.Ø×Ñ˜{¨AÔ.Ø×Ñ˜{¨IÔ6Ø×Ñ˜{¨IÔ6Ø×Ñ˜{¨IÔ6ä#+¨G°KÑ,@Ó#AˆG�KÑ Ü#+¨G°KÑ,@Ó#AˆG�KÑ Ü#+¨G°KÑ,@Ó#AˆG�KÑ ð  'Ñ)Ø')�˜Ñ$ð �6‰?˜iÓ'à $ˆG�HÑà—;‘;˜zÔ*Ø&+�˜
Ñ#Ø*3�˜Ò'à*1°*Ñ*=�˜Ñ'à—;‘;˜zÔ*Ø&+�˜
Ñ#Ø*3�˜Ò'à*1°*Ñ*=�˜Ñ'à×Ñ˜{¨AÔ.Ø×Ñ˜{¨AÔ.Ø×Ñ˜{¨IÔ6Ø×ÑÐ1°7¸;Ñ3GÔHØ×Ñ˜z¨5Ô1Ø×Ñ˜°Ô6Ø×Ñ˜{¨EÔ2Ø×Ñ˜°Ô3Ø×ÑÐ3°YÔ?Ø×ÑÐ:¸IÔFØ×ÑÐ8¸%Ô@Ø×ÑÐ?ÀÔGØ×ÑÐ2°BÔ7Ø×ÑÐ/°Ô;ä#+¨G°KÑ,@Ó#AˆG�KÑ Ü*2°7Ð;MÑ3NÓ*OˆGÐ&Ñ'Ü(0°Ð9IÑ1JÓ(KˆGÐ$Ñ%Ü,4°WÐ=QÑ5RÓ,SˆGÐ(Ñ)Ü3;ØÐ3Ñ4ó4ˆGÐ/Ñ0ð
 �;‰;Ð)Ô*Ø!%ˆDÔà�zÑ" eÒ+°¸Ñ0DÈÒ0IØ'+�˜Ñ$à�zÑ" eÒ+°¸Ñ0DÈÒ0IØ'+�˜Ñ$à)ˆG�GÑð	Ø#*¨;Ñ#7×#>Ñ#>¸sÓ#CˆG�KÑ ð	Ø#*¨;Ñ#7×#>Ñ#>¸sÓ#CˆG�KÑ ð	Ø#*¨;Ñ#7×#>Ñ#>¸sÓ#CˆG�KÑ ð
 ˜×*Ñ*Ñ*Ø×Ñ˜jÑ)×0Ñ0°Ô9ð ð .5¨IˆD×Ñ˜jÑ)àøô# œ.Ð)ò 	Ùð	ûô œ.Ð)ò 	Ùð	ûô œ.Ð)ò 	Ùð	ús6   æh æh æ2h1 èhèhèh.è-h.è1iéic                 ó¤  — i }i }|€i }n|j                  «       }| j                  rt        d«       y| j                  ||dd«      ry| j                  ||dd«      ry||kD  r||}}||kD  r||}}t	        ||||«      }t        ||dz   «      D ]¿  }	t        ||dz   «      D ]«  }
| j                  j                  |	|
f«      r/| j                  j                  |	|
f«      }t        d|›d|›d	�«      ‚| j                  j                  |	|
f«      r/| j                  j                  |	|
f«      }t        d|›d
|›d	�«      ‚|| j                  |	|
f<   Œ­ ŒÁ h d£}|j                  «       D ]  }||vsŒt        d|z  «        y |j                  dd«      |d<   |j                  dd«      |d<   |j                  dd«      |d<   ||z
  }|d   r|dz  }|dk  rt        d«       y|j                  dd«      |d<   |j                  dd«      |d<   |j                  dd«      |d<   |j                  dd«      |d<   |j                  dd«      |d<   |j                  dd«      |d<   d|v rÇ|d   }||d<   d|v rt        d |z  «       yt        j                  d!|t        j                  «      rt        j                  d"|«      rt        d#|z  «       yt        j                  d$|«      rt        d%|z  «       yt        j                  d&|«      st        j                  d'|«      rt        d(|z  «       yd)|v r+|d)   |d)<   |d)   €d*|d)<   |d)   j                  dd*«      |d)<   nd+|d)<   |}|}|j                  d«      r|dz  }|j                  d«      r|dz  }t	        ||||«      |d,<   t	        ||||«      |d-<   |d   sd|d<   |d   r|d-   |d<   d}g |d.<   i }t        ||dz   «      D �],  }|d/t        |«      z   d*d*d*dd*ddd0œ	}d.|v �rÔ|t!        |d.   «      k  r|d.   |dz
     }nd}|�r²|j                  d1d«      }|j                  d2«      r|d2   |d<   |d   }|j#                  «       }||v rt        d3|z  «        yd||<   |j                  d4«      |d5<   d6|v rU|d6   rP|d6   }|j%                  d7«      r|j'                  d7«      }|j                  d8d9«      }| j)                  |d«      }||d6<   |j                  d:«      r€|d:   }|d;k(  rd<}|d=k(  rd>}t+        g d?¢«      }||v r| j-                  ||d   «      }n| j)                  |d«      }||d@<   dA}||d:<   |j                  dBd«      }| j/                  |||||«       n>|j                  dC«      r-|dC   }||dC<   | j1                  ||||j                  d1«      «       |�|j3                  «       |d1<   |||dz
  <   |d.   j5                  |«       |d   r| j1                  |||d   |d5   «       |dz  }�Œ/ dD|v r’|dD   }d}t        ||dz   «      D ]y  }	d} t        ||dz   «      D ]^  }
|t!        |«      k  rI| t!        ||   «      k  r8||   |    }!| |v r| j7                  |	|
|!||    «       n| j7                  |	|
|!d«       | dz  } Œ` |dz  }Œ{ t9        t        ||dz   «      «      D ]T  \  }}|d.   |   }"|"sŒ|"d6   sŒ|j                  |«      }#|"d6   }t        ||dz   «      D ]  }	| j/                  |	|||#«       Œ ŒV | j:                  j5                  |«       |d   r%t        ||dz   «      D ]  }
d| j<                  ||
f<   Œ y)EaY  
        Add an Excel table to a worksheet.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.
            options:      Table format options. (Optional)

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: Incorrect parameter or option.
            -3: Not supported in constant_memory mode.
        Nz5add_table() isn't supported in 'constant_memory' moderŽ  Tr>  r   zTable range 'r0  r/  r.  >   r·  rc   ÚstyleÚcolumnsÚ	total_rowr7  Ú
header_rowÚbanded_rowsÚlast_columnÚfirst_columnÚbanded_columnsz%Unknown parameter '%s' in add_table()r?  r  r  r7  r   z1Must have at least one data row in in add_table()r  FÚshow_first_colr  Úshow_last_colÚshow_row_stripesr  Úshow_col_stripesÚheader_row_countr  Útotals_row_shownrc   ú z.Name '%s' in add_table() cannot contain spacesz^[\w\\][\w\\.]*$z^\dz-Invalid Excel characters in add_table(): '%s'z^[a-zA-Z][a-zA-Z]?[a-dA-D]?\d+$z0Name looks like a cell name in add_table(): '%s'z^[rcRC]$z^[rcRC]\d+[rcRC]\d+$z3Invalid name '%s' like a RC cell ref in add_table()r  rU   ÚTableStyleMedium9rs  Úa_ranger  ÚColumn)	Úidrc   Útotal_stringÚtotal_functionÚcustom_totalÚtotal_valuerY  rJ   Úname_formatrJ   r‰   z*Duplicate header name in add_table(): '%s'Úheader_formatr%  rY  r  ú@z[#This Row],r"  Ú
count_numsÚ	countNumsÚstd_devÚstdDev©r¥  r)  Úcountrù  rø  r+  ÚsumÚvarr#  rZ  r$  r!  r·  )r|  rg   r   r@  r   rs  rÂ   rÇ  r"   rÁ   r}  r  r  ÚUNICODEr‘  r-  rA  Úlowerr  r  rb  ÚsetÚ_table_function_to_formular  r  r  r¢  r&  Ú	enumerateræ   rÔ   )$r(   rf  rg  rh  ri  rÌ  r¿   Úcol_formatsru  r!  rC   r1  r  r€  Únum_rowsrc   Úfirst_data_rowÚlast_data_rowÚcol_idÚ
seen_namesr  Úcol_dataÚ	user_dataÚxformatÚheader_namerY  ÚfunctionÚ	subtotalsrZ  r!  r·  ÚiÚjr   Úcolumn_dataÚformula_formats$                                       r.   Ú	add_tablezWorksheet.add_table¬  sÕ  € ð$ ˆØˆàˆ?Ø‰Gð —l‘l“nˆGà×ÒÜÐHÔIØð ×!Ñ! )¨Y¸¸dÔCØØ×!Ñ! (¨H°d¸DÔAØð �xÒØ%-¨y˜ˆYØ�xÒØ%-¨y˜ˆYô ˜i¨°H¸hÓGˆ
Ü˜ H¨q¡LÓ1ò 	>ˆCÜ˜Y¨°1©Ó5ò >�Ø×#Ñ#×'Ñ'¨¨c¨
Ô3Ø%)×%5Ñ%5×%9Ñ%9¸3À¸*Ó%E�NÝ*â%¢~ð7óð ð ×&Ñ&×*Ñ*¨C°¨:Ô6Ø%)×%6Ñ%6×%:Ñ%:¸CÀ¸:Ó%F�NÝ*â%¢~ð7óð ð
 4>�D×$Ñ$ c¨3 ZÒ0ñ>ð	>ò$
ˆð !Ÿ™›ò 	ˆIØ Ò/ÜÐ<¸yÑHÔIÙð	ð ")§¡¨]¸DÓ!Aˆ�ÑØ '§¡¨L¸$Ó ?ˆ�ÑØ '§¡¨L¸$Ó ?ˆ�Ñð ˜iÑ'ˆØ�<Ò Ø˜‰MˆHà�aŠ<ÜÐDÔEØð #*§+¡+¨n¸eÓ"DˆÐÑØ!(§¡¨]¸EÓ!BˆˆoÑØ$+§K¡K°¸uÓ$EˆÐ Ñ!Ø$+§K¡KÐ0@À%Ó$HˆÐ Ñ!Ø$+§K¡K°¸aÓ$@ˆÐ Ñ!Ø$+§K¡K°¸UÓ$CˆÐ Ñ!ð �WÑØ˜6‘?ˆDØ ˆE�&‰Mà�d‰{ÜÐEÈÑLÔMØô —8‘8Ð/°´r·z±zÔBÄbÇhÁhØ˜ôGô ÐDÀtÑKÔLØô �x‰xÐ:¸DÔAÜÐGÈ$ÑNÔOØô �x‰x˜ TÔ*¬b¯h©hÐ7NÐPTÔ.UÜÐJÈTÑQÔRØð �gÑØ$ WÑ-ˆE�'‰Nà�W‰~Ð%Ø!#��g‘ð # 7™^×3Ñ3°C¸Ó<ˆE�'ŠNà0ˆE�'‰Nð #ˆØ ˆà�;‰;�|Ô$Ø˜aÑˆNà�;‰;�{Ô#Ø˜QÑˆMô " )¨Y¸À(ÓKˆˆg‰ä# I¨y¸-ÈÓRˆˆiÑð �|Ò$Ø$%ˆG�LÑ!ð �<Ò Ø"'¨	Ñ"2ˆE�,Ñð ˆØˆˆiÑØˆ
ä˜Y¨°1©Ó5ó x	ˆGð Ø ¤3 v£;Ñ.Ø "Ø"$Ø "Ø ØØØ#ñ
ˆHð ˜GÒ#àœS ¨Ñ!3Ó4Ò4Ø '¨	Ñ 2°6¸A±:Ñ >‘Ià $�Iâà'Ÿm™m¨H°dÓ;�Gð !—}‘} XÔ.Ø+4°XÑ+>˜ Ñ(ð #+¨6Ñ"2�KØ&×,Ñ,Ó.�DØ˜zÑ)ÜÐIÈDÑPÔQÙ!à+/˜
 4Ñ(à.7¯m©m¸OÓ.L�H˜]Ñ+ð ! IÑ-°)¸IÒ2FØ"+¨IÑ"6˜ð #×-Ñ-¨cÔ2Ø&-§n¡n°SÓ&9˜Gð #*§/¡/°#°~Ó"F˜ð #'×"7Ñ"7¸ÀÓ"F˜à.5˜ Ñ+ð !—}‘}Ð%5Ô6Ø#,Ð-=Ñ#>˜Ø# |Ò3Ø'2˜HØ# yÒ0Ø'/˜Hä$'ò	ó%˜	ð $ yÑ0Ø&*×&EÑ&EØ (¨(°6Ñ*:ó'™Gð '+×&;Ñ&;¸HÀdÓ&K˜GØ7>˜H ^Ñ4Ø'/˜Hà5=˜Ð!1Ñ2à )§¡¨m¸QÓ ?˜à×+Ñ+¨H°g¸wÈÐQVÕWà"Ÿ™ ~Ô6à'0°Ñ'@˜Ø3?˜ Ñ0à×*Ñ*Ø$ g¨|¸Y¿]¹]È8Ó=Tôð
 Ð*Ø-4×-CÑ-CÓ-E˜ Ñ*ð /6�K ¨¡
Ñ+ð �)Ñ×#Ñ# HÔ-ð �|Ò$Ø×"Ñ"Ø˜w¨°Ñ(8¸(À=Ñ:Qôð �a‰KŠFðqx	ðv �WÑØ˜6‘?ˆDàˆAÜ˜^¨]¸QÑ->Ó?ò 
�Ø�Ü  ¨H°q©LÓ9ò �CØœ3˜t›9’}¨¬S°°a±«\Ò)9Ø $ Q¡¨¡
˜Ø Ñ+Ø ŸK™K¨¨S°%¸ÀQ¹ÕHà ŸK™K¨¨S°%¸Ô>Ø˜‘F‘Aðð �Q‘‘ð
ô  )¬¨y¸(ÀQ¹,Ó)GÓHò 	O‰OˆF�GØ 	Ñ*¨6Ñ2ˆKÚ˜{¨9Ó5Ø!,§¡°Ó!8�Ø% iÑ0�ä  °ÀÑ1BÓCò O�CØ×'Ñ'¨¨W°g¸~ÕNñOð	Oð 	�‰×Ñ˜5Ô!ð �<Ò Ü˜Y¨°1©Ó5ò ;�Ø6:�×!Ñ! 9¨cÐ"2Ò3ð;ð r2   c                 óâ  — | j                  ||dd«      rydt        ||«      gi}|€i }h d£}|j                  «       D ]  }||vsŒt        d|z  «        y d|vrt        d«       y|j	                  d	d
«      }|dvrt        d«       y|dk(  rd}||d	<   d|v r%t        |d   t        «      r	|d   |d<   n	|d   g|d<   t        |d   t        «      r	|d   |d<   n	|d   g|d<   t        |d   «      }t        |d   «      }	||	k7  rt        d«       yt        |d   «      |d<   t        | j                  «      }
g }|d   D ]B  }|j                  dd«      }|j                  d«      }d|vr|
dz   |z   }|j                  |«       ŒD ||d<   g }|d   D ]%  }|j                  dd«      }|j                  |«       Œ' ||d<   |j	                  d«      |d<   |j	                  d«      |d<   |j	                  d«      |d<   |j	                  d«      |d<   |j	                  d«      |d <   |j	                  d!«      |d!<   |j	                  d"«      |d"<   |j	                  d#«      |d#<   |j	                  d$«      |d$<   |j	                  d%«      |d%<   |j	                  d&«      |d'<   |j	                  d(«      |d(<   |j	                  d)d«      }|d*k(  rd+|d,<   n|d-k(  rd.|d,<   nd/|d,<   |j	                  d0«      }|rd|vr|
dz   |z   }||d0<   |j	                  d1d+«      }t        |«      }|d2   |d3<   |d   |d4<   |d!   |d5<   |d   |d6<   |d    |d7<   |d   |d8<   |d   |d9<   | j                  ||d3«       | j                  ||d4«       | j                  ||d5«       | j                  ||d6«       | j                  ||d7«       | j                  ||d8«       | j                  ||d9«       | j                  j                  |«       y+):ap  
        Add sparklines to the worksheet.

        Args:
            row:     The cell row (zero indexed).
            col:     The cell column (zero indexed).
            options: Sparkline formatting options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.
            -2: Incorrect parameter or option.

        Tr>  Ú	locations>   rù  rø  Úaxisr4  rs  r  ÚweightÚmarkersÚreverseÚlocationÚ	date_axisÚ	low_colorÚ	low_pointÚ
high_colorÚ
high_pointÚ
last_colorÚ
last_pointÚempty_cellsÚfirst_colorÚfirst_pointÚplot_hiddenÚshow_hiddenÚseries_colorÚmarkers_colorÚnegative_colorÚnegative_pointsz)Unknown parameter '%s' in add_sparkline()rs  z0Parameter 'range' is required in add_sparkline()r?  r4  Úline)r]  ÚcolumnÚwin_losszJParameter 'type' must be 'line', 'column' or 'win_loss' in add_sparkline()r_  ÚstackedrL  ÚrangeszMMust have the same number of location and range parameters in add_sparkline()r-  r{  rU   r  ú!rQ  ÚhighrO  Úlowr\  ÚnegativerV  ÚfirstrS  ÚlastrJ  rø  rù  rH  rK  rX  rw   rI  rT  Úzeror   ÚemptyÚconnectÚspanÚgaprM  r  ÚseriesrY  r[  rZ  rU  rR  rP  rN  )r@  r   r}  r   rÇ  r3  rŸ  rA  r    rc   r‘  r  r¢  r   Ú_set_spark_colorrç   )r(   r!  rC   rÌ  Ú	sparkliner  r€  Ú
spark_typeÚrange_countÚlocation_countÚ	sheetnameÚ
new_rangesÚspark_rangeÚnew_locationsrL  ri  Ú
date_rangeÚstyle_idr  s                      r.   Úadd_sparklinezWorksheet.add_sparklineø  s¾  € ð$ ×!Ñ! # s¨D°$Ô7Øà Ô#4°S¸#Ó#>Ð"?Ð@ˆ	àˆ?ØˆGò
Ðð< !Ÿ™›ò 	ˆIØÐ 0Ò0ÜÐ@À9ÑLÔMÙð	ð ˜'Ñ!ÜÐCÔDØð —[‘[ ¨Ó0ˆ
àÐ;Ñ;Üð3ôð à˜Ò#Ø"ˆJØ&ˆ	�&Ñð ˜Ñ Ü˜' *Ñ-¬tÔ4Ø)0°Ñ)<�	˜+Ò&à*1°*Ñ*=Ð)>�	˜+Ñ&ä�g˜gÑ&¬Ô-Ø")¨'Ñ"2ˆI�hÒà#*¨7Ñ#3Ð"4ˆI�hÑä˜) HÑ-Ó.ˆÜ˜Y {Ñ3Ó4ˆð ˜.Ò(Üð0ôð ô ! ¨;Ñ!7Ó8ˆ	�'Ñô $ D§I¡IÓ.ˆ	ð ˆ
Ø$ XÑ.ò 	+ˆKà%×-Ñ-¨c°2Ó6ˆKð &×,Ñ,¨SÓ1ˆKð ˜+Ñ%Ø'¨#™o°Ñ;�à×Ñ˜kÕ*ð	+ð )ˆ	�(Ñð ˆØ! +Ñ.ò 	+ˆHØ×'Ñ'¨¨RÓ0ˆHØ× Ñ  Õ*ð	+ð "/ˆ	�+Ñð $ŸK™K¨Ó5ˆ	�&ÑØ"Ÿ;™; {Ó3ˆ	�%ÑØ '§¡Ð,=Ó >ˆ	�*ÑØ$Ÿ[™[¨Ó7ˆ	�'ÑØ#ŸK™K¨Ó5ˆ	�&ÑØ&Ÿ{™{¨9Ó5ˆ	�)ÑØ"Ÿ;™; uÓ-ˆ	�%ÑØ"Ÿ;™; uÓ-ˆ	�%ÑØ#ŸK™K¨Ó/ˆ	�&ÑØ&Ÿ{™{¨9Ó5ˆ	�)ÑØ%Ÿk™k¨-Ó8ˆ	�(ÑØ%Ÿk™k¨(Ó3ˆ	�(Ñð —‘˜M¨2Ó.ˆà�FŠ?Ø!"ˆI�gÒØ�iÒØ!'ˆI�gÒà!&ˆI�gÑð —[‘[ Ó-ˆ
á˜# ZÑ/Ø" S™¨:Ñ5ˆJà!+ˆ	�+Ñð —;‘;˜w¨Ó*ˆÜ# HÓ-ˆà$)¨(¡Oˆ	�.Ñ!Ø&+¨JÑ&7ˆ	Ð"Ñ#Ø%*¨9Ñ%5ˆ	�/Ñ"Ø#(¨¡>ˆ	�-Ñ Ø"'¨¡-ˆ	�,ÑØ"'¨¡-ˆ	�,ÑØ!& u¡ˆ	�+Ñð 	×Ñ˜i¨°.ÔAØ×Ñ˜i¨Ð2BÔCØ×Ñ˜i¨°/ÔBØ×Ñ˜i¨°-Ô@Ø×Ñ˜i¨°,Ô?Ø×Ñ˜i¨°,Ô?Ø×Ñ˜i¨°+Ô>à�‰×Ñ˜yÔ)àr2   c                 ó‚   — d}t        ||«      }||kD  r||}}||kD  r||}}t        ||||«      }|dk(  ry|||gg| _        y)a‰  
        Set the selected cell or cells in a worksheet

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.

        Returns:
            0:  Nothing.
        NÚA1)r   r   rv   )r(   rf  rg  rh  ri  ÚpaneÚactive_cellÚsqrefs           r.   Úset_selectionzWorksheet.set_selection¸  sh   € ð ˆô (¨	°9Ó=ˆð �xÒØ%-¨y˜ˆYà�xÒØ%-¨y˜ˆYä˜ I¨x¸ÓBˆð �DŠ=Øà  +¨uÐ5Ð6ˆ�r2   c                 ó<   — |dk(  r|dk(  ryt        ||«      | _        y)zå
        Set the first visible cell at the top left of a worksheet.

        Args:
            row: The cell row (zero indexed).
            col: The cell column (zero indexed).

        Returns:
            0:  Nothing.
        r   N)r   rz   )r(   r!  rC   s      r.   Úset_top_left_cellzWorksheet.set_top_left_cellÛ  s#   € ð �!Š8˜˜qšØä.¨s°CÓ8ˆÕr2   c                 óJ   — || _         || _        || _        || _        d| _        y)a  
        Control outline settings.

        Args:
            visible:       Outlines are visible. Optional, defaults to True.
            symbols_below: Show row outline symbols below the outline bar.
                           Optional, defaults to True.
            symbols_right: Show column outline symbols to the right of the
                           outline bar. Optional, defaults to True.
            auto_style:    Use Automatic style. Optional, defaults to False.

        Returns:
            0:  Nothing.
        TN)r´   r²   r³   r±   rµ   )r(   ÚvisibleÚsymbols_belowÚsymbols_rightÚ
auto_styles        r.   Úoutline_settingszWorksheet.outline_settingsí  s+   € ð" "ˆŒØ*ˆÔØ*ˆÔØ'ˆÔà#ˆÕr2   c                 ó,   — |€|}|€|}|||||g| _         y)at  
        Create worksheet panes and mark them as frozen.

        Args:
            row:      The cell row (zero indexed).
            col:      The cell column (zero indexed).
            top_row:  Topmost visible row in scrolling region of pane.
            left_col: Leftmost visible row in scrolling region of pane.

        Returns:
            0:  Nothing.

        N)r{   )r(   r!  rC   Útop_rowÚleft_colÚ	pane_types         r.   Úfreeze_paneszWorksheet.freeze_panes  s+   € ð ˆ?ØˆGàÐØˆHà˜3 ¨°9Ð=ˆ�
r2   c                 ó.   — | j                  ||||d«       y)a‚  
        Create worksheet panes and mark them as split.

        Args:
            x:        The position for the vertical split.
            y:        The position for the horizontal split.
            top_row:  Topmost visible row in scrolling region of pane.
            left_col: Leftmost visible row in scrolling region of pane.

        Returns:
            0:  Nothing.

        r†  N)rŒ  )r(   ÚxÚyr‰  rŠ  s        r.   Úsplit_paneszWorksheet.split_panes  s   € ð  	×Ñ˜!˜Q ¨°1Õ5r2   c                 óX   — |dk  s|dkD  rt        d|z  «       d}t        |«      | _        y)zš
        Set the worksheet zoom factor.

        Args:
            zoom: Scale factor: 10 <= zoom <= 400.

        Returns:
            Nothing.

        é
   é�  z/Zoom factor %d outside range: 10 <= zoom <= 400rZ   N)r   r&   r©   )r(   r©   s     r.   Úset_zoomzWorksheet.set_zoom.  s/   € ð �"Š9˜˜sš
ÜÐBÀTÑIÔJØˆDä˜“Iˆ�	r2   c                 ó   — d| _         y)zš
        Display the worksheet right to left for some versions of Excel.

        Args:
            None.

        Returns:
            Nothing.

        r   N)r¬   rå  s    r.   Úright_to_leftzWorksheet.right_to_left@  rç  r2   c                 ó   — d| _         y)z
        Hide zero values in worksheet cells.

        Args:
            None.

        Returns:
            Nothing.

        r   N)r­   rå  s    r.   Ú	hide_zerozWorksheet.hide_zeroM  s   € ð ˆ�r2   c                 ó$   — t        |«      | _        y)z“
        Set the color of the worksheet tab.

        Args:
            color: A #RGB color index.

        Returns:
            Nothing.

        N)r   ry   ©r(   Úcolors     r.   Úset_tab_colorzWorksheet.set_tab_colorZ  s   € ô " %›ˆ�r2   c                 ó  — |dk7  r| j                  |«      }|si }i dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“}|j                  «       D ]  }||v r	||   ||<   Œt        d|z  «       Œ ||d<   || _        y)zù
        Set the password and protection options of the worksheet.

        Args:
            password: An optional password string.
            options:  A dictionary of worksheet objects to protect.

        Returns:
            Nothing.

        rU   ÚsheetTÚcontentFÚobjectsÚ	scenariosÚformat_cellsÚformat_columnsÚformat_rowsÚinsert_columnsÚinsert_rowsÚinsert_hyperlinksÚdelete_columnsÚdelete_rowsÚselect_locked_cellsÚsortr7  Úpivot_tablesÚselect_unlocked_cellszUnknown protection object: '%s'ÚpasswordN)Ú_encode_passwordr}  r   r£   )r(   r®  rÌ  Údefaultsr
  s        r.   ÚprotectzWorksheet.protectg  s?  € ð �rŠ>Ø×,Ñ,¨XÓ6ˆHáØˆGð
Ø�Tð
à�uð
ð �uð
ð ˜ð	
ð
 ˜Eð
ð ˜eð
ð ˜5ð
ð ˜eð
ð ˜5ð
ð   ð
ð ˜eð
ð ˜5ð
ð " 4ð
ð �Eð
ð ˜%ð
ð  ˜Eð!
ð" $ Tð#
ˆð* —<‘<“>ò 	>ˆCØ�h‰Ø '¨¡�˜’äÐ6¸Ñ<Õ=ð		>ð  (ˆ�Ñà'ˆÕr2   c                 ó&  — |€t        d«       y|j                  d«      }|j                  dd«      }| xj                  dz  c_        |€dt	        | j                  «      z   }|r| j                  |«      }| j                  j                  |||f«       y)	a0  
        Unprotect ranges within a protected worksheet.

        Args:
            cell_range: The cell or cell range to unprotect.
            range_name: An optional name for the range.
            password:   An optional password string. (undocumented)

        Returns:
            Nothing.

        Nz1Cell range must be specified in unprotect_range()r>  r  r{  rU   r   ÚRange)r   r  r‘  r¥   r-  r¯  r¤   r¢  ©r(   ru  Ú
range_namer®  s       r.   Úunprotect_rangezWorksheet.unprotect_rangeš  s”   € ð ÐÜÐDÔEØð  ×&Ñ& sÓ+ˆ
Ø×'Ñ'¨¨RÓ0ˆ
à×!Ò! QÑ&Õ!àÐØ ¤3 t×'@Ñ'@Ó#AÑAˆJáØ×,Ñ,¨XÓ6ˆHà×Ñ×$Ñ$ j°*¸hÐ%GÕHr2   c                 óÀ   — | j                  ||dd«      rt        d||fz  «       y|€i }| j                  |||«      }| j                  j	                  |«       d| _        y)aM  
        Insert a button form object into the worksheet.

        Args:
            row:     The cell row (zero indexed).
            col:     The cell column (zero indexed).
            options: Button formatting options.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        Tz!Cannot insert button at (%d, %d).r>  r   r   )r@  r   Ú_button_paramsrÌ   r¢  rÄ   )r(   r!  rC   rÌ  Úbuttons        r.   Úinsert_buttonzWorksheet.insert_button¹  si   € ð  ×!Ñ! # s¨D°$Ô7ÜÐ4¸¸S°zÑAÔBØàˆ?ØˆGà×$Ñ$ S¨#¨wÓ7ˆà×Ñ× Ñ  Ô(àˆŒàr2   c                 ó    — d| _         d| _        y)z�
        Set the page orientation as landscape.

        Args:
            None.

        Returns:
            Nothing.

        r   TN©r€   r~   rå  s    r.   Úset_landscapezWorksheet.set_landscapeÝ  ó   € ð ˆÔØ"&ˆÕr2   c                 ó    — d| _         d| _        y)z€
        Set the page orientation as portrait.

        Args:
            None.

        Returns:
            Nothing.

        r   TNr¼  rå  s    r.   Úset_portraitzWorksheet.set_portraitë  r¾  r2   c                 ó   — || _         y)zÐ
        Set the page view mode.

        Args:
            0: Normal view mode
            1: Page view mode (the default)
            2: Page break view mode

        Returns:
            Nothing.

        N©rø   ©r(   Úviews     r.   Úset_page_viewzWorksheet.set_page_viewù  s   € ð ˆ�r2   c                 ó   — d| _         y)zr
        Set the page view mode.

        Args:
            None.

        Returns:
            Nothing.

        r†  NrÂ  rÃ  s     r.   Úset_pagebreak_viewzWorksheet.set_pagebreak_view  s   € ð ˆ�r2   c                 ó&   — |r|| _         d| _        yy)z˜
        Set the paper type. US Letter = 1, A4 = 9.

        Args:
            paper_size: Paper index.

        Returns:
            Nothing.

        TN)r   r~   )r(   r   s     r.   Ú	set_paperzWorksheet.set_paper  s   € ñ Ø(ˆDŒOØ&*ˆDÕ#ð r2   c                 ó    — d| _         d| _        y)zx
        Center the page horizontally.

        Args:
            None.

        Returns:
            Nothing.

        Tr   N)r�   r‚   rå  s    r.   Úcenter_horizontallyzWorksheet.center_horizontally$  ó   € ð &*ˆÔ"Øˆ�r2   c                 ó    — d| _         d| _        y)zv
        Center the page vertically.

        Args:
            None.

        Returns:
            Nothing.

        Tr   N)r�   rƒ   rå  s    r.   Úcenter_verticallyzWorksheet.center_vertically2  rÌ  r2   c                 ó<   — || _         || _        || _        || _        y)zò
        Set all the page margins in inches.

        Args:
            left:   Left margin.
            right:  Right margin.
            top:    Top margin.
            bottom: Bottom margin.

        Returns:
            Nothing.

        N)r�   r‘   r’   r“   )r(   ÚleftÚrightr«  r­  s        r.   Úset_marginszWorksheet.set_margins@  s#   € ð  ˆÔØ!ˆÔØˆŒØ#ˆÕr2   c                 óÀ  — |}|j                  dd«      }t        |«      dkD  rt        d«       y|�t        |t        «      sd|i}ni }|j                  «       }|�||d<   g | _        |j                  d«      r<| j                  j                  |j                  d«      |j                  d«      d	g«       |j                  d
«      r<| j                  j                  |j                  d
«      |j                  d«      dg«       |j                  d«      r<| j                  j                  |j                  d«      |j                  d«      dg«       |j                  d«      }t        | j                  «      }||k7  rt        d|›d|›d|›�«       g | _        yd|v r
|d   | _
        d|v r
|d   | _        || _        |j                  dd«      | _        d| _        |rd| _        yy)zù
        Set the page header caption and optional margin.

        Args:
            header:  Header string.
            margin:  Header margin.
            options: Header options, mainly for images.

        Returns:
            Nothing.

        ú
&[Picture]ú&Gry  zCHeader string cannot be longer than Excel's limit of 255 charactersNÚmarginÚ
image_leftÚimage_data_leftÚLHÚimage_centerÚimage_data_centerÚCHÚimage_rightÚimage_data_rightÚRHzNumber of header images (ú#) doesn't match placeholder count (ú) in string: Úalign_with_marginsÚscale_with_docrY   T)r‘  rA  r   r3  r§   r|  r�   rÇ  r¢  r-  r‹   rŒ   r‰   r”   rˆ   rÅ   )r(   r‰   rÌ  rÖ  Úheader_origÚplaceholder_countÚimage_counts          r.   Ú
set_headerzWorksheet.set_headerS  óá  € ð ˆØ—‘ ¨dÓ3ˆäˆv‹;˜ÒÜÐVÔWØàÐä˜g¤tÔ,Ø# WÐ-‘àˆGð —,‘,“.ˆð ÐØ &ˆG�HÑð  ˆÔà�;‰;�|Ô$Ø×Ñ×%Ñ%Ø—‘˜\Ó*¨G¯K©KÐ8IÓ,JÈDÐQôð �;‰;�~Ô&Ø×Ñ×%Ñ%Ø—‘˜^Ó,¨g¯k©kÐ:MÓ.NÐPTÐUôð �;‰;�}Ô%Ø×Ñ×%Ñ%Ø—‘˜]Ó+¨W¯[©[Ð9KÓ-LÈdÐSôð #ŸL™L¨Ó.ÐÜ˜$×,Ñ,Ó-ˆà Ò+Ýò Ò 1±;ð@ôð
 "$ˆDÔØà 7Ñ*Ø(/Ð0DÑ(EˆDÔ%à˜wÑ&Ø(/Ð0@Ñ(AˆDÔ%àˆŒØ$Ÿ[™[¨°3Ó7ˆÔØ%)ˆÔ"áØ"&ˆDÕð r2   c                 óÀ  — |}|j                  dd«      }t        |«      dkD  rt        d«       y|�t        |t        «      sd|i}ni }|j                  «       }|�||d<   g | _        |j                  d«      r<| j                  j                  |j                  d«      |j                  d«      d	g«       |j                  d
«      r<| j                  j                  |j                  d
«      |j                  d«      dg«       |j                  d«      r<| j                  j                  |j                  d«      |j                  d«      dg«       |j                  d«      }t        | j                  «      }||k7  rt        d|›d|›d|›�«       g | _        yd|v r
|d   | _
        d|v r
|d   | _        || _        |j                  dd«      | _        d| _        |rd| _        yy)zù
        Set the page footer caption and optional margin.

        Args:
            footer:  Footer string.
            margin:  Footer margin.
            options: Footer options, mainly for images.

        Returns:
            Nothing.

        rÔ  rÕ  ry  zCFooter string cannot be longer than Excel's limit of 255 charactersNrÖ  r×  rØ  ÚLFrÚ  rÛ  ÚCFrÝ  rÞ  ÚRFzNumber of footer images (rà  rá  râ  rã  rY   T)r‘  rA  r   r3  r§   r|  rŽ   rÇ  r¢  r-  r‹   rŒ   rŠ   r•   rˆ   rÅ   )r(   rŠ   rÌ  rÖ  Úfooter_origrå  ræ  s          r.   Ú
set_footerzWorksheet.set_footer   rè  r2   c                 ór   — |€|}|dz  }|dz  }d||fz  }t        | j                  «      }|dz   |z   | _        y)zÕ
        Set the rows to repeat at the top of each printed page.

        Args:
            first_row: Start row for range.
            last_row: End row for range.

        Returns:
            Nothing.

        Nr   z$%d:$%drb  )r    rc   r–   )r(   rf  rh  r5  rs  s        r.   Úrepeat_rowszWorksheet.repeat_rowsí  sU   € ð ÐØ ˆHð 	�Q‰ˆ	Ø�A‰ˆð ˜I xÐ0Ñ0ˆô $ D§I¡IÓ.ˆ	Ø )¨C¡°$Ñ 6ˆÕr2   c                 ó�   — |€|}t        |d«      }t        |d«      }|dz   |z   }t        | j                  «      }|dz   |z   | _        y)zé
        Set the columns to repeat at the left hand side of each printed page.

        Args:
            first_col: Start column for range.
            last_col: End column for range.

        Returns:
            Nothing.

        Nr   r5   rb  )r   r    rc   r—   )r(   rg  ri  r5  rs  s        r.   Úrepeat_columnszWorksheet.repeat_columns  sZ   € ð ÐØ ˆHô # 9¨aÓ0ˆ	Ü! (¨AÓ.ˆð ˜3‰ Ñ)ˆô $ D§I¡IÓ.ˆ	Ø )¨C¡°$Ñ 6ˆÕr2   c                 ó~   — |dk(  rd| _         d| _        d| _        y|dk(  rd| _         d| _        yd| _         d| _        y)a1  
        Set the option to hide gridlines on the screen and the printed page.

        Args:
            option:    0 : Don't hide gridlines
                       1 : Hide printed gridlines only
                       2 : Hide screen and printed gridlines

        Returns:
            Nothing.

        r   r   TN)r„   r…   r�   )r(   Úoptions     r.   Úhide_gridlineszWorksheet.hide_gridlines"  sJ   € ð �QŠ;Ø#$ˆDÔ Ø$%ˆDÔ!Ø)-ˆDÕ&Ø�qŠ[Ø#$ˆDÔ Ø$%ˆDÕ!à#$ˆDÔ Ø$%ˆDÕ!r2   c                 ó    — d| _         d| _        y)z¢
        Set the option to print the row and column headers on the printed page.

        Args:
            None.

        Returns:
            Nothing.

        TN)r†   r�   rå  s    r.   Úprint_row_col_headerszWorksheet.print_row_col_headers:  s   € ð "ˆÔØ%)ˆÕ"r2   c                 ó   — d| _         y)zž
        Set the option to hide the row and column headers on the worksheet.

        Args:
            None.

        Returns:
            Nothing.

        TN)r‡   rå  s    r.   Úhide_row_col_headerszWorksheet.hide_row_col_headersH  s   € ð  $ˆÕr2   c                 ó˜   — |dk(  r*|dk(  r%|| j                   dz
  k(  r|| j                  dz
  k(  ry| j                  ||||«      }|| _        y)aÃ  
        Set the print area in the current worksheet.

        Args:
            first_row:    The first row of the cell range. (zero indexed).
            first_col:    The first column of the cell range.
            last_row:     The last row of the cell range. (zero indexed).
            last_col:     The last column of the cell range.

        Returns:
            0:  Success.
            -1: Row or column is out of worksheet bounds.

        r   r   N)rn   ro   r4  r˜   )r(   rf  rg  rh  ri  r5  s         r.   Ú
print_areazWorksheet.print_areaU  sZ   € ð( ˜ŠNØ˜Q’Ø˜DŸO™O¨aÑ/Ò/Ø˜DŸO™O¨aÑ/Ò/àð ×&Ñ& y°)¸XÀxÓPˆØ $ˆÔàr2   c                 ó    — d| _         d| _        y)z„
        Set the order in which pages are printed.

        Args:
            None.

        Returns:
            Nothing.

        r   TN)r™   r~   rå  s    r.   Úprint_acrosszWorksheet.print_acrossv  s   € ð ˆŒØ"&ˆÕr2   c                 ó<   — d| _         || _        || _        d| _        y)a  
        Fit the printed area to a specific number of pages both vertically and
        horizontally.

        Args:
            width:  Number of pages horizontally.
            height: Number of pages vertically.

        Returns:
            Nothing.

        r   TN)rž   rŸ   r    r~   )r(   r  r$  s      r.   Úfit_to_pageszWorksheet.fit_to_pages„  s!   € ð ˆŒØˆŒØ ˆŒØ"&ˆÕr2   c                 ó   — || _         y)zœ
        Set the start page number when printing.

        Args:
            start_page: Start page number.

        Returns:
            Nothing.

        N)r�   )r(   Ú
start_pages     r.   Úset_start_pagezWorksheet.set_start_page–  s   € ð %ˆ�r2   c                 ór   — |dk  s|dkD  rt        d|z  «       yd| _        t        |«      | _        d| _        y)z§
        Set the scale factor for the printed page.

        Args:
            scale: Print scale. 10 <= scale <= 400.

        Returns:
            Nothing.

        r’  r“  z2Print scale '%d' outside range: 10 <= scale <= 400Nr   T)r   rž   r&   r«   r~   )r(   Úscales     r.   Úset_print_scalezWorksheet.set_print_scale£  s?   € ð �2Š:˜ šÜÐEÈÑMÔNØð ˆŒä˜u›:ˆÔØ"&ˆÕr2   c                 ó    — d| _         d| _        y)z”
        Set the option to print the worksheet in black and white.

        Args:
            None.

        Returns:
            Nothing.

        TN)rš   r~   rå  s    r.   Úprint_black_and_whitezWorksheet.print_black_and_white¹  s   € ð  ˆÔØ"&ˆÕr2   c                 ó   — || _         y)z¿
        Set the horizontal page breaks on a worksheet.

        Args:
            breaks: List of rows where the page breaks should be added.

        Returns:
            Nothing.

        N)r¡   ©r(   Úbreakss     r.   Úset_h_pagebreakszWorksheet.set_h_pagebreaksÇ  ó   € ð ˆ�r2   c                 ó   — || _         y)zÂ
        Set the horizontal page breaks on a worksheet.

        Args:
            breaks: List of columns where the page breaks should be added.

        Returns:
            Nothing.

        N)r¢   r	  s     r.   Úset_v_pagebreakszWorksheet.set_v_pagebreaksÔ  r  r2   c                 óX   — |�|| _         ydt        | j                  dz   «      z   | _         y)zç
        Set the VBA name for the worksheet. By default this is the
        same as the sheet name: i.e., Sheet1 etc.

        Args:
            name: The VBA name for the worksheet.

        Returns:
            Nothing.

        NÚSheetr   )rù   r-  rd   )r(   rc   s     r.   Úset_vba_namezWorksheet.set_vba_nameá  s,   € ð ÐØ $ˆDÕà '¬#¨d¯j©j¸1©nÓ*=Ñ =ˆDÕr2   c                 ó’   — |€y|j                  «       }h d£}|j                  «       D ]  }||vsŒt        d|z  «        y || _        y)a  
        Ignore various Excel errors/warnings in a worksheet for user defined
        ranges.

        Args:
            options: A dict of ignore errors keys with cell range values.

        Returns:
            0: Success.
           -1: Incorrect parameter or option.

        r>  >	   Ú
eval_errorÚformula_rangeÚformula_differsÚformula_unlockedÚcalculated_columnÚtwo_digit_text_yearÚempty_cell_referenceÚlist_data_validationÚnumber_stored_as_textz)Unknown parameter '%s' in ignore_errors()r   )r|  r}  r   r  )r(   rÌ  r  r€  s       r.   Úignore_errorszWorksheet.ignore_errorsò  s_   € ð ˆ?Øð —l‘l“nˆGò

Ðð !Ÿ™›ò 	ˆIØÐ 0Ò0ÜÐ@À9ÑLÔMÙð	ð
 &ˆÔàr2   c                 óð  — |d   | _         |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d	   | _        |d
   | _	        |d   | _
        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        |d   | _        | j                  rFd| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        | j                  rdt9        j:                  | j
                  ¬«      \  }}t=        j>                  |«       || _         tC        |dd¬«      | _"        | jD                  | _#        y y )Nrc   rd   re   r  rg   rh   rú   rü   rÿ   rý   rþ   r   r  rm   r  r  r  rÑ  g     €)@é   rX   r   ç      à?F)Údirzw+úutf-8©ÚmodeÚencoding)$rc   rd   re   r  rg   rh   rú   rü   rÿ   rý   rþ   r   r  rm   r  r  r  rÑ  r¶   r·   r¸   r�   r‘   r’   r“   r”   r•   r‹   ÚtempfileÚmkstemprÈ  Úcloser  Úopenr  r§  )r(   Ú	init_dataÚfdrË  s       r.   Ú_initializezWorksheet._initialize!  s©  € Ø˜fÑ%ˆŒ	Ø˜wÑ'ˆŒ
Ø" ;Ñ/ˆŒØ'Ð(8Ñ9ˆÔØ(Ð):Ñ;ˆÔØ Ñ)ˆŒØ" ;Ñ/ˆŒØ"+Ð,@Ñ"AˆÔØ#,Ð-BÑ#CˆÔ Ø(Ð):Ñ;ˆÔØ!*Ð+>Ñ!?ˆÔØ#,Ð-BÑ#CˆÔ Ø"+Ð,@Ñ"AˆÔØ(Ð):Ñ;ˆÔØ(Ð):Ñ;ˆÔØ'Ð(8Ñ9ˆÔØ$-Ð.DÑ$EˆÔ!Ø(Ð):Ñ;ˆÔà×ÒØ',ˆDÔ$Ø&+ˆDÔ#Ø&(ˆDÔ#Ø#ˆDÔØ $ˆDÔØˆDŒOØ!"ˆDÔØ!$ˆDÔØ!$ˆDÔØ(-ˆDÔ%ð ×Òô &×-Ñ-°$·+±+Ô>‰NˆR�Ü�H‰H�RŒLØ%-ˆDÔ"Ü# H°4À'ÔJˆDÔð ×&Ñ&ˆD�Gð  r2   c                 ó8  — | j                  «        | j                  «        | j                  «        | j                  «        | j	                  «        | j                  «        | j                  «        | j                  s| j                  «        n| j                  «        | j                  «        | j                  «        | j                  r| j                  «        | j                  «        | j                  «        | j!                  «        | j#                  «        | j%                  «        | j'                  «        | j)                  «        | j+                  «        | j-                  «        | j/                  «        | j1                  «        | j3                  «        | j5                  «        | j7                  «        | j9                  «        | j;                  «        | j=                  «        | j?                  «        | jA                  d«       | jC                  «        y )NÚ	worksheet)"Ú_xml_declarationÚ_write_worksheetÚ_write_sheet_prÚ_write_dimensionÚ_write_sheet_viewsÚ_write_sheet_format_prÚ_write_colsrg   Ú_write_sheet_dataÚ_write_optimized_sheet_dataÚ_write_sheet_protectionÚ_write_protected_rangesrm   Ú_write_phonetic_prÚ_write_auto_filterÚ_write_merge_cellsÚ_write_conditional_formatsÚ_write_data_validationsÚ_write_hyperlinksÚ_write_print_optionsÚ_write_page_marginsÚ_write_page_setupÚ_write_header_footerÚ_write_row_breaksÚ_write_col_breaksÚ_write_ignored_errorsÚ_write_drawingsÚ_write_legacy_drawingÚ_write_legacy_drawing_hfÚ_write_pictureÚ_write_table_partsÚ_write_ext_listr¦  Ú
_xml_closerå  s    r.   Ú_assemble_xml_filezWorksheet._assemble_xml_fileM  sÒ  € ð 	×ÑÔð 	×ÑÔð 	×ÑÔð 	×ÑÔð 	×ÑÔ!ð 	×#Ñ#Ô%ð 	×ÑÔð ×#Ò#Ø×"Ñ"Õ$à×,Ñ,Ô.ð 	×$Ñ$Ô&ð 	×$Ñ$Ô&ð ×ÒØ×#Ñ#Ô%ð 	×ÑÔ!ð 	×ÑÔ!ð 	×'Ñ'Ô)ð 	×$Ñ$Ô&ð 	×ÑÔ ð 	×!Ñ!Ô#ð 	× Ñ Ô"ð 	×ÑÔ ð 	×!Ñ!Ô#ð 	×ÑÔ ð 	×ÑÔ ð 	×"Ñ"Ô$ð 	×ÑÔð 	×"Ñ"Ô$ð 	×%Ñ%Ô'ð 	×ÑÔð 	×ÑÔ!ð 	×ÑÔð 	×Ñ˜+Ô&ð 	�‰Õr2   c                 ó°  — |dk  s|dk  ry|| j                   k\  s|| j                  k\  ry|s|s| j                  r|| j                  k  ry|sD| j                  �|| j                  k  r|| _        | j
                  �|| j
                  kD  r|| _        |sD| j                  �|| j                  k  r|| _        | j                  �|| j                  kD  r|| _        yr=  )rn   ro   rg   rò   rq   rr   rs   rt   )r(   r!  rC   r  r  s        r.   r@  zWorksheet._check_dimensions±  sÇ   € ð �Š7�c˜A’gØØ�$—/‘/Ò! S¨D¯O©OÒ%;Øñ ¡*°×1EÒ1EØ�T×&Ñ&Ò&ØáØ�‰Ð&¨#°·±Ò*?Ø"%�”Ø�‰Ð&¨#°·±Ò*?Ø"%�”áØ�‰Ð&¨#°·±Ò*?Ø"%�”Ø�‰Ð&¨#°·±Ò*?Ø"%�”àr2   c                 óD   — t        || j                  | j                  «      S ©N)r   rú   r  )r(   Údt_objs     r.   ry  zWorksheet._convert_date_timeÒ  s   € ä)¨&°$·.±.À$×BVÑBVÓWÐWr2   c                 ót  — d}d}d}d}t        |d«      }	t        |d«      }
dt        |dz   «      z   }dt        |dz   «      z   }|dk(  r|| j                  dz
  k(  r|	}|
}d}n(|dk(  r|| j                  dz
  k(  r|}|}d}n
|	|z   }|
|z   }||k(  r|s|}n|dz   |z   }t	        | j
                  «      }|dz   |z   }|S )NrU   r   r   r{  r5   rb  )r   r-  rn   ro   r    rc   )r(   Ú	row_num_1Ú	col_num_1Ú	row_num_2Ú	col_num_2Úrange1Úrange2r5  Úrow_col_onlyÚ
col_char_1Ú
col_char_2Ú
row_char_1Ú
row_char_2rs  s                 r.   r4  zWorksheet._convert_name_areaÖ  sü   € ð ˆØˆØˆØˆô $ I¨qÓ1ˆ
Ü# I¨qÓ1ˆ
Øœ3˜y¨1™}Ó-Ñ-ˆ
Øœ3˜y¨1™}Ó-Ñ-ˆ
ð ˜Š>˜i¨4¯?©?¸QÑ+>Ò>ØˆFØˆFØ‰LØ˜!Š^ 	¨T¯_©_¸qÑ-@Ò @ØˆFØˆFØ‰Là *Ñ,ˆFØ *Ñ,ˆFð �VÒ¡LØ‰Dà˜C‘< &Ñ(ˆDô $ D§I¡IÓ.ˆ	Ø˜3‰ Ñ%ˆàˆr2   c                 ó¬   — |sy t        |«      }d|v r|j                  d«       t        |«      }|j                  «        d}t	        |«      |kD  r|d | }|S )Nr   iÿ  )r2  ÚremoverŸ  r«  rA  )r(   r
  Ú
breaks_setÚbreaks_listÚmax_num_breakss        r.   Ú_sort_pagebreakszWorksheet._sort_pagebreaksþ  sd   € ñ Øä˜“[ˆ
à�
‰?Ø×Ñ˜aÔ ä˜:Ó&ˆØ×ÑÔð ˆÜˆ{Ó˜nÒ,Ø% o ~Ð6ˆKàÐr2   c                 ó
  — |sg S t        j                  d«      }|j                  |«      }g }|D ]Q  }|j                  d«      r|dd  }|j	                  d«      r|d d }|j                  dd«      }|j                  |«       ŒS |S )Nz"(?:[^"]|"")*"|\S+ú"r   r>  z"")r  ÚcompileÚfindallr  r  r‘  r¢  )r(   r¼  Útoken_rerª  Ú
new_tokensr   s         r.   r<  z Worksheet._extract_filter_tokens  s•   € ñ ØˆIä—:‘:Ð3Ó4ˆØ×!Ñ! *Ó-ˆàˆ
àò 		%ˆEØ×Ñ Ô$Ø˜a˜b˜	�à�~‰~˜cÔ"Ø˜c˜r˜
�à—M‘M $¨Ó,ˆEà×Ñ˜eÕ$ð		%ð Ðr2   c                 ó:  — t        |«      dk(  r||d   }t        j                  d|«      rd}n+t        j                  d|«      rd}nt        d|›d|›d	�«       | j	                  ||dd «      }| j	                  ||d
d «      }||gz   |z   S | j	                  ||«      S )Nr  rV   z(and|&&)r   z	(or|\|\|)r   úToken 'z3' is not a valid conditional in filter expression 'ú'r;  )rA  r  r  r   Ú_parse_filter_tokens)r(   r¼  rª  ÚconditionalÚexpression_1Úexpression_2s         r.   r=  z"Worksheet._parse_filter_expression9  s«   € ô ˆv‹;˜!Òð ! ™)ˆKä�x‰x˜
 KÔ0Ø‘Ü—‘˜,¨Ô4Ø‘åâ3>Â
ðLôð
  ×4Ñ4°ZÀÈÈ!ÀÓMˆLØ×4Ñ4°ZÀÈÈ!ÀÓMˆLà ; -Ñ/°,Ñ>Ð>à×,Ñ,¨Z¸Ó@Ð@r2   c                 ó  — dddddddddddddœ}|j                  |d   d «      }|d   }t        j                  d|d	   j                  «       «      r‡t	        |d   «      }|dk  s|d
kD  rt        d||fz  «       |j                  «       }|dk7  r|dk7  rt        d|›d|›d�«       |d	   j                  «       dk(  rd}nd}|d   dk(  r|dz  }t        |«      }|s|d	   rt        d|d	   ›d|›d�«       t        j                  d|j                  «       «      rJ|dk7  r|dk7  rt        d|d   ›d|›d�«       |j                  «       }|dk(  r|dk(  rd}n|dk(  rd}d}nd}d}|dk(  rt        j                  d|«      rd}||gS )Nr†  r  r   rV   r;  é   )rb  r  z=~Úeqre  z!~Únerf  rl  rr  ri  ro  z
top|bottomr   iô  z?The value '%d' in expression '%s' must be in the range 1 to 500r  ú%z
The type 'z' in expression 'z' must be either 'items' or '%'r«  é   rx  rk  z0' is not a valid operator in filter expression 'rl  zblanks|nonblankszThe operator 'z/' is not valid in relation to Blanks/NonBlanks'r°  r  z[*?]é   )rÇ  r  r  r1  r&   r   r-  r_  )r(   r¼  rª  Ú	operatorsÚoperatorr   rZ  s          r.   rm  zWorksheet._parse_filter_tokensW  sÉ  € ð
 ØØØØØØØØØØØñ
ˆ	ð —=‘= ¨¡¨DÓ1ˆØ�q‘	ˆô �8‰8�L &¨¡)§/¡/Ó"3Ô4Ü˜˜q™	“NˆEà�qŠy˜E CšKÜð4Ø7<¸jÐ6IñJôð
 —K‘K“MˆEà˜Ò E¨S¢LÝâ8=ºzðKôð
 �a‰y�‰Ó  EÒ)Ø‘à�à�a‰y˜CÒØ˜A‘�ä˜“JˆEá˜F 1šIÝà/4°Q«xºðEôô �8‰8Ð&¨¯©«Ô6à˜1Š} ¨Q¢Ýð ˜a“y¢*ð.ôð —K‘K“MˆEð ˜Ò Ø˜q’=Ø‘Eà˜q’=Ø �HØ$‘Eà �HØ�Eð �qŠ=œRŸY™Y v¨uÔ5ØˆHà˜%Ð Ð r2   c                 ó°   — d}|d d d…   D ]!  }|dz	  dz  |dz  dz  z  }|t        |«      z  }Œ# |dz	  dz  |dz  dz  z  }|t        |«      z  }|dz  }d|z  S )Nr   r>  é   r   rT   iKÎ  z%X)ÚordrA  )r(   r®  ÚhashÚchars       r.   r¯  zWorksheet._encode_password¯  s‰   € ð
 ˆà™T˜r˜T‘Nò 	ˆDØ˜R‘Z 4Ñ'¨T°Q©Y¸&Ñ,@ÑAˆDØ”C˜“IÑ‰Dð	ð ˜‘˜tÑ#¨°©°fÑ(<Ñ=ˆØ”�H“ÑˆØ�‰ˆà�d‰{Ðr2   c                 ó   — d}| j                   |   \  }}}}}}}}}}}}}||z  }||z  }|d|z  z  }|d|	z  z  }| j                  |||||||«      }t        d|dz  z   «      }t        d|dz  z   «      }| j                  sFt	        «       }d|_        || _        | j                  j                  ddt        |«      z   dz   d g«       n| j                  }|j                  «       }||d	<   ||d
<   ||d<   ||d<   ||d<   d |d<   ||d<   d|d<   d|d<   ||d<   ||d<   |�||d<   |�r�d }d}d}t        j                  d|«      r| j                  |«      }t        j                  d|«      r| j                  |«      }t        j                  d|«      ry|j                  dd«      }| j                  |«      }|j                  dd«      }t        j                  d|«      st        j                  d|«      rd|z   }n|j                  d d!«      }t        j                  d"|«      r|j                  d"d«      }d }|�€t        |«      | j                  kD  rt!        d#|| j                  fz  «       nM| j"                  j%                  |«      s| j&                  j                  |||g«       | j)                  |«      |d<   | j"                  j%                  |
«      s/| j&                  j                  d$d%t        |«      z   d&z   |z   g«       | j)                  |
«      |d<   y )'Nr†  g      X@r  é5%  r   ú/drawingú../drawings/drawingú.xmlr4  Ú
dimensionsr  r$  rÃ  ÚshaperÍ  r   Ú	rel_indexÚurl_rel_indexr‚  rÄ  ú
/hyperlinkÚExternalr  ú^mailto:r‡  rU   rŠ  ú%23r‹  rŒ  r�  r‰  rˆ  r…  úaIgnoring URL '%s' with link and/or anchor > %d characters since it exceeds Excel's limit for URLSú/imageú../media/imageú.)rå   Ú_position_object_emusr&   rê   r   ÚembeddedrÝ   r¢  r-  Ú_add_drawing_objectr  r  r’  r‘  rA  r  r   rë   rÇ  râ   Ú_get_drawing_rel_index)r(   rd   Úimage_idÚ
drawing_idr  r$  rc   rÔ  Úx_dpiÚy_dpirÕ  Údrawing_typer!  rC   rD   r½  r¾  r¿  rÀ  r�  r‚  rÍ  rÃ  rÄ  r„  rê   Údrawing_objectÚtargetÚrel_typeÚtarget_modes                                 r.   Ú_prepare_imagezWorksheet._prepare_imageÀ  sa  € ð ˆð �K‰K˜Ññ	
ØØØØØØØØØØØØØð 	�ÑˆØ�'Ñˆð 	�˜‘ÑˆØ�$˜‘,Ñˆà×/Ñ/Ø��h ¨%°¸ó
ˆ
ô �C˜5 4™<Ñ(Ó)ˆÜ�S˜F T™MÑ*Ó+ˆð �|Š|Ü“iˆGØ ˆGÔØ"ˆDŒLà×'Ñ'×.Ñ.ØÐ2´S¸³_ÑDÀvÑMÈtÐTõð —l‘lˆGà ×4Ñ4Ó6ˆØ!-ˆ�vÑØ'1ˆ�|Ñ$Ø"'ˆ�wÑØ#)ˆ�xÑ Ø(,ˆ�}Ñ%Ø"&ˆ�wÑØ#)ˆ�xÑ Ø&'ˆ�{Ñ#Ø*+ˆ�Ñ'Ø #ˆ�uÑØ'1ˆ�|Ñ$àÐ"Ø,7ˆN˜=Ñ)âØˆFØ#ˆHØ$ˆKä�x‰xÐ)¨3Ô/Ø×)Ñ)¨#Ó.�ä�x‰x˜
 CÔ(Ø×)Ñ)¨#Ó.�ä�x‰x˜ SÔ)ØŸ™ [°"Ó5�Ø×)Ñ)¨&Ó1�àŸ™¨¨UÓ3�ä—8‘8˜F FÔ+¬r¯x©x¸¸vÔ/FØ'¨&Ñ0‘Fà#Ÿ^™^¨D°#Ó6�Fä�x‰x˜ SÔ)ØŸ™ [°#Ó6�Ø"�àÐ!Ü�v“; ×!4Ñ!4Ò4ÜðMà × 3Ñ 3Ð4ñ5õð  ×,Ñ,×0Ñ0°Ô5Ø×*Ñ*×1Ñ1°8¸VÀ[Ð2QÔRà6:×6QÑ6QÐRUÓ6V�N ?Ñ3à× Ñ ×$Ñ$ VÔ,Ø×Ñ×%Ñ%ØÐ+¬c°(«mÑ;¸cÑAÀJÑNÐOôð '+×&AÑ&AÀ&Ó&Iˆ�{Ò#r2   c                 ó”  — d}| j                   |   \  }}}}}}	}
}}}}|j                  d| j                  dz  «      }|j                  d| j                  dz  «      }||z  }||	z  }| j	                  |||||||«      }t        d|dz  z   «      }t        d|dz  z   «      }| j                  sFt        «       }d|_        || _        | j                  j                  dd	t        |«      z   d
z   d g«       n| j                  }t        dd|«      }|
|_        |j                  «       }||d<   ||d<   ||d<   ||d<   ||d<   ||d<   ||d<   d|d<   d|d<   |j                  d«      |d<   ||d<   |j                  dd «      }|�rMd }d}d}t        j                   d|«      r| j#                  |«      }t        j                   d|«      r| j#                  |«      }t        j                   d|«      r5|j%                  dd«      }| j#                  |«      }|j%                  dd«      }t        j                   d |«      r|j%                  d d«      }d }|��t'        |«      | j(                  kD  rt+        d!|| j(                  fz  «       y | j,                  j                  |«      s| j.                  j                  |||g«       | j1                  |«      |d<   y y y )"NrV   r  r$  rr  r  r€  r   r�  r‚  rƒ  ÚrectÚTextBoxr4  r„  rÃ  r…  rÍ  r   r†  r‡  r‚  rÄ  r�  rˆ  r‰  r  rŠ  r‡  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  r  r   rë   râ   r“  )r(   rd   r•  r˜  r!  rC   r½  r¾  r¿  rÀ  rÚ  rÍ  rÌ  rÃ  rÄ  r  r$  r„  rê   r…  r™  r�  rš  r›  rœ  s                            r.   Ú_prepare_shapezWorksheet._prepare_shape7  s	  € àˆð �K‰K˜Ññ	
ØØØØØØØØØØØð —‘˜G T×%<Ñ%<¸qÑ%@ÓAˆØ—‘˜X t×'>Ñ'>ÀÑ'BÓCˆà�ÑˆØ�'Ñˆà×/Ñ/Ø��h ¨%°¸ó
ˆ
ô
 �C˜5 4™<Ñ(Ó)ˆÜ�S˜F T™MÑ*Ó+ˆð �|Š|Ü“iˆGØ ˆGÔØ"ˆDŒLà×'Ñ'×.Ñ.ØÐ2´S¸³_ÑDÀvÑMÈtÐTõð —l‘lˆGä�f˜i¨Ó1ˆØˆŒ
à ×4Ñ4Ó6ˆØ!-ˆ�vÑØ'1ˆ�|Ñ$Ø"'ˆ�wÑØ#)ˆ�xÑ Ø(3ˆ�}Ñ%Ø"'ˆ�wÑØ#)ˆ�xÑ Ø&'ˆ�{Ñ#Ø*+ˆ�Ñ'Ø '§¡¨EÓ 2ˆ�uÑØ'1ˆ�|Ñ$à�k‰k˜% Ó&ˆÚØˆFØ#ˆHØ$ˆKä�x‰xÐ)¨3Ô/Ø×)Ñ)¨#Ó.�ä�x‰x˜
 CÔ(Ø×)Ñ)¨#Ó.�ä�x‰x˜ SÔ)ØŸ™ [°*Ó=�Ø×)Ñ)¨&Ó1�àŸ™¨¨UÓ3�ä�x‰x˜ SÔ)ØŸ™ [°#Ó6�Ø"�àÐ!Ü�v“; ×!4Ñ!4Ò4ÜðMà × 3Ñ 3Ð4ñ5õð  ×,Ñ,×0Ñ0°Ô5Ø×*Ñ*×1Ñ1°8¸VÀ[Ð2QÔRà6:×6QÑ6QÐRUÓ6V�N ?Ò3ð "ð+ r2   c
           	      ó,  — t        j                  dd|«      }| j                  j                  |	«      s/| j                  j                  ddt        |«      z   dz   |z   g«       | j                  |	«      }
| j                  j                  |||||||
g«       y )Nz\..*$rU   r�  rŽ  r�  )	r  ro  rí   rÇ  rã   r¢  r-  Ú_get_vml_drawing_rel_indexr�   )r(   r”  r  r$  rc   rÔ  Úpositionr–  r—  rÕ  Úref_ids              r.   Ú_prepare_header_imagezWorksheet._prepare_header_image–  s’   € ô �v‰v�h  DÓ)ˆà×$Ñ$×(Ñ(¨Ô0Ø×"Ñ"×)Ñ)ØÐ+¬c°(«mÑ;¸cÑAÀJÑNÐOôð ×0Ñ0°Ó8ˆà×Ñ×&Ñ&Ø�F˜D (¨E°5¸&ÐAõ	
r2   c                 ób   — | j                   j                  ddt        |«      z   dz   |z   g«       y )Nr�  rŽ  r�  )rá   r¢  r-  )r(   r”  rÔ  s      r.   Ú_prepare_backgroundzWorksheet._prepare_background©  s2   € à×&Ñ&×-Ñ-ØÐ'¬#¨h«-Ñ7¸#Ñ=À
ÑJÐKõ	
r2   c           
      óÈ  — d}| j                   |   \
  }}}}}	}
}}}}|dz
  |_        t        d|j                  |
z  z   «      }t        d|j                  |z  z   «      }| j                  ||||	|||«      }|j                  }| j                  sEt        «       }d|_	        || _        | j                  j                  ddt        |«      z   dz   g«       n| j                  }|j                  «       }||d<   ||d<   ||d<   ||d	<   ||d
<   d |d<   ||d<   | j                  «       |d<   d|d<   d |d<   ||d<   ||d<   | j                  j                  ddt        |«      z   dz   g«       y )Nr   r  r�  r‚  rƒ  r4  r„  r  r$  rc   r…  rÍ  r†  r   r‡  r‚  rÃ  rÄ  z/chartz../charts/chart)rä   r   r&   r  r$  r�  Ú
chart_namerê   r   r‘  rÝ   r¢  r-  r’  r“  râ   )r(   rd   Úchart_idr•  r˜  r!  rC   rß  r½  r¾  r¿  rÀ  rÍ  rÃ  rÄ  r  r$  r„  rc   rê   r™  s                        r.   Ú_prepare_chartzWorksheet._prepare_chart¯  s²  € àˆð �K‰K˜Ññ	
ØØØØØØØØØØð ˜a‘<ˆŒô �C˜5Ÿ;™;¨Ñ0Ñ1Ó2ˆÜ�S˜EŸL™L¨7Ñ2Ñ3Ó4ˆà×/Ñ/Ø��h ¨%°¸ó
ˆ
ð
 ×Ñˆð �|Š|Ü“iˆGØ ˆGÔØ"ˆDŒLà×'Ñ'×.Ñ.ØÐ2´S¸³_ÑDÀvÑMÐNõð —l‘lˆGà ×4Ñ4Ó6ˆØ!-ˆ�vÑØ'1ˆ�|Ñ$Ø"'ˆ�wÑØ#)ˆ�xÑ Ø!%ˆ�vÑØ"&ˆ�wÑØ#)ˆ�xÑ Ø&*×&AÑ&AÓ&Cˆ�{Ñ#Ø*+ˆ�Ñ'Ø $ˆ�uÑØ(3ˆ�}Ñ%Ø'1ˆ�|Ñ$à×Ñ×!Ñ!ØÐ(¬3¨x«=Ñ8¸6ÑAÐBõ	
r2   c           
      ó*  — | j                  |||||||«      \
  }}}}}}	}
}}}t        dd|z  z   «      }t        dd|z  z   «      }t        dd|
z  z   «      }
t        dd|z  z   «      }t        dd|z  z   «      }t        dd|z  z   «      }||||||	|
|||f
S )Nr  r€  )Ú_position_object_pixelsr&   )r(   Ú	col_startÚ	row_startÚx1Úy1r  r$  rÍ  Úcol_endÚrow_endÚx2Úy2Úx_absÚy_abss                 r.   r�  zWorksheet._position_object_emusë  sÏ   € ð( ×(Ñ(Ø�y " b¨%°¸ó
ñ	
ØØØØØØØØØØô ��t˜b‘y‘Ó!ˆÜ��t˜b‘y‘Ó!ˆÜ��t˜b‘y‘Ó!ˆÜ��t˜b‘y‘Ó!ˆÜ�C˜$ ™,Ñ&Ó'ˆÜ�C˜$ ™,Ñ&Ó'ˆà˜9 b¨"¨g°wÀÀBÈÈuÐUÐUr2   c           
      ó¾  — d}d}	|dk  r,|dkD  r'|| j                  |dz
  «      z  }|dz  }|dk  r|dkD  rŒ'|dk  r,|dkD  r'|| j                  |dz
  «      z  }|dz  }|dk  r|dkD  rŒ'|dk  rd}|dk  rd}| j                  r%t        |«      D ]  }
|| j                  |
«      z  }Œ n|| j                  |z  z  }||z  }| j
                  r%t        |«      D ]  }|	| j                  |«      z  }	Œ n|	| j                  |z  z  }	|	|z  }	|| j                  ||«      k\  r/|| j                  |«      z  }|dz  }|| j                  ||«      k\  rŒ/|| j                  ||«      k\  r/|| j                  |«      z  }|dz  }|| j                  ||«      k\  rŒ/|}|}| j                  ||«      dkD  r||z   }| j                  ||«      dkD  r||z   }|| j                  ||«      k\  r0|| j                  ||«      z  }|dz  }|| j                  ||«      k\  rŒ0|| j                  ||«      k\  r0|| j                  ||«      z  }|dz  }|| j                  ||«      k\  rŒ0|}|}||||||||||	g
S r%   )Ú	_size_colÚ	_size_rowrÖ   rs  rº   r×   r¸   )r(   r¯  r°  r±  r²  r  r$  rÍ  r·  r¸  r9  Úrow_idr³  r´  rµ  r¶  s                   r.   r®  z!Worksheet._position_object_pixels/  sÑ  € ð( ˆØˆð �1Šf˜ QšØ�$—.‘. ¨Q¡Ó/Ñ/ˆBØ˜‰NˆIð �1Šf˜ Q›ð
 �1Šf˜ QšØ�$—.‘. ¨Q¡Ó/Ñ/ˆBØ˜‰NˆIð �1Šf˜ Q›ð
 �Š6ØˆBà�Š6ØˆBð × Ò Ü 	Ó*ò 0�Ø˜Ÿ™¨Ó/Ñ/‘ñ0ð �T×,Ñ,¨yÑ8Ñ8ˆEà�‰ˆð × Ò Ü 	Ó*ò 0�Ø˜Ÿ™¨Ó/Ñ/‘ñ0ð �T×,Ñ,¨yÑ8Ñ8ˆEà�‰ˆð �D—N‘N 9¨fÓ5Ò5Ø�$—.‘. Ó+Ñ+ˆBØ˜‰NˆIð �D—N‘N 9¨fÓ5Ó5ð
 �D—N‘N 9¨fÓ5Ò5Ø�$—.‘. Ó+Ñ+ˆBØ˜‰NˆIð �D—N‘N 9¨fÓ5Ó5ð
 ˆØˆð �>‰>˜) VÓ,¨qÒ0Ø˜B‘JˆEØ�>‰>˜) VÓ,¨qÒ0Ø˜b‘[ˆFð �t—~‘~ g¨vÓ6Ò6Ø�T—^‘^ G¨VÓ4Ñ4ˆEØ�q‰LˆGð �t—~‘~ g¨vÓ6Ó6ð
 ˜Ÿ™ w°Ó7Ò7Ø�d—n‘n W¨fÓ5Ñ5ˆFØ�q‰LˆGð ˜Ÿ™ w°Ó7Ó7ð
 ˆØˆà˜9 b¨"¨g°wÀÀBÈÈuÐUÐUr2   c                 ó"  — d}d}d}|| j                   v rn| j                   |   d   }| j                   |   d   }|€| j                  }|r	|dk7  rd}|S |dk  rt        |||z   z  dz   «      }|S t        ||z  dz   «      |z   }|S | j                  }|S )Nr  r  r   r†  r;  r   r  )ru   r¹   r&   rº   )r(   rC   rÍ  Úmax_digit_widthÚpaddingÚpixelsr  rw   s           r.   rº  zWorksheet._size_col�  sË   € ð ˆØˆØˆð �$—-‘-ÑØ—M‘M #Ñ& qÑ)ˆEØ—]‘] 3Ñ'¨Ñ*ˆFàˆ}Ø×.Ñ.�ñ ˜& Aš+Ø�ð ˆð ˜’Ü˜U o¸Ñ&?Ñ@À3ÑFÓG�ð ˆô	 ˜U _Ñ4°sÑ:Ó;¸gÑE�ð ˆð ×,Ñ,ˆFàˆr2   c                 óÔ   — d}|| j                   v r?| j                   |   d   }| j                   |   d   }|r	|dk7  rd}|S t        d|z  «      }|S t        d| j                  z  «      }|S )Nr   r   r;  gUUUUUUõ?)rÕ   r&   r·   )r(   r!  rÍ  rÀ  r$  rw   s         r.   r»  zWorksheet._size_row­  s†   € ð
 ˆð �$—.‘.Ñ Ø—^‘^ CÑ(¨Ñ+ˆFØ—^‘^ CÑ(¨Ñ+ˆFá˜& Aš+Ø�ð ˆô	 ˜Y¨Ñ/Ó0�ð ˆô ˜ T×%<Ñ%<Ñ<Ó=ˆFàˆr2   c                 ó<   — d}d}|dk  r
|||z   z  }|S ||z
  |z  }|S )Ng      @g      @é   © )r(   rÀ  r¾  r¿  r  s        r.   r  zWorksheet._pixels_to_widthÂ  s?   € àˆØˆà�RŠ<Ø˜o°Ñ7Ñ8ˆEð ˆð ˜gÑ%¨Ñ8ˆEàˆr2   c                 ó   — d|z  S )NrX   rÄ  )r(   rÀ  s     r.   r(  zWorksheet._pixels_to_heightÎ  s   € à�f‰}Ðr2   c                 óð  — d}d}d}d dd d d d ||d dd ddddd	œ}|j                  «       D ]
  }	||	   ||	<   Œ |d
   s||d
<   |d   s||d<   t        |d   «      j                  «       |d<   |d   j                  ddd«      |d<   |d   �t	        |d   «      \  }
}|
|d<   ||d<   | j
                  }| j                  }|d   €F|dk(  rd|d<   n;||dz
  k(  r	|dz
  |d<   n*||dz
  k(  r	|dz
  |d<   n||dz
  k(  r	|dz
  |d<   n|dz
  |d<   |d   €:|dk(  rd|d<   n/||dz
  k(  rd|d<   n!||dz
  k(  rd|d<   n||dz
  k(  rd|d<   nd|d<   |d   €;||dz
  k(  r	|dz
  |d<   n*||dz
  k(  r	|dz
  |d<   n||dz
  k(  r	|dz
  |d<   n|dz   |d<   |d   €/||dz
  k(  rd|d<   n!||dz
  k(  rd|d<   n||dz
  k(  rd|d<   nd|d<   |d   r|d
   |d   z  |d
<   |d   r|d   |d   z  |d<   t        d |d
   z   «      |d
<   t        d |d   z   «      |d<   | j                  |d   |d   |d   |d   |d
   |d   |«      }|j                  |d
   «       |j                  |d   «       ||||d!   |d"   |d   |d#   |d$   |d%   g	|gz   S )&Né€   éJ   r   z#ffffe1r   ÚTahomaé   r†  )rì  r›  r  Ú	start_colÚ	start_rowrƒ  r  r$  r½  r¿  r¾  rÀ  Ú	font_nameÚ	font_sizeÚfont_familyr  r$  r›  ÚffrŠ  r  rÌ  rË  rV   r  rr  r  r¾  r  r{  r’  r;  r½  é1   r[   r¿  rÀ  r  rì  rƒ  rÍ  rÎ  rÏ  )
r}  r   r1  r‘  r   rn   ro   r&   r®  r¢  )r(   r!  rC   r9  rÌ  Údefault_widthÚdefault_heightrÍ  Úparamsr
  rÌ  rË  Úrow_maxÚcol_maxÚverticess                  r.   Ú_comment_paramszWorksheet._comment_paramsÒ  sÞ  € ð ˆØˆØˆð ØØØØØØ"Ø$ØØØØØ!ØØñ
ˆð( —<‘<“>ò 	'ˆCØ! #™,ˆF�3ŠKð	'ð �gŠØ+ˆF�7‰OØ�hÒØ-ˆF�8Ñô # 6¨'¡?Ó3×9Ñ9Ó;ˆˆw‰ð ! ™/×1Ñ1°$¸¸QÓ?ˆˆw‰ð �,ÑÐ+Ü%6°v¸lÑ7KÓ%LÑ"ˆY˜	Ø"+ˆF�;ÑØ"+ˆF�;Ñð
 —/‘/ˆØ—/‘/ˆà�+ÑÐ&Ø�aŠxØ&'��{Ò#Ø˜ !™Ò#Ø&-°¡k��{Ò#Ø˜ !™Ò#Ø&-°¡k��{Ò#Ø˜ !™Ò#Ø&-°¡k��{Ò#à&)¨A¡g��{Ñ#à�*ÑÐ%Ø�aŠxØ%&��zÒ"Ø˜ !™Ò#Ø%'��zÒ"Ø˜ !™Ò#Ø%'��zÒ"Ø˜ !™Ò#Ø%'��zÒ"à%'��zÑ"à�+ÑÐ&Ø�g ‘kÒ!Ø&-°¡k��{Ò#Ø˜ !™Ò#Ø&-°¡k��{Ò#Ø˜ !™Ò#Ø&-°¡k��{Ò#à&)¨A¡g��{Ñ#à�*ÑÐ%Ø�g ‘kÒ!Ø%'��zÒ"Ø˜ !™Ò#Ø%'��zÒ"Ø˜ !™Ò#Ø%'��zÒ"à%'��zÑ"ð �)ÒØ$ W™o°°yÑ0AÑAˆF�7‰Oà�)ÒØ% hÑ/°&¸Ñ2CÑCˆF�8Ñô ˜c F¨7¡OÑ3Ó4ˆˆw‰Ü˜s V¨HÑ%5Ñ5Ó6ˆˆxÑð ×/Ñ/Ø�;ÑØ�;ÑØ�:ÑØ�:ÑØ�7‰OØ�8ÑØó
ˆð 	�‰˜˜w™Ô(Ø�‰˜˜xÑ(Ô)ð ØØØ�8ÑØ�9ÑØ�7‰OØ�;ÑØ�;ÑØ�=Ñ!ð

ð ˆJñ
ð 
	r2   c           	      óŠ  — | j                   }| j                  }d}dt        | j                  «      z   }||i dœ}i }	|j	                  «       D ]
  }
||
   |	|
<   Œ |	j                  d«      }|€d|z  }||d   d<   |	j                  d«      rd|	d   z   |d<   nd	|z  |d<   |	j                  d
«      |d
<   |	j                  d|«      |	d<   |	j                  d|«      |	d<   |	j                  dd«      |	d<   |	j                  dd«      |	d<   |	d   |	j                  dd«      z  |	d<   |	d   |	j                  dd«      z  |	d<   t        d|	d   z   «      |	d<   t        d|	d   z   «      |	d<   ||	d<   ||	d<   | j                  |	d   |	d   |	d   |	d   |	d   |	d   |«      }|j                  |	d   «       |j                  |	d   «       ||d<   |S )Nr   r   )r!  rC   ÚfontÚcaptionz	Button %drÚ  Úmacroz[0]!z[0]!Button%d_ClickrÃ  r  r$  r½  r¾  r¿  rÀ  r  rÌ  rË  r×  )	r¸   rº   rA  rÌ   r}  rÇ  r&   r®  r¢  )r(   r!  rC   rÌ  rÓ  rÒ  rÍ  Úbutton_numberr¹  rÔ  r
  rÛ  r×  s                r.   r¸  zWorksheet._button_params[  s,  € ð ×0Ñ0ˆØ×/Ñ/ˆØˆàœC × 1Ñ 1Ó2Ñ2ˆØ S°"Ñ5ˆØˆð —<‘<“>ò 	'ˆCØ! #™,ˆF�3ŠKð	'ð —*‘*˜YÓ'ˆð ˆ?Ø! MÑ1ˆGà$+ˆˆv‰�yÑ!ð �:‰:�gÔØ$ v¨g¡Ñ6ˆF�7ŠOà2°]ÑBˆF�7‰Oð !'§
¡
¨=Ó 9ˆˆ}Ñð !Ÿ*™* W¨mÓ<ˆˆw‰Ø!Ÿ:™: h°Ó?ˆˆxÑð $ŸZ™Z¨
°AÓ6ˆˆzÑØ#ŸZ™Z¨
°AÓ6ˆˆzÑð ! ™/¨F¯J©J°yÀ!Ó,DÑDˆˆw‰Ø! (Ñ+¨f¯j©j¸ÀAÓ.FÑFˆˆxÑô ˜c F¨7¡OÑ3Ó4ˆˆw‰Ü˜s V¨HÑ%5Ñ5Ó6ˆˆxÑà!ˆˆ{ÑØ!ˆˆ{Ñð ×/Ñ/Ø�;ÑØ�;ÑØ�:ÑØ�:ÑØ�7‰OØ�8ÑØó
ˆð 	�‰˜˜w™Ô(Ø�‰˜˜xÑ(Ô)à%ˆˆzÑàˆr2   c                 ó’  — g }t        | j                  j                  «       «      }|D ]í  }t        | j                  |   j                  «       «      }|D ]À  }	| j                  |   |	   }
 | j                  |
Ž }|| j                  |   |	<   | j                  r*| j                  |   |	   d   €d| j                  |   |	   d<   | j                  |   |	   d   €| j
                  | j                  |   |	   d<   |j                  | j                  |   |	   «       ŒÂ Œï | j                  j                  ddt        |«      z   dz   g«       | j                  r3|| _
        | j                  j                  ddt        |«      z   d	z   g«       t        |«      }|}t        t        |d
z  «      «      D ]  }d|||z   dz   fz  }Œ || _        || _        |S )Nr;  r   rV   ú/vmlDrawingú../drawings/vmlDrawingú.vmlz	/commentsz../commentsrƒ  r`   z%s,%d)r  rÇ   r}  rØ  rÊ   rÉ   r¢  rß   r-  rÆ   rÈ   rÞ   rA  rs  r&   r  rË   )r(   r  rË   Úvml_drawing_idÚ
comment_idrÇ   Úrow_numsr!  Úcol_numsrC   Úuser_optionsrÔ  r-  Ústart_data_idrA  s                  r.   Ú_prepare_vml_objectszWorksheet._prepare_vml_objects¤  sï  € ð ˆô ˜$Ÿ-™-×,Ñ,Ó.Ó/ˆàò 	9ˆCÜ˜dŸm™m¨CÑ0×5Ñ5Ó7Ó8ˆHàò 9�Ø#Ÿ}™}¨SÑ1°#Ñ6�Ø-˜×-Ñ-¨|Ð<�Ø*0�—‘˜cÑ" 3Ñ'ð ×(Ò(Ø—}‘} SÑ)¨#Ñ.¨qÑ1Ð9Ø56˜Ÿ™ cÑ*¨3Ñ/°Ñ2ð —=‘= Ñ% cÑ*¨1Ñ-Ð5Ø15×1EÑ1E�D—M‘M #Ñ& sÑ+¨AÑ.à—‘ §¡¨cÑ 2°3Ñ 7Õ8ñ9ð	9ð& 	×Ñ×&Ñ&ØÐ4´s¸>Ó7JÑJÈVÑSÐTô	
ð ×ÒØ!)ˆDÔà×'Ñ'×.Ñ.Ø˜m¬c°*«oÑ=ÀÑFÐGôô �H“ˆØ#ˆô ”s˜5 4™<Ó(Ó)ò 	IˆAØ! [°-À!Ñ2CÀaÑ2GÐ$HÑH‰Kð	Ið 'ˆÔØ(ˆÔàˆr2   c                 ój   — || _         | j                  j                  ddt        |«      z   dz   g«       y )Nrß  rà  rá  )rÍ   rß   r¢  r-  )r(   rÍ   râ  s      r.   Ú_prepare_header_vml_objectsz%Worksheet._prepare_header_vml_objects×  s8   € ð +ˆÔà×Ñ×&Ñ&ØÐ4´s¸>Ó7JÑJÈVÑSÐTõ	
r2   c                 ó0  — | j                   D ]‡  }||d<   |j                  d«      €dt        |«      z   |d<   |d   j                  «       }||v rt	        d|d   z  «      ‚d||<   | j
                  j                  ddt        |«      z   dz   g«       |d	z  }Œ‰ y )
Nr   rc   ÚTablez2Duplicate name '%s' used in worksheet.add_table().Tz/tablez../tables/tablerƒ  r   )ræ   rÇ  r-  r1  r!   rà   r¢  )r(   Útable_idÚseenr¿   rc   s        r.   Ú_prepare_tableszWorksheet._prepare_tablesà  s·   € à—[‘[ò 	ˆEØ"ˆE�$‰Kà�y‰y˜Ó Ð(à '¬#¨h«-Ñ 7��f‘ð ˜‘=×&Ñ&Ó(ˆDà�t‰|Ü(ØHÈ5ÐQWÉ=ÑXóð ð "��T‘
ð ×%Ñ%×,Ñ,ØÐ,¬s°8«}Ñ<¸vÑEÐFôð ˜‰M‰Hñ+	r2   c           	      óô   — d}|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd	«      }d
ddddddddœ}||v r||   }d|›d|›d�}|S t        d|z  «       |S )NrU   rl  z''rŠ  z'#ú]z']ú[z'[ée   éf   ég   éh   éi   ék   ém   én   r,  z	SUBTOTAL(z,[z])z(Unsupported function '%s' in add_table())r‘  r   )r(   r?  Úcol_namerY  r@  Úfunc_nums         r.   r3  z$Worksheet._table_function_to_formulaù  s¬   € àˆð ×#Ñ# C¨Ó.ˆØ×#Ñ# C¨Ó.ˆØ×#Ñ# C¨Ó.ˆØ×#Ñ# C¨Ó.ˆð ØØØØØØØñ	
ˆ	ð �yÑ Ø  Ñ*‰HÚ-5²xÐ@ˆGð ˆô Ð;¸hÑFÔGàˆr2   c                 ó4   — ||vry dt        ||   «      i||<   y )NÚrgbr   )r(   ro  rÌ  Ú
user_colors       r.   rn  zWorksheet._set_spark_color  s&   € à˜WÑ$Øà!&¬°¸Ñ1DÓ(EÐ Fˆ	�*Òr2   c                 óŠ  — | j                   ryg }t        ||dz   «      D �]   }|| j                  vr|j                  d «       Œ$t        ||dz   «      D ]ë  }|| j                  |   v rÇ| j                  |   |   }|j                  j
                  }	|	dv r|j                  d|j                  z  «       Œ_|	dk(  r9|j                  }
| j                  j                  |
«      }|j                  |«       Œ�|	dv r"|j                  }|€d}|j                  |«       ŒÃ|	dk(  sŒÉ|j                  d	«       ŒÛ|j                  d «       Œí �Œ# |S )
NrÄ  r   ©rH   rM   rw  rG   )rL   rN   r   rI   rU   )rg   rs  r¿   r¢  r  r  rI  r9  re   Ú_get_shared_stringrZ  )r(   r°  r¯  r´  r³  r·  r  r  r  r  rd   r9  rZ  s                r.   Ú_get_range_datazWorksheet._get_range_data  s9  € ð ×ÒØàˆô ˜Y¨°!©Ó4ó %	&ˆGà˜dŸj™jÑ(Ø—‘˜DÔ!Øä  ¨G°a©KÓ8ò &�Ø˜dŸj™j¨Ñ1Ñ1ØŸ:™: gÑ.¨wÑ7�Dà $§¡× 7Ñ 7�Ià Ð$:Ñ:àŸ™ G¨d¯k©kÑ$9Õ:à" hÒ.à $§¡˜Ø!%§¡×!BÑ!BÀ5Ó!I˜àŸ™ FÕ+à"Ð&AÑAà $§
¡
˜à ˜=Ø$%˜EàŸ™ EÕ*à" gÓ-àŸ™ B�ð —K‘K Õ%ò?&ð%	&ðN ˆr2   c                 ó‚   — |D �cg c]  }t        |t        «      st        |«      n|‘Œ! }}dj                  |«      S c c}w )Nú,)r3  r-  Újoin)r(   r  Úitems      r.   r~  zWorksheet._csv_joinR  s?   € ð OTÖTÀd¤*¨T´3Ô"7”�T”¸TÑAÐTˆÐTà�x‰x˜‹Ðùò Us   …$<c                 óÂ  — t        j                  d|«      r|S |j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd	«      }|j                  d
d«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|S )Nz%[0-9a-fA-F]{2}ru  z%25re  z%22r  z%20rl  z%3cri  z%3erò  z%5brñ  z%5dú^z%5eú`z%60r]  z%7br  z%7d)r  r_  r‘  )r(   r�  s     r.   r’  zWorksheet._escape_urlZ  sÍ   € ä�9‰9Ð&¨Ô,ØˆJð �k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆØ�k‰k˜#˜uÓ%ˆàˆ
r2   c                 ó  — |€!| xj                   dz  c_         | j                   S | j                  j                  |«      r| j                  |   S | xj                   dz  c_         | j                   | j                  |<   | j                   S ©Nr   )rì   rë   rÇ  ©r(   rš  s     r.   r“  z Worksheet._get_drawing_rel_indexn  s|   € àˆ>Ø× Ò  AÑ%Õ Ø×'Ñ'Ð'Ø×Ñ×"Ñ" 6Ô*Ø×$Ñ$ VÑ,Ð,à× Ò  AÑ%Õ Ø(,×(<Ñ(<ˆD×Ñ˜fÑ%Ø×'Ñ'Ð'r2   c                 óÊ   — | j                   j                  |«      r| j                   |   S | xj                  dz  c_        | j                  | j                   |<   | j                  S r  )rí   rÇ  rî   r  s     r.   r£  z$Worksheet._get_vml_drawing_rel_indexz  sZ   € à× Ñ ×$Ñ$ VÔ,Ø×(Ñ(¨Ñ0Ð0à×$Ò$¨Ñ)Õ$Ø,0×,DÑ,DˆD×!Ñ! &Ñ)Ø×+Ñ+Ð+r2   c                 óÚ  — | j                   }|j                  d«       |j                  r|j                  d«       |j                  r|j                  d«       |j
                  r|j                  d«       |j                  r|j                  d«       |j                  r|j                  d«       |j                  r| j                  |j                  «       |j                  dk(  r| j                  d«       |j                  d	k(  r| j                  d
«       |j                  dd|j                  fg«       |j                  dk(  rnž|j                  r| j                  d|j                  «       nu|j                  r| j                  d|j                  «       nL|j                   r.| j#                  |j                   «      }| j%                  d|«       n| j%                  dd«       |j                  dd|j&                  fg«       |j                  dd|j(                  fg«       |j&                  dk(  r+|j*                  s|j                  dd|j,                  fg«       |j/                  d«       y )NÚrPrÚbrA  ÚstrikeÚoutlineÚshadowr   Úsuperscriptr†  Ú	subscriptÚszÚvalr>  ÚthemeÚindexedrþ  ÚrFontÚfamilyÚCalibriÚscheme)rñ   r£  ÚboldÚ_xml_empty_tagÚitalicÚfont_strikeoutÚfont_outlineÚfont_shadowÚ	underlineÚ_write_underlineÚfont_scriptÚ_write_vert_alignrÎ  r  Ú_write_colorÚcolor_indexedÚ
font_colorÚ_get_palette_colorÚ_write_rstring_colorrÍ  rÏ  Ú	hyperlinkÚfont_schemer¦  )r(   Ú	xf_formatÚ
xml_writerr›  s       r.   r¤  zWorksheet._write_font‰  s  € à—\‘\ˆ
à×!Ñ! %Ô(ð �>Š>Ø×%Ñ% cÔ*Ø×ÒØ×%Ñ% cÔ*Ø×#Ò#Ø×%Ñ% hÔ/Ø×!Ò!Ø×%Ñ% iÔ0Ø× Ò Ø×%Ñ% hÔ/ð ×ÒØ×!Ñ! )×"5Ñ"5Ô6ð × Ñ  AÒ%Ø×"Ñ" =Ô1Ø× Ñ  AÒ%Ø×"Ñ" ;Ô/ð 	×!Ñ! $¨%°×1DÑ1DÐ)EÐ(FÔGð �?‰?˜bÒ àØ�_Š_Ø×Ñ˜g y§¡Õ7Ø×$Ò$Ø×Ñ˜i¨×)@Ñ)@ÕAØ×!Ò!Ø×+Ñ+¨I×,@Ñ,@ÓAˆEØ×%Ñ% e¨UÕ3à×%Ñ% g¨qÔ1ð 	×!Ñ! '¨U°I×4GÑ4GÐ,HÐ+IÔJØ×!Ñ! (¨e°Y×5JÑ5JÐ-KÐ,LÔMà×Ñ )Ò+°I×4GÒ4GØ×%Ñ% h°%¸×9NÑ9NÐ1OÐ0PÔQà×Ñ Õ&r2   c                 ót   — g }|dk(  rdg}n|dk(  rdg}n|dk(  rdg}| j                   j                  d|«       y )Nr†  )r  Údoubleé!   )r  ÚsingleAccountingé"   )r  ÚdoubleAccountingÚu©rñ   r   )r(   r%  r°  s      r.   r&  zWorksheet._write_underline¿  sJ   € àˆ
ð ˜Š>Ø+Ð,‰JØ˜"Š_Ø5Ð6‰JØ˜"Š_Ø5Ð6ˆJà�‰×#Ñ# C¨Õ4r2   c                 óF   — d|fg}| j                   j                  d|«       y )Nr  Ú	vertAlignr9  ©r(   r  r°  s      r.   r(  zWorksheet._write_vert_alignÍ  s!   € à˜c�l�^ˆ
à�‰×#Ñ# K°Õ<r2   c                 óF   — ||fg}| j                   j                  d|«       y ©Nr›  r9  ©r(   rc   rZ  r°  s       r.   r-  zWorksheet._write_rstring_colorÓ  s!   € à˜U�m�_ˆ
à�‰×#Ñ# G¨ZÕ8r2   c                 óB   — |d   dk(  r|dd  }d|j                  «       z   S )Nr   rŠ  r   ÚFF)Úupperrš  s     r.   r,  zWorksheet._get_palette_colorÙ  s)   € à�‰8�sŠ?Ø˜!˜"�IˆEà�e—k‘k“mÑ#Ð#r2   c                 ó`   — | j                   s"| j                  j                  «        d| _         y y )NT)r  r  r'  rå  s    r.   Ú
_opt_closezWorksheet._opt_closeà  s*   € à×&Ò&Ø×Ñ×"Ñ"Ô$Ø&*ˆDÕ#ð 'r2   c                 óŒ   — | j                   r8| j                  }t        |dd¬«      | _        d| _         | j                  | _        y y )Nza+r!  r"  F)r  r  r(  r  r§  )r(   rË  s     r.   Ú_opt_reopenzWorksheet._opt_reopenæ  sA   € à×"Ò"Ø×-Ñ-ˆHÜ# H°4À'ÔJˆDÔØ&+ˆDÔ#Ø×&Ñ&ˆD�Gð	 #r2   c                 ó  — g }t        |«      D ]  }|j                  ddddœ«       Œ |dk(  rd|d   d<   d|d	   d<   |d
k(  rd|d   d<   d|d	   d<   d|d   d<   |dk(  r d|d   d<   d|d	   d<   d|d   d<   d|d   d<   |�rt        |«      }||k\  r|d	z
  }t        |«      D ]ß  }||   j                  d«      �N||   d   ||   d<   ||   d   }t	        |t
        «      r(|j                  d«      r|j                  d«      ||   d<   ||   j                  d«      rBd}||   d   |vrt        d||   d   z  «       n!||   d   ||   d<   ||   d   dk(  rd||   d<   ||   j                  d«      }	|	sŒÒ|	dk(  sŒØd||   d<   Œá |S )NFr   Úpercent)r?  rZ  r4  rV   éC   rZ  r4  r   r;  éK   rû  é   r†  r  éP   é<   é(   r\   r  r4  )rH  rú  rI  rY  zOUnknown icon property type '%s' for sub-property 'type' in conditional_format()rI  Únumr?  ri  T)	rs  r¢  rA  rÇ  r3  r-  r  r  r   )
r(   rð  Ú
user_propsÚpropsrD   Úmax_datarA  Útmpr�  r?  s
             r.   r  zWorksheet._set_icon_propsî  s  € àˆô �{Ó#ò 	MˆAØ�L‰L e°aÀÑKÕLð	Mð ˜!ÒØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑà˜!ÒØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑà˜!ÒØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑØ "ˆE�!‰H�WÑò ä˜:“ˆHØ˜;Ò&Ø&¨™?�ä˜8“_ò 0�à˜a‘=×$Ñ$ WÓ-Ð9Ø(2°1©°gÑ(>�E˜!‘H˜WÑ%ð   ™( 7Ñ+�CÜ! #¤sÔ+°·±¸sÔ0CØ,/¯J©J°s«O˜˜a™ Ñ)ð ˜a‘=×$Ñ$ VÔ,Ø"P�Kà! !‘} VÑ,°KÑ?ÜðFà(¨™m¨FÑ3ñ4õð ,6°a©=¸Ñ+@˜˜a™ Ñ(à  ™8 FÑ+¨xÒ7Ø/4˜E !™H VÑ,ð & a™=×,Ñ,¨ZÓ8�Ú ¨C£Ø+/�E˜!‘H˜ZÒ(ð;0ð> ˆr2   c                 óô   — d}|dz   }|dz   }|dz   }d}|dz   }d|fd|fg}| j                   d	k(  r7|j                  d
|f«       |j                  d|f«       |j                  d«       | j                  d|«       y )Nz"http://schemas.openxmlformats.org/zspreadsheetml/2006/mainz!officeDocument/2006/relationshipszmarkup-compatibility/2006zhttp://schemas.microsoft.com/zoffice/spreadsheetml/2009/9/acÚxmlnszxmlns:rr   zxmlns:mczxmlns:x14ac)zmc:IgnorableÚx14acr-  )rl   r¢  r£  )r(   ÚschemarU  Úxmlns_rÚxmlns_mcÚ	ms_schemaÚxmlns_x14acr°  s           r.   r/  zWorksheet._write_worksheet4  s£   € ð 6ˆØÐ2Ñ2ˆØÐ>Ñ>ˆØÐ7Ñ7ˆØ3ˆ	ØÐ"BÑBˆà Ð&¨°GÐ(<Ð=ˆ
ð ×Ñ Ò%Ø×Ñ˜z¨8Ð4Ô5Ø×Ñ˜}¨kÐ:Ô;Ø×ÑÐ7Ô8à×Ñ˜K¨Õ4r2   c                 ó–  — | j                   €| j                  €d}�n| j                   €q| j                  �e| j                  | j                  k(  rt        d| j                  «      }nÐt        d| j                  «      }t        d| j                  «      }|dz   |z   }n›| j                   | j                  k(  r:| j                  | j                  k(  r!t        | j                   | j                  «      }nHt        | j                   | j                  «      }t        | j                  | j                  «      }|dz   |z   }| j                  dd|fg«       y )Nr{  r   r5   Ú	dimensionr6  )rq   rs   rt   r   rr   r   )r(   r6  r9   r:   s       r.   r1  zWorksheet._write_dimensionH  s  € ð
 �?‰?Ð" t§¡Ð'>ð ŠCà�_‰_Ð$¨¯©Ð)Dð
 �‰ $§/¡/Ò1ä'¨¨4¯?©?Ó;‘ô +¨1¨d¯o©oÓ>�Ü*¨1¨d¯o©oÓ>�Ø˜s‘l VÑ+‘à�_‰_ §¡Ò/°D·O±OÀtÇÁÒ4Vä# D§O¡O°T·_±_ÓE‰Cô ' t§¡¸¿¹ÓHˆFÜ& t§¡¸¿¹ÓHˆFØ˜3‘, Ñ'ˆCà×Ñ˜K¨5°#¨,¨Õ8r2   c                 óh   — | j                  d«       | j                  «        | j                  d«       y )NÚ
sheetViews)r£  Ú_write_sheet_viewr¦  rå  s    r.   r2  zWorksheet._write_sheet_viewsk  s,   € à×Ñ˜LÔ)ð 	×ÑÔ à×Ñ˜,Õ'r2   c                 óÆ  — g }| j                   s|j                  d«       | j                  r|j                  d«       | j                  s|j                  d«       | j                  r|j                  d«       | j
                  r|j                  d«       | j                  s|j                  d«       | j                  dk(  r|j                  d«       n | j                  d	k(  r|j                  d
«       | j                  dk7  r|j                  d| j                  f«       | j                  dk7  r­|j                  d| j                  f«       | j                  dk(  r)| j                  r|j                  d| j                  f«       | j                  dk(  r|j                  d| j                  f«       | j                  d	k(  r|j                  d| j                  f«       |j                  d«       | j                  st        | j                  «      rD| j                  d|«       | j                  «        | j!                  «        | j#                  d«       y | j%                  d|«       y )N)ÚshowGridLinesr   )ÚshowRowColHeadersr   )Ú	showZerosr   ©ÚrightToLeftr   )ÚtabSelectedr   ©ÚshowOutlineSymbolsr   r   )rÄ  Ú
pageLayoutr†  )rÄ  ÚpageBreakPreviewrU   ÚtopLeftCellrZ   Ú	zoomScaler   ÚzoomScaleNormalÚzoomScalePageLayoutViewÚzoomScaleSheetLayoutView)ÚworkbookViewIdr   Ú	sheetView)r…   r¢  r‡   r­   r¬   r}   r´   rø   rz   r©   rª   r{   rA  rv   r£  Ú_write_panesÚ_write_selectionsr¦  r   ©r(   r°  s     r.   r`  zWorksheet._write_sheet_viewt  sþ  € àˆ
ð ×$Ò$Ø×ÑÐ2Ô3ð ×ÒØ×ÑÐ6Ô7ð �ŠØ×ÑÐ.Ô/ð × Ò Ø×ÑÐ0Ô1ð �=Š=Ø×ÑÐ0Ô1ð �ŠØ×ÑÐ7Ô8ð �>‰>˜QÒØ×ÑÐ4Õ5Ø�^‰^˜qÒ Ø×ÑÐ:Ô;ð ×Ñ Ò#Ø×Ñ˜}¨d×.@Ñ.@ÐAÔBð �9‰9˜ÒØ×Ñ˜{¨D¯I©IÐ6Ô7à�~‰~ Ò" t×'=Ò'=Ø×!Ñ!Ð#4°d·i±iÐ"@ÔAØ�~‰~ Ò"Ø×!Ñ!Ð#<¸d¿i¹iÐ"HÔIØ�~‰~ Ò"Ø×!Ñ!Ð#=¸t¿y¹yÐ"IÔJà×ÑÐ/Ô0à�:Š:œ˜TŸ_™_Ô-Ø×Ñ ¨ZÔ8Ø×ÑÔØ×"Ñ"Ô$Ø×Ñ˜kÕ*à×Ñ ¨ZÕ8r2   c                 óœ  — | j                   }| j                  }| j                  }d|fg}| j                   | j                  k7  r|j	                  d«       | j
                  r|j	                  d«       |r|j	                  d|f«       |r|j	                  d|f«       | j                  dk(  r|j	                  d«       | j                  d|«       y )	NÚdefaultRowHeight©ÚcustomHeightr   )Ú
zeroHeightr   ÚoutlineLevelRowÚoutlineLevelColr   ©zx14ac:dyDescentz0.25ÚsheetFormatPr)r·   r¯   r°   r¶   r¢  r¼   rl   r   )r(   r·   Ú	row_levelÚ	col_levelr°  s        r.   r3  z Worksheet._write_sheet_format_pr¯  sÈ   € à!×4Ñ4ÐØ×*Ñ*ˆ	Ø×*Ñ*ˆ	à)Ð+=Ð>Ð?ˆ
à×"Ñ" d×&>Ñ&>Ò>Ø×ÑÐ1Ô2à×"Ò"Ø×ÑÐ/Ô0áØ×ÑÐ0°)Ð<Ô=ÙØ×ÑÐ0°)Ð<Ô=à×Ñ Ò%Ø×ÑÐ9Ô:à×Ñ˜O¨ZÕ8r2   c                 óö  — | j                   sy | j                  d«       t        | j                   j                  «       «      d   }|}| j                   |   }| j                   |= |}|}t        | j                   j                  «       «      D ]:  }| j                   |   }||dz   k(  r||k(  r|}Œ"| j	                  |||«       |}|}|}Œ< | j	                  |||«       || j                   |<   | j                  d«       y )NÚcolsr   r   )ru   r£  r  r}  Ú_write_col_infor¦  )r(   rg  ri  Úprev_col_optionsÚdeleted_colÚdeleted_col_optionsrC   Úcol_optionss           r.   r4  zWorksheet._write_colsÇ  s  € ð �}Š}Øà×Ñ˜FÔ#ô ˜DŸM™M×.Ñ.Ó0Ó1°1Ñ5ˆ	ØˆØŸ=™=¨Ñ3ÐØ�M‰M˜)Ð$ØˆØ.Ðä˜$Ÿ-™-×,Ñ,Ó.Ó/ò 	/ˆCØŸ-™-¨Ñ,ˆKð �h ‘lÒ" {Ð6FÒ'FØ‘ð ×$Ñ$ Y°Ð:JÔKØ�	Ø$�Ø#.Ñ ð	/ð 	×Ñ˜Y¨Ð2BÔCð &9ˆ�‰�kÑ"à×Ñ˜&Õ!r2   c                 óz  — |\  }}}}}}	d}
d}|r|j                  «       }|€
|sd}d}
n
d}n|dk(  rd}
|dkD  rhd}d}|dk  r0t        t        |||z   z  dz   «      t        |«      z  dz  «      dz  }n/t        t        ||z  dz   «      |z   t        |«      z  dz  «      dz  }d|dz   fd	|dz   fd
d|z  fg}|r|j                  d|f«       |r|j                  d«       |	r|j                  d«       |
r|j                  d«       |r|j                  d|f«       |r|j                  d«       | j	                  d|«       y )Nr   r   r]   r  r  r  g      p@rø  rù  r  rw  r  )rw   rB   )ÚbestFitrB   )ÚcustomWidthrB   ÚoutlineLevel)rÿ  rB   rC   )Ú_get_xf_indexr&   r  r¢  r   )r(   Úcol_minrÖ  ru   r  r:  rw   r   rÿ  r"  Úcustom_widthÚxf_indexr¾  r¿  r°  s                  r.   rƒ  zWorksheet._write_col_infoï  sª  € àBJÑ?ˆ�˜V U¨I°wàˆØˆñ Ø"×0Ñ0Ó2ˆHð ˆ=ÙØ�Ø ‘à‘Ø�dŠ]àˆLð �1Š9àˆOØˆGà�qŠyäÜ˜U o¸Ñ&?Ñ@À3ÑFÓGÜ Ó0ñ1àñ óð
 ññ ô Ü˜U _Ñ4°sÑ:Ó;¸gÑEÜ Ó0ñ1àñ óð
 ñð ð �G˜a‘KÐ Ø�G˜a‘KÐ Ø�g ‘oÐ&ð
ˆ
ñ Ø×Ñ˜w¨Ð1Ô2ÙØ×Ñ˜oÔ.ÙØ×ÑÐ.Ô/ÙØ×ÑÐ2Ô3ÙØ×Ñ˜~¨uÐ5Ô6ÙØ×ÑÐ0Ô1à×Ñ˜E :Õ.r2   c                 ó¤   — | j                   €| j                  d«       y | j                  d«       | j                  «        | j	                  d«       y )NÚ	sheetData)rq   r   r£  Ú_write_rowsr¦  rå  s    r.   r5  zWorksheet._write_sheet_data3  sB   € à�?‰?Ð"à×Ñ Õ,à×Ñ Ô,Ø×ÑÔØ×Ñ˜kÕ*r2   c                 óÜ  — | j                   €| j                  d«       y | j                  d«       d}| j                  j	                  d«       | j                  j                  |«      }|r9| j                  j                  |«       | j                  j                  |«      }|rŒ9| j                  j                  «        t        j                  | j                  «       | j                  d«       y )Nr‘  i   r   )rq   r   r£  r  ÚseekÚreadr§  r(  r'  rÈ  Úunlinkr  r¦  )r(   Ú	buff_sizer·  s      r.   r6  z%Worksheet._write_optimized_sheet_data=  s½   € ð �?‰?Ð"à×Ñ Õ,à×Ñ Ô,ð ˆIØ×Ñ×!Ñ! !Ô$Ø×#Ñ#×(Ñ(¨Ó3ˆDáØ—‘—‘˜dÔ#Ø×'Ñ'×,Ñ,¨YÓ7�ò ð ×Ñ×"Ñ"Ô$Ü�I‰I�d×,Ñ,Ô-à×Ñ˜kÕ*r2   c                 óÈ   — d| j                   fd| j                  fd| j                  fd| j                  fd| j                  fd| j
                  fg}| j                  d|«       y )NrÐ  rÑ  r«  r­  r‰   rŠ   ÚpageMargins)r�   r‘   r’   r“   r”   r•   r   ru  s     r.   r@  zWorksheet._write_page_marginsU  so   € ð �T×%Ñ%Ð&Ø�d×'Ñ'Ð(Ø�D—O‘OÐ$Ø�t×)Ñ)Ð*Ø�t×)Ñ)Ð*Ø�t×)Ñ)Ð*ð
ˆ
ð 	×Ñ˜M¨:Õ6r2   c                 óœ  — g }| j                   sy | j                  r|j                  d| j                  f«       | j                  dk7  r|j                  d| j                  f«       | j                  r,| j
                  dk7  r|j                  d| j
                  f«       | j                  r,| j                  dk7  r|j                  d| j                  f«       | j                  r|j                  d«       | j                  dkD  r|j                  d| j                  f«       | j                  r|j                  d	«       n|j                  d
«       | j                  r|j                  d«       | j                  dk7  r|j                  d«       | j                  rS| j                  r|j                  d| j                  f«       | j                  rp|j                  d| j                  f«       nR| j                  r|j                  d| j                  f«       | j                  r|j                  d| j                  f«       | j                  d|«       y )NÚ	paperSizerZ   r  r   Ú
fitToWidthÚfitToHeight)Ú	pageOrderÚoverThenDownÚfirstPageNumber)r€   Úportrait)r€   Ú	landscape)ÚblackAndWhiterB   r   )ÚuseFirstPageNumberrB   ÚhorizontalDpiÚverticalDpiÚ	pageSetup)r~   r   r¢  r«   rž   rŸ   r    r™   r�   r€   rš   ri   r
  r	  r   ru  s     r.   rA  zWorksheet._write_page_setupb  sõ  € ð& ˆ
ð ×&Ò&Øð �?Š?Ø×Ñ˜{¨D¯O©OÐ<Ô=ð ×Ñ˜sÒ"Ø×Ñ˜w¨×(8Ñ(8Ð9Ô:ð �=Š=˜TŸ^™^¨qÒ0Ø×Ñ˜|¨T¯^©^Ð<Ô=à�=Š=˜TŸ_™_°Ò1Ø×Ñ˜}¨d¯o©oÐ>Ô?ð �?Š?Ø×ÑÐ;Ô<ð �?‰?˜QÒØ×ÑÐ0°$·/±/ÐBÔCð ×ÒØ×ÑÐ9Õ:à×ÑÐ:Ô;ð ×ÒØ×ÑÐ4Ô5ð �?‰?˜aÒØ×ÑÐ9Ô:ð ×ÒØ×"Ò"Ø×!Ñ! ?°D×4GÑ4GÐ"HÔIà× Ò Ø×!Ñ! =°$×2CÑ2CÐ"DÕEà× Ò Ø×!Ñ! =°$×2CÑ2CÐ"DÔEà×"Ò"Ø×!Ñ! ?°D×4GÑ4GÐ"HÔIà×Ñ˜K¨Õ4r2   c                 ó.  — g }| j                   sy | j                  r|j                  d«       | j                  r|j                  d«       | j                  r|j                  d«       | j
                  r|j                  d«       | j                  d|«       y )N)ÚhorizontalCenteredr   )ÚverticalCenteredr   )Úheadingsr   )Ú	gridLinesr   ÚprintOptions)r�   r‚   r¢  rƒ   r†   r„   r   ru  s     r.   r?  zWorksheet._write_print_options°  s†   € àˆ
à×)Ò)Øð �<Š<Ø×ÑÐ7Ô8ð �<Š<Ø×ÑÐ5Ô6ð ×ÒØ×Ñ˜oÔ.ð ×ÒØ×ÑÐ.Ô/à×Ñ˜N¨JÕ7r2   c                 óŠ  — g }| j                   s|j                  d«       | j                  s|j                  d«       | j                  r\| j	                  d|«       | j
                  r| j                  «        | j                  r| j                  «        | j                  d«       y | j                  r| j                  d|«       y y )N)ÚscaleWithDocr   )ÚalignWithMarginsr   ÚheaderFooter)rŒ   r¢  r‹   rˆ   r£  r‰   Ú_write_odd_headerrŠ   Ú_write_odd_footerr¦  rm   r   ru  s     r.   rB  zWorksheet._write_header_footerÉ  s¢   € àˆ
à×(Ò(Ø×ÑÐ1Ô2à×(Ò(Ø×ÑÐ5Ô6à×%Ò%Ø×Ñ °
Ô;Ø�{Š{Ø×&Ñ&Ô(Ø�{Š{Ø×&Ñ&Ô(Ø×Ñ˜nÕ-Ø×!Ò!Ø×Ñ °
Õ;ð "r2   c                 ó<   — | j                  d| j                  «       y )NÚ	oddHeader)r¥  r‰   rå  s    r.   r²  zWorksheet._write_odd_headerÝ  ó   € à×Ñ˜{¨D¯K©KÕ8r2   c                 ó<   — | j                  d| j                  «       y )NÚ	oddFooter)r¥  rŠ   rå  s    r.   r³  zWorksheet._write_odd_footerá  r¶  r2   c                 óP  — | j                  «        t        | j                  | j                  dz   «      D �]o  }|| j                  v s|| j
                  v s| j                  |   sŒ0t        |dz  «      }|| j                  v r| j                  |   }nd }| j                  |   r³|| j                  vr| j                  ||«       n | j                  ||| j                  |   «       t        | j                  | j                  dz   «      D ]9  }|| j                  |   v sŒ| j                  |   |   }| j                  |||«       Œ; | j                  d«       �Œ || j
                  v r"| j                  ||| j                  |   «       �ŒP| j                  ||| j                  |   «       �Œr y )Nr   r  r!  )Ú_calculate_spansrs  rq   rr   r¨   rÇ   r¿   r&   rÃ   Ú
_write_rowrs   rt   Ú_write_cellr¦  Ú_write_empty_row)r(   r  Ú
span_indexrk  r  Úcol_refs         r.   r’  zWorksheet._write_rowså  su  € à×ÑÔä˜TŸ_™_¨d¯o©oÀÑ.AÓBó "	QˆGà˜4Ÿ=™=Ñ(Ø˜dŸm™mÑ+Ø—:‘:˜gÓ&ô ! ¨2¡Ó.�
à §¡Ñ/ØŸ>™>¨*Ñ5‘Dà�Dà—:‘:˜gÒ&à d§m¡mÑ3ØŸ™¨°Õ6àŸ™¨°°t·}±}ÀWÑ7MÔNä#(¨¯©¸$¿/¹/ÈAÑ:MÓ#Nò H˜Ø" d§j¡j°Ñ&9Ò9Ø&*§j¡j°Ñ&9¸'Ñ&B˜GØ ×,Ñ,¨W°g¸wÕGðHð
 ×%Ñ% eÖ,à §¡Ñ-à×)Ñ)¨'°4¸¿¹ÀwÑ9OÖPð ×)Ñ)¨'°4¸¿¹ÀwÑ9OÖPñE"	Qr2   c                 óz  — | j                   }|| _         || j                  v s|| j                  v s| j                  |   rãd }| j                  |   r²|| j                  vr| j	                  ||«       n | j	                  ||| j                  |   «       t        | j                  | j                  dz   «      D ]9  }|| j                  |   v sŒ| j                  |   |   }| j                  |||«       Œ; | j                  d«       n | j                  ||| j                  |   «       | j                  j                  «        y )Nr   r!  )rò   r¨   rÇ   r¿   r»  rs  rs   rt   r¼  r¦  r½  Úclear)r(   Úcurrent_row_numr  rk  r  r¿  s         r.   rC  zWorksheet._write_single_row  s  € ð ×#Ñ#ˆØ+ˆÔà�d—m‘mÑ# w°$·-±-Ñ'?À4Ç:Á:ÈgÒCVð ˆDà�z‰z˜'Ò"à $§-¡-Ñ/Ø—O‘O G¨TÕ2à—O‘O G¨T°4·=±=ÀÑ3IÔJä$ T§_¡_°d·o±oÈÑ6IÓJò D�GØ $§*¡*¨WÑ"5Ò5Ø"&§*¡*¨WÑ"5°gÑ">˜Ø×(Ñ(¨°'¸7ÕCðDð
 ×!Ñ! %Õ(ð ×%Ñ% g¨t°T·]±]À7Ñ5KÔLð 	�
‰
×ÑÕr2   c                 óŒ  — i }d }d }t        | j                  | j                  dz   «      D �]  }|| j                  v rPt        | j                  | j
                  dz   «      D ]*  }|| j                  |   v sŒ|€|}|}Œ||k  r|}||kD  sŒ)|}Œ, || j                  v r_t        | j                  | j
                  dz   «      D ]9  }|| j                  v sŒ|| j                  |   v sŒ$|€|}|}Œ+||k  r|}||kD  sŒ8|}Œ; |dz   dz  dk(  s|| j                  k(  sŒêt        |dz  «      }|€Œû|dz  }|dz  }|›d|›�||<   d }�Œ || _        y )Nr   r  r   r5   )	rs  rq   rr   r¿   rs   rt   rÇ   r&   rÃ   )r(   ÚspansÚspan_minÚspan_maxr  r  r¾  s          r.   rº  zWorksheet._calculate_spans2  sz  € ð
 ˆØˆØˆä˜TŸ_™_¨d¯o©oÀÑ.AÓBó "	$ˆGØ˜$Ÿ*™*Ñ$ä$ T§_¡_°d·o±oÈÑ6IÓJò 	3�GØ $§*¡*¨WÑ"5Ò5Ø#Ð+Ø'.˜HØ'.™Hà&¨Ò1Ø+2 Ø&¨Ó1Ø+2¡ð	3ð ˜$Ÿ-™-Ñ'ä$ T§_¡_°d·o±oÈÑ6IÓJò 	3�GØ $§-¡-Ò/°G¸t¿}¹}ÈWÑ?UÒ4UØ#Ð+Ø'.˜HØ'.™Hà&¨Ò1Ø+2 Ø&¨Ó1Ø+2¡ð	3ð ˜1‘ Ñ" aÒ'¨G°t·±Ó,FÜ  ¨2¡Ó.�
àÑ'Ø ‘M�HØ ‘M�HÚ3;¹XÐ(F�E˜*Ñ%Ø#’HðE"	$ðH ˆ�r2   c                 ó†  — d}|r	|\  }}}}	}
nd\  }}}}	}
|€| j                   }d|dz   fg}|r|j                  «       }|r|j                  d|f«       |r|j                  d|f«       |r|j                  d«       || j                  k7  r|j                  dd	|z  f«       |r|j                  d
«       || j                  k7  r|j                  d«       |	r|j                  d|	f«       |
r|j                  d«       | j                  dk(  r|j                  d«       |r| j                  d|«       y | j                  d|«       y )Nr   )NNr   r   r   rœ  r   rÄ  Ús)ÚcustomFormatr   Úhtz%g)rw   r   rx  r‹  )rÿ  r   r   r}  r!  )r·   rŒ  r¢  r¶   rl   Ú_xml_empty_tag_unencodedÚ_xml_start_tag_unencoded)r(   r!  rÄ  Ú
propertiesÚ	empty_rowr�  r$  r:  rw   r   rÿ  r°  s               r.   r»  zWorksheet._write_rowa  sW  € àˆáØ<FÑ9ˆF�K ¨±	à<OÑ9ˆF�K ¨°	àˆ>Ø×,Ñ,ˆFà˜C !™G�nÐ%ˆ
ñ Ø"×0Ñ0Ó2ˆHñ Ø×Ñ˜w¨Ð.Ô/áØ×Ñ˜s H˜oÔ.áØ×ÑÐ1Ô2à�T×-Ñ-Ò-Ø×Ñ˜t T¨F¡]Ð3Ô4áØ×Ñ˜mÔ,à�T×-Ñ-Ò-Ø×ÑÐ1Ô2áØ×Ñ˜~¨uÐ5Ô6áØ×ÑÐ.Ô/à×Ñ Ò%Ø×ÑÐ9Ô:áØ×)Ñ)¨%°Õ<à×)Ñ)¨%°Õ<r2   c                 ó.   — | j                  |||d¬«       y )NT)rÎ  )r»  )r(   r!  rÄ  rÍ  s       r.   r½  zWorksheet._write_empty_row”  s   € à�‰˜˜U J¸$ˆÕ?r2   c                 ó0  — t        ||«      }d|fg}|j                  r.|j                  j                  «       }|j                  d|f«       n—|| j                  v rF| j                  |   d   r4| j                  |   d   }|j                  d|j                  «       f«       nC|| j
                  v r5| j
                  |   d   }|�!|j                  d|j                  «       f«       |j                  j                  }	|	dv r| j                  |j                  |«       y |	dv r�|j                  }
| j                  s| j                  |
|«       y | j                  |
«      }
|
j                  d«      r$|
j                  d«      r| j!                  |
|«       y t#        |
«      }| j%                  |
||«       y |	dk(  rÄ|j&                  }t)        |j&                  t*        «      r#|j                  d	«       |j&                  rd}n`d
}n]t)        |j&                  t,        «      rCd}|j&                  dk(  rn1|j&                  |v r|j                  d«       n|j                  d«       | j/                  |j0                  ||«       y |	dk(  r›|j2                  dk(  r|j                  d«       	 t5        |j&                  «       | j9                  d|«       | j;                  |j0                  |j<                  «       | j?                  |j&                  «       | jA                  d«       y |	dk(  r| jC                  d|«       y |	dk(  rP|j                  d	«       | j9                  d|«       | j?                  |jD                  «       | jA                  d«       y |	dk(  rm|j                  d«       |j                  d|j&                  f«       | j9                  d|«       | j?                  |jF                  «       | jA                  d«       y y # t6        $ r |j                  d«       Y �Œbw xY w)Nrœ  rÈ  r   r  r  z<r>z</r>rL   )rž  r  r   )rM  z#N/Az#NAME?z#NULL!rL  z#REF!rÐ  rU   )rž  Úe)rž  r-  rN   rl  )Úcmr   ÚcrI   rK   rP   Úvm)$r   rJ   rŒ  r¢  r¨   ru   r  r  Ú_xml_number_elementrI  r9  rg   Ú_xml_string_elementÚ_escape_control_charactersr  r  Ú_xml_rich_inline_stringr   Ú_xml_inline_stringrZ  r3  r+  r-  Ú_xml_formula_elementrY  rt  r  r'   r£  Ú_write_cell_array_formulars  Ú_write_cell_valuer¦  r   r|  rm  )r(   r!  rC   r  ru  r°  r�  Úrow_xfÚcol_xfÚtype_cell_namer9  r�  rZ  Úerror_codess                 r.   r¼  zWorksheet._write_cell˜  sˆ  € ô ,¨C°Ó5ˆ
Ø˜JÐ'Ð(ˆ
à�;Š;à—{‘{×0Ñ0Ó2ˆHØ×Ñ˜s H˜oÕ.Ø�D—M‘MÑ! d§m¡m°CÑ&8¸Ò&;à—]‘] 3Ñ'¨Ñ*ˆFØ×Ñ˜s F×$8Ñ$8Ó$:Ð;Õ<Ø�D—M‘MÑ!à—]‘] 3Ñ'¨Ñ*ˆFØÐ!Ø×!Ñ! 3¨×(<Ñ(<Ó(>Ð"?Ô@àŸ™×0Ñ0ˆð Ð3Ñ3à×$Ñ$ T§[¡[°*Õ=àÐ7Ñ7à—[‘[ˆFà×'Ò'à×(Ñ(¨°Õ<ð
 ×8Ñ8¸Ó@�ð ×$Ñ$ UÔ+°·±ÀÔ0GØ×0Ñ0°¸ÕDô  3°6Ó:�HØ×+Ñ+¨F°H¸jÕIà˜yÒ(à—J‘JˆEÜ˜$Ÿ*™*¤dÔ+Ø×!Ñ! *Ô-Ø—:’:Ø‘Eà‘Eä˜DŸJ™J¬Ô,ð�ð —:‘: Ò#àØ—Z‘Z ;Ñ.Ø×%Ñ% jÕ1à×%Ñ% lÔ3à×%Ñ% d§l¡l°E¸:ÕFà˜~Ò-ð �z‰z˜YÒ&Ø×!Ñ! )Ô,ð0Ü�d—j‘jÔ!ð
 ×Ñ  ZÔ0à×*Ñ*¨4¯<©<¸¿¹ÔDØ×"Ñ" 4§:¡:Ô.Ø×Ñ˜cÕ"à˜wÒ&à×Ñ  ZÕ0à˜yÒ(à×Ñ˜jÔ)Ø×Ñ  ZÔ0Ø×"Ñ" 4§<¡<Ô0Ø×Ñ˜cÕ"à˜wÒ&à×Ñ˜jÔ)Ø×Ñ˜t T§Z¡ZÐ0Ô1Ø×Ñ  ZÔ0Ø×"Ñ" 4§:¡:Ô.Ø×Ñ˜cÕ"ð 'øô+ ò 0Ø×!Ñ! ,×/ð0ús   ÊO7 Ï7PÐPc                 ó0   — |€d}| j                  d|«       y )NrU   Úv©r¥  )r(   rZ  s     r.   rÜ  zWorksheet._write_cell_value  s   € àˆ=ØˆEà×Ñ˜s EÕ*r2   c                 ó6   — dd|fg}| j                  d||«       y )N)rž  Úarrayr6  r"  rã  )r(   rY  ru  r°  s       r.   rÛ  z#Worksheet._write_cell_array_formula  s#   € à$ u¨jÐ&9Ð:ˆ
à×Ñ˜s G¨ZÕ8r2   c                 ó"  — g }| j                   s1| j                  s%| j                  s| j                  s| j                  sy | j                  r|j                  d| j                  f«       | j                  r|j                  d«       | j                   s| j                  s| j                  rT| j                  d|«       | j                  «        | j                  «        | j                  «        | j                  d«       y | j                  d|«       y )NÚcodeName)Ú
filterModer   ÚsheetPr)rž   rÑ   ry   rµ   rù   r¢  r£  Ú_write_tab_colorÚ_write_outline_prÚ_write_page_set_up_prr¦  r   ru  s     r.   r0  zWorksheet._write_sheet_pr  sÒ   € àˆ
ð —’Ø—N’NØ—N’NØ×(Ò(Ø×%Ò%àà×ÒØ×Ñ˜z¨4×+<Ñ+<Ð=Ô>à�>Š>Ø×ÑÐ/Ô0à�=Š=˜DŸNšN¨d×.BÒ.BØ×Ñ 	¨:Ô6Ø×!Ñ!Ô#Ø×"Ñ"Ô$Ø×&Ñ&Ô(Ø×Ñ˜iÕ(à×Ñ 	¨:Õ6r2   c                 óH   — | j                   sy dg}| j                  d|«       y )N)Ú	fitToPager   ÚpageSetUpPr)rž   r   ru  s     r.   rì  zWorksheet._write_page_set_up_pr7  s$   € à�}Š}Øà&Ð'ˆ
Ø×Ñ˜M¨:Õ6r2   c                 óP   — | j                   }|sy d|fg}| j                  d|«       y )Nrþ  ÚtabColor)ry   r   )r(   r›  r°  s      r.   rê  zWorksheet._write_tab_color?  s-   € à—‘ˆáØà˜e�nÐ%ˆ
à×Ñ˜J¨
Õ3r2   c                 ó.  — g }| j                   sy | j                  r|j                  d«       | j                  s|j                  d«       | j                  s|j                  d«       | j
                  s|j                  d«       | j                  d|«       y )N)ÚapplyStylesr   )ÚsummaryBelowr   )ÚsummaryRightr   rh  Ú	outlinePr)rµ   r±   r¢  r²   r³   r´   r   ru  s     r.   rë  zWorksheet._write_outline_prJ  s�   € àˆ
à×#Ò#Øà×ÒØ×ÑÐ0Ô1Ø×!Ò!Ø×ÑÐ1Ô2Ø×!Ò!Ø×ÑÐ1Ô2Ø�ŠØ×ÑÐ7Ô8à×Ñ˜K¨Õ4r2   c                 óÞ   — | j                  | j                  «      }|sy t        |«      }d|fd|fg}| j                  d|«       |D ]  }| j	                  |d«       Œ | j                  d«       y )Nr-  ÚmanualBreakCountÚ	rowBreaksiÿ?  )rc  r¡   rA  r£  Ú
_write_brkr¦  )r(   Úpage_breaksr-  r°  r  s        r.   rC  zWorksheet._write_row_breaks\  s~   € à×+Ñ+¨D¯L©LÓ9ˆáØä�KÓ ˆð �eÐØ Ð'ð
ˆ
ð
 	×Ñ˜K¨Ô4à"ò 	,ˆGØ�O‰O˜G UÕ+ð	,ð 	×Ñ˜+Õ&r2   c                 óÞ   — | j                  | j                  «      }|sy t        |«      }d|fd|fg}| j                  d|«       |D ]  }| j	                  |d«       Œ | j                  d«       y )Nr-  rø  Ú	colBreaksiÿÿ )rc  r¢   rA  r£  rú  r¦  )r(   rû  r-  r°  r  s        r.   rD  zWorksheet._write_col_breaksq  s~   € à×+Ñ+¨D¯L©LÓ9ˆáØä�KÓ ˆð �eÐØ Ð'ð
ˆ
ð
 	×Ñ˜K¨Ô4à"ò 	.ˆGØ�O‰O˜G WÕ-ð	.ð 	×Ñ˜+Õ&r2   c                 ó:   — d|fd|fdg}| j                  d|«       y )Nr   rù  )Úmanr   Úbrk©r   )r(   Úbrk_idÚbrk_maxr°  s       r.   rú  zWorksheet._write_brk†  s'   € à˜V�n u¨gÐ&6¸
ÐCˆ
à×Ñ˜E :Õ.r2   c                 ó¸   — | j                   }t        |«      }|sy d|fg}| j                  d|«       |D ]  }| j                  |«       Œ | j	                  d«       y )Nr-  Ú
mergeCells)rÀ   rA  r£  Ú_write_merge_cellr¦  )r(   rÁ   r-  r°  Úmerged_ranges        r.   r;  zWorksheet._write_merge_cellsŒ  se   € à—z‘zˆÜ�LÓ!ˆáØà Ð&Ð'ˆ
à×Ñ˜L¨*Ô5à(ò 	1ˆLà×"Ñ" <Õ0ð	1ð 	×Ñ˜,Õ'r2   c                 ó€   — |\  }}}}t        ||«      }t        ||«      }|dz   |z   }d|fg}	| j                  d|	«       y )Nr5   r6  Ú	mergeCell)r   r   )
r(   r  Úrow_minr�  rÕ  rÖ  r9   r:   r6  r°  s
             r.   r  zWorksheet._write_merge_cellž  sS   € à/;Ñ,ˆ�'˜7 Gô # 7¨GÓ4ˆÜ" 7¨GÓ4ˆØ�s‰l˜VÑ#ˆà˜c�l�^ˆ
à×Ñ˜K¨Õ4r2   c                 ó|  — g }d }t        | j                  j                  «       «      }|sy |D �](  }t        | j                  |   j                  «       «      }|D ]ú  }| j                  |   |   }|d   }| j                  rQ| j                  |   rB| j                  |   |   r0| j                  |   |   }	|	j                  j
                  dk7  r|d   }|dk(  r_| xj                  dz  c_        |j                  |||| j                  |d   ||d   g«       | j                  j                  d|d   dg«       ŒÛ|j                  ||||d   |d   |d   g«       Œü �Œ+ | j                  d	«       |D ]=  }
|
j                  d
«      }|dk(  r | j                  |
Ž  Œ)|dk(  sŒ/ | j                  |
Ž  Œ? | j                  d	«       y )Nr�  rG   r�  r   r-  r‚  rˆ  r‰  rû   r   r†  )r  rû   r}  r¿   r  r  rÙ   r¢  rÜ   r£  r   Ú_write_hyperlink_externalÚ_write_hyperlink_internalr¦  )r(   rÛ   Údisplayrä  r  rå  r  Úlinkr�  r  r)   s              r.   r>  zWorksheet._write_hyperlinks«  sè  € ð ˆ
Øˆô ˜$Ÿ/™/×.Ñ.Ó0Ó1ˆñ Øð  ó 0	ˆGä˜dŸo™o¨gÑ6×;Ñ;Ó=Ó>ˆHð $ò +�à—‘ wÑ/°Ñ8�Ø  Ñ-�	ð —:’: $§*¡*¨WÒ"5¸$¿*¹*ÀWÑ:MÈgÒ:VØŸ:™: gÑ.¨wÑ7�DØ—~‘~×.Ñ.°(Ò:Ø"& u¡+˜à ’>à—N’N aÑ'•Nà×%Ñ%à%Ø#Ø#Ø ŸN™NØ  ™KØ#Ø  ™Kðô
ð ×-Ñ-×4Ñ4Ø% t¨E¡{°JÐ?õð
 ×%Ñ%à%Ø#Ø#Ø  ™KØ  ™KØ  ™Kðõ	òE+ð0	ðf 	×Ñ˜LÔ)àò 	6ˆDØŸ™ ›ˆIà˜AŠ~Ø.�×.Ñ.°Ò5Ø˜a“Ø.�×.Ñ.°Ò5ð	6ð 	×Ñ˜,Õ'r2   c                 óê   — t        ||«      }dt        |«      z   }d|fd|fg}	|�|	j                  d|f«       |�|	j                  d|f«       |�|	j                  d|f«       | j                  d|	«       y )NÚrIdr6  úr:idrL  r  Útooltipr.  )r   r-  r¢  r   )
r(   r!  rC   Úid_numrL  r  r  r6  Úr_idr°  s
             r.   r  z#Worksheet._write_hyperlink_externalù  s‹   € ô    SÓ)ˆØ”s˜6“{Ñ"ˆà˜c�l V¨T NÐ3ˆ
àÐØ×Ñ˜z¨8Ð4Ô5ØÐØ×Ñ˜y¨'Ð2Ô3ØÐØ×Ñ˜y¨'Ð2Ô3à×Ñ˜K¨Õ4r2   c                 ó    — t        ||«      }d|fd|fg}|�|j                  d|f«       |j                  d|f«       | j                  d|«       y )Nr6  rL  r  r  r.  )r   r¢  r   )r(   r!  rC   rL  r  r  r6  r°  s           r.   r  z#Worksheet._write_hyperlink_internal  s_   € ô    SÓ)ˆà˜c�l Z°Ð$:Ð;ˆ
àÐØ×Ñ˜y¨'Ð2Ô3Ø×Ñ˜9 gÐ.Ô/à×Ñ˜K¨Õ4r2   c                 óà   — | j                   sy d| j                   fg}| j                  r4| j                  d|«       | j                  «        | j	                  d«       y | j                  d|«       y )Nr6  Ú
autoFilter)rÏ   rÑ   r£  Ú_write_autofiltersr¦  r   ru  s     r.   r:  zWorksheet._write_auto_filter  sd   € à×"Ò"Øà˜d×1Ñ1Ð2Ð3ˆ
à�>Š>à×Ñ ¨jÔ9Ø×#Ñ#Ô%Ø×Ñ˜lÕ+ð ×Ñ ¨jÕ9r2   c                 óÐ   — | j                   \  }}t        ||dz   «      D ]E  }|| j                  vrŒ| j                  |   }| j                  |   }| j	                  ||z
  ||«       ŒG y r  )rÐ   rs  rÒ   rÓ   Ú_write_filter_column)r(   Úcol1Úcol2rC   rª  rÓ   s         r.   r  zWorksheet._write_autofilters*  sz   € ð ×(Ñ(‰ˆˆtä˜˜t a™xÓ(ò 
	GˆCà˜$×*Ñ*Ñ*Øð ×%Ñ% cÑ*ˆFØ×*Ñ*¨3Ñ/ˆKð ×%Ñ% c¨D¡j°+¸vÕFñ
	Gr2   c                 ó¤   — d|fg}| j                  d|«       |dk(  r| j                  |«       n| j                  |«       | j                  d«       y )NÚcolIdÚfilterColumnr   )r£  Ú_write_filtersÚ_write_custom_filtersr¦  )r(   r9  rÓ   rE  r°  s        r.   r  zWorksheet._write_filter_column;  sS   € à Ð'Ð(ˆ
à×Ñ˜N¨JÔ7à˜!Òà×Ñ Õ(ð ×&Ñ& wÔ/à×Ñ˜.Õ)r2   c                 ó„  — |D �cg c]!  }t        |«      j                  «       dk7  sŒ |‘Œ# }}g }t        |«      t        |«      k7  rdg}t        |«      dk(  r!t        |«      dk(  r| j                  d|«       y | j	                  d|«       t        |«      D ]  }| j                  |«       Œ | j                  d«       y c c}w )Nr°  )rS  r   r   r   rE  )r-  r1  rA  r   r£  r  Ú_write_filterr¦  )r(   rE  ÚfilterÚ
non_blanksr°  r7  s         r.   r!  zWorksheet._write_filtersJ  s¶   € à+2ÖV ´c¸&³k×6GÑ6GÓ6IÈXÓ6U’fÐVˆ
ÐVØˆ
äˆw‹<œ3˜z›?Ò*Ø&˜ˆJäˆw‹<˜1Ò¤ Z£°AÒ!5à×Ñ 	¨:Õ6ð ×Ñ 	¨:Ô6ä$ ZÓ0ò /�
Ø×"Ñ" :Õ.ð/ð ×Ñ˜iÕ(ùò! Ws
   …!B=§B=c                 ó2   — d|fg}| j                  d|«       y )Nr  r%  r  r<  s      r.   r$  zWorksheet._write_filter^  s   € à˜c�l�^ˆ
à×Ñ˜H jÕ1r2   c                 óL  — t        |«      dk(  r2| j                  d«        | j                  |Ž  | j                  d«       y g }|d   dk(  rdg}ndg}| j                  d|«       | j                  |d   |d   «       | j                  |d   |d   «       | j                  d«       y )	Nr†  ÚcustomFiltersr   )Úandr   )r*  r   r   rV   r;  )rA  r£  Ú_write_custom_filterr¦  )r(   rª  r°  s      r.   r"  zWorksheet._write_custom_filtersd  s¬   € äˆv‹;˜!Òà×Ñ Ô0Ø%ˆD×%Ñ% vÑ.Ø×Ñ˜oÕ.ð ˆJð �a‰y˜AŠ~Ø(˜\‘
à(˜\�
ð ×Ñ °Ô<Ø×%Ñ% f¨Q¡i°¸±Ô;Ø×%Ñ% f¨Q¡i°¸±Ô;Ø×Ñ˜oÕ.r2   c                 óÈ   — g }ddddddddœ}||   �||   }nt        d|z  «       |dk7  r|j                  d	|f«       |j                  d
|f«       | j                  d|«       y )Nrk  ra  rq  rh  rd  rn  )r   r†  rV   r;  r  rr  rw  zUnknown operator = %sry  r  ÚcustomFilter)r   r¢  r   )r(   ry  r  r°  rx  s        r.   r+  zWorksheet._write_custom_filter{  s‰   € àˆ
ð ØØ ØØØ#Øñ
ˆ	ð �XÑÐ*Ø  Ñ*‰HäÐ(¨8Ñ3Ô4ð �wÒØ×Ñ˜z¨8Ð4Ô5Ø×Ñ˜5 #˜,Ô'à×Ñ˜N¨JÕ7r2   c                 ó€  — g }| j                   sy | j                   }|d   r|j                  d|d   f«       |d   r|j                  d«       |d   r|j                  d«       |d   s|j                  d«       |d   s|j                  d	«       |d
   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d   s|j                  d«       |d   r|j                  d«       |d   r|j                  d«       |d    r|j                  d!«       |d"   s|j                  d#«       | j                  d$|«       y )%Nr®  rž  )rž  r   rŸ  )rŸ  r   r   )r   r   r¡  )r¡  r   r¢  )ÚformatCellsr   r£  )ÚformatColumnsr   r¤  )Ú
formatRowsr   r¥  )ÚinsertColumnsr   r¦  )Ú
insertRowsr   r§  )ÚinsertHyperlinksr   r¨  )ÚdeleteColumnsr   r©  )Ú
deleteRowsr   rª  )ÚselectLockedCellsr   r«  )r«  r   r7  )r  r   r¬  )ÚpivotTablesr   r­  )ÚselectUnlockedCellsr   ÚsheetProtection)r£   r¢  r   )r(   r°  rÌ  s      r.   r7  z!Worksheet._write_sheet_protection–  s×  € àˆ
à×#Ò#Øà×&Ñ&ˆà�:ÒØ×Ñ˜z¨7°:Ñ+>Ð?Ô@Ø�7ÒØ×Ñ˜lÔ+Ø�9ÒØ×Ñ˜nÔ-Ø�yÒ!Ø×Ñ˜nÔ-Ø�{Ò#Ø×ÑÐ.Ô/Ø�>Ò"Ø×ÑÐ0Ô1ØÐ#Ò$Ø×ÑÐ2Ô3Ø�=Ò!Ø×ÑÐ/Ô0ØÐ#Ò$Ø×ÑÐ2Ô3Ø�=Ò!Ø×ÑÐ/Ô0ØÐ&Ò'Ø×ÑÐ5Ô6ØÐ#Ò$Ø×ÑÐ2Ô3Ø�=Ò!Ø×ÑÐ/Ô0ØÐ,Ò-Ø×ÑÐ6Ô7Ø�6Š?Ø×Ñ˜kÔ*Ø�<Ò Ø×ÑÐ/Ô0Ø�>Ò"Ø×ÑÐ0Ô1ØÐ.Ò/Ø×ÑÐ8Ô9à×ÑÐ-¨zÕ:r2   c                 ó¸   — | j                   dk(  ry | j                  d«       | j                  D ]  \  }}}| j                  |||«       Œ | j	                  d«       y )Nr   ÚprotectedRanges)r¥   r£  r¤   Ú_write_protected_ranger¦  r´  s       r.   r8  z!Worksheet._write_protected_rangesÆ  sc   € à×$Ñ$¨Ò)Øà×ÑÐ-Ô.à04×0EÑ0Eò 	JÑ,ˆJ˜
 HØ×'Ñ'¨
°JÀÕIð	Jð 	×ÑÐ+Õ,r2   c                 ó¢   — g }|r|j                  d|f«       |j                  d|f«       |j                  d|f«       | j                  d|«       y )Nr®  r~  rc   ÚprotectedRange©r¢  r   )r(   ru  rµ  r®  r°  s        r.   r=  z Worksheet._write_protected_rangeÒ  sT   € àˆ
áØ×Ñ˜z¨8Ð4Ô5à×Ñ˜7 JÐ/Ô0Ø×Ñ˜6 :Ð.Ô/à×ÑÐ,¨jÕ9r2   c                 ó~   — | j                   sy | xj                  dz  c_        | j                  | j                  «       y r  )rê   rÙ   Ú_write_drawingrå  s    r.   rF  zWorksheet._write_drawingsÞ  s,   € à�|Š|Øà�Š˜!Ñ�Ø×Ñ˜DŸN™NÕ+r2   c                 óN   — dt        |«      z   }d|fg}| j                  d|«       y )Nr  r  rê   ©r-  r   )r(   r•  r  r°  s       r.   rB  zWorksheet._write_drawingæ  s,   € à”s˜:“Ñ&ˆà˜t�nÐ%ˆ
à×Ñ˜I zÕ2r2   c                 ó¦   — | j                   sy | xj                  dz  c_        dt        | j                  «      z   }d|fg}| j                  d|«       y )Nr   r  r  ÚlegacyDrawing)rÄ   rÙ   r-  r   ©r(   r  r°  s      r.   rG  zWorksheet._write_legacy_drawingî  sK   € à�|Š|Øð 	�Š˜!Ñ�Ø”s˜4Ÿ>™>Ó*Ñ*ˆà˜t�nÐ%ˆ
à×Ñ˜O¨ZÕ8r2   c                 ó¦   — | j                   sy | xj                  dz  c_        dt        | j                  «      z   }d|fg}| j                  d|«       y )Nr   r  r  ÚlegacyDrawingHF)rÅ   rÙ   r-  r   rG  s      r.   rH  z"Worksheet._write_legacy_drawing_hfû  sN   € à×"Ò"Øð 	�Š˜!Ñ�Ø”s˜4Ÿ>™>Ó*Ñ*ˆà˜t�nÐ%ˆ
à×ÑÐ-¨zÕ:r2   c                 ó¦   — | j                   sy | xj                  dz  c_        dt        | j                  «      z   }d|fg}| j                  d|«       y )Nr   r  r  Úpicture)rï   rÙ   r-  r   rG  s      r.   rI  zWorksheet._write_picture  sM   € à×$Ò$Øð 	�Š˜!Ñ�Ø”s˜4Ÿ>™>Ó*Ñ*ˆà˜t�nÐ%ˆ
à×Ñ˜I zÕ2r2   c                 ó¸   — | j                   }t        |«      }|sy d|fg}| j                  d|«       |D ]  }| j                  |«       Œ | j	                  d«       y )Nr-  ÚdataValidations)ró   rA  r£  Ú_write_data_validationr¦  )r(   ró   r-  r°  Ú
validations        r.   r=  z!Worksheet._write_data_validations  si   € à×&Ñ&ˆÜ�KÓ ˆáØà Ð&Ð'ˆ
à×ÑÐ-¨zÔ:à%ò 	4ˆJà×'Ñ'¨
Õ3ð	4ð 	×ÑÐ+Õ,r2   c                 ó  — d}g }|d   D ]6  }|dk7  r|dz  }|\  }}}}||kD  r||}}||kD  r||}}|t        ||||«      z  }Œ8 |j                  d«      r|d   }|d   dk7  r4|j                  d|d   f«       |d   d	k7  r|j                  d
|d   f«       d|v r2|d   dk(  r|j                  d«       |d   dk(  r|j                  d«       |d   r|j                  d«       |d   s|j                  d«       |d   r|j                  d«       |d   r|j                  d«       d|v r|j                  d|d   f«       d|v r|j                  d|d   f«       d|v r|j                  d|d   f«       d|v r|j                  d|d   f«       |j                  d |f«       |d   dk(  r| j                  d!|«       y | j	                  d!|«       | j                  |d"   «       |d#   �| j                  |d#   «       | j                  d!«       y )$NrU   rz  r  rQ  rK  rV  r4  r?  r]  ry  rL  r   )Ú
errorStylert  r†  )rQ  ru  rS  )Ú
allowBlankr   rJ  )ÚshowDropDownr   rN  )ÚshowInputMessager   rM  )ÚshowErrorMessager   rO  Ú
errorTitlerT  rm  rP  ÚpromptTitlerU  Úpromptr~  ÚdataValidationrZ  rH  )r   rÇ  r¢  r   r£  Ú_write_formula_1Ú_write_formula_2r¦  )	r(   rÌ  r~  r°  rz  Ú	row_firstrA  Úrow_lastrB  s	            r.   rN  z Worksheet._write_data_validation'  s  € àˆØˆ
ð ˜WÑ%ò 	HˆEà˜Š{Ø˜‘�à9>Ñ6ˆY˜	 8¨Xð ˜8Ò#Ø)1°9˜H�à˜8Ò#Ø)1°9˜H�à”X˜i¨°H¸hÓGÑG‰Eð	Hð  �;‰;�}Ô%Ø˜MÑ*ˆEà�:Ñ &Ò(Ø×Ñ˜v w¨zÑ':Ð;Ô<à�zÑ" iÒ/Ø×!Ñ! :¨w°zÑ/BÐ"CÔDà˜7Ñ"Ø�|Ñ$¨Ò)Ø×!Ñ!Ð";Ô<Ø�|Ñ$¨Ò)Ø×!Ñ!Ð"?Ô@à�>Ò"Ø×ÑÐ/Ô0à�zÒ"Ø×ÑÐ1Ô2à�<Ò Ø×ÑÐ5Ô6à�<Ò Ø×ÑÐ5Ô6à˜GÑ#Ø×Ñ˜|¨W°]Ñ-CÐDÔEà˜gÑ%Ø×Ñ˜w¨°Ñ(@ÐAÔBà˜GÑ#Ø×Ñ˜}¨g°mÑ.DÐEÔFà˜gÑ%Ø×Ñ˜x¨°Ñ)AÐBÔCà×Ñ˜7 EÐ*Ô+à�:Ñ &Ò(Ø×ÑÐ 0°*Õ=à×ÑÐ 0°*Ô=ð ×!Ñ! '¨'Ñ"2Ô3ð �yÑ!Ð-Ø×%Ñ% g¨iÑ&8Ô9à×ÑÐ.Õ/r2   c                 óì   — t        |t        «      r | j                  |Ž }d|z  }n	 t        |«       | j                  d|«       y # t        $ r% |j                  d«      r|j                  d«      }Y Œ@w xY w)Nz"%s"r  Úformula1)r3  rŸ  r~  r  r'   r  r  r¥  ©r(   rY  s     r.   rZ  zWorksheet._write_formula_1t  st   € ô �gœtÔ$Ø$�d—n‘n gÐ.ˆGØ˜wÑ&‰Gð2Ü�g”ð 	×Ñ˜z¨7Õ3øô ò 2à×%Ñ% cÔ*Ø%Ÿn™n¨SÓ1�Gùð2ús   §A Á+A3Á2A3c                 ó¢   — 	 t        |«       | j	                  d|«       y # t        $ r% |j                  d«      r|j                  d«      }Y Œ@w xY w)Nr  Úformula2©r  r'   r  r  r¥  r`  s     r.   r[  zWorksheet._write_formula_2…  sN   € ð	.Ü�'ŒNð 	×Ñ˜z¨7Õ3øô ò 	.à×!Ñ! #Ô&Ø!Ÿ.™.¨Ó-�ùð	.úó   ‚   +AÁAc                 óœ   — t        | j                  j                  «       «      }|sy |D ]!  }| j                  || j                  |   «       Œ# y rP  )r  rô   r}  Ú_write_conditional_formatting)r(   ra  Ú
cond_ranges      r.   r<  z$Worksheet._write_conditional_formats’  sN   € ä˜×)Ñ)×.Ñ.Ó0Ó1ˆáØà ò 	ˆJØ×.Ñ.Ø˜D×-Ñ-¨jÑ9õñ	r2   c                 ó„   — d|fg}| j                  d|«       |D ]  }| j                  |«       Œ | j                  d«       y )Nr~  ÚconditionalFormatting)r£  Ú_write_cf_ruler¦  )r(   rg  rÔ  r°  Úparams        r.   rf  z'Worksheet._write_conditional_formattingž  sN   € à 
Ð+Ð,ˆ
Ø×ÑÐ3°ZÔ@Øò 	'ˆEà×Ñ Õ&ð	'ð 	×ÑÐ1Õ2r2   c                 ó*	  — d|d   fg}d|v r|d   �|j                  d|d   f«       |j                  d|d   f«       |j                  d«      r|j                  d«       |d   dk(  r|j                  d|d	   f«       | j                  d
|«       d|v r-d|v r)| j                  |d   «       | j                  |d   «       n| j                  |d   «       | j	                  d
«       y |d   dk(  r»t        j                  d|d	   «      r|j                  d«       t        j                  d|d	   «      r|j                  d«       t        j                  d|d	   «      r;t        j                  d|d	   «      }|j                  d|j                  d«      f«       | j                  d
|«       y |d   dk(  rad	|v r|d	   dk(  r|j                  d«       d|v r|j                  d«       |d   xs d}|j                  d|f«       | j                  d
|«       y |d   dk(  r| j                  d
|«       y |d   dk(  r| j                  d
|«       y |d   d k(  s|d   d!k(  s|d   d"k(  s|d   d#k(  rd|j                  d|d	   f«       |j                  d$|d   f«       | j                  d
|«       | j                  |d%   «       | j	                  d
«       y |d   d&k(  rN|j                  d&|d	   f«       | j                  d
|«       | j                  |d%   «       | j	                  d
«       y |d   d'k(  s|d   d(k(  s|d   d)k(  s|d   d*k(  r8| j                  d
|«       | j                  |d%   «       | j	                  d
«       y |d   d+k(  r5| j                  d
|«       | j                  |«       | j	                  d
«       y |d   d,k(  rW| j                  d
|«       | j                  |«       |j                  d-«      r| j                  |«       | j	                  d
«       y |d   d.k(  r8| j                  d
|«       | j                  |d	   «       | j	                  d
«       y |d   d/k(  r5| j                  d
|«       | j                  |«       | j	                  d
«       y y )0Nr4  rJ   ÚdxfIdró  r˜  )Ú
stopIfTruer   r¤  ry  r?  ÚcfRulerI  rH  rZ  r¦  Úbelow)r¦  r   ra  )ÚequalAverager   z[123] std devz([123]) std devr+  r   r¬  ru  )rH  r   r¿  )r­  r   r’  Úrankr¨  rª  rÁ  rõ  rÃ  rÄ  rÚ  rY  r¯  r±  r³  rµ  r·  r÷  r»  rô  r¼  r½  )r¢  rÇ  r£  Ú_write_formula_elementr¦  r  r_  Úgroupr   Ú_write_color_scaleÚ_write_data_barÚ_write_data_bar_extÚ_write_icon_set)r(   rÔ  r°  r  rr  s        r.   rj  zWorksheet._write_cf_rule§  sž  € à˜v f™~Ð.Ð/ˆ
à�vÑ &¨Ñ"2Ð">Ø×Ñ˜w¨¨xÑ(8Ð9Ô:à×Ñ˜: v¨jÑ'9Ð:Ô;à�:‰:�nÔ%Ø×ÑÐ/Ô0à�&‰>˜XÒ%Ø×Ñ˜z¨6°*Ñ+=Ð>Ô?à×Ñ ¨*Ô5à˜FÑ" y°FÑ':Ø×+Ñ+¨F°9Ñ,=Ô>Ø×+Ñ+¨F°9Ñ,=Õ>à×+Ñ+¨F°7©OÔ<à×Ñ˜hÕ'à�F‰^˜~Ò-Ü�y‰y˜ &¨Ñ"4Ô5Ø×!Ñ!Ð"5Ô6ä�y‰y˜ &¨Ñ"4Ô5Ø×!Ñ!Ð"5Ô6ä�y‰y˜¨&°Ñ*<Ô=ÜŸ	™	Ð"3°V¸JÑ5GÓH�Ø×!Ñ! 8¨U¯[©[¸«^Ð"<Ô=à×Ñ ¨*Õ5à�F‰^˜wÒ&Ø˜VÑ#¨¨zÑ(:¸cÒ(AØ×!Ñ! .Ô1à˜fÑ$Ø×!Ñ! -Ô0à˜'‘?Ò( bˆDØ×Ñ˜v t˜nÔ-à×Ñ ¨*Õ5à�F‰^Ð0Ò0Ø×Ñ ¨*Õ5à�F‰^˜~Ò-Ø×Ñ ¨*Õ5ð �6‰N˜nÒ,Ø�f‰~Ð!2Ò2Ø�f‰~ Ò-Ø�f‰~ Ò+à×Ñ˜z¨6°*Ñ+=Ð>Ô?Ø×Ñ˜v v¨g¡Ð7Ô8Ø×Ñ ¨*Ô5Ø×'Ñ'¨¨yÑ(9Ô:Ø×Ñ˜hÕ'à�F‰^˜|Ò+Ø×Ñ˜|¨V°JÑ-?Ð@ÔAØ×Ñ ¨*Ô5Ø×'Ñ'¨¨yÑ(9Ô:Ø×Ñ˜hÕ'ð �6‰NÐ.Ò.Ø�f‰~Ð!4Ò4Ø�f‰~Ð!1Ò1Ø�f‰~Ð!4Ò4à×Ñ ¨*Ô5Ø×'Ñ'¨¨yÑ(9Ô:Ø×Ñ˜hÕ'à�F‰^˜|Ò+Ø×Ñ ¨*Ô5Ø×#Ñ# FÔ+Ø×Ñ˜hÕ'à�F‰^˜yÒ(Ø×Ñ ¨*Ô5Ø× Ñ  Ô(à�z‰zÐ,Ô-Ø×(Ñ(¨Ô0à×Ñ˜hÕ'à�F‰^˜|Ò+Ø×Ñ ¨*Ô5Ø×'Ñ'¨¨zÑ(:Ô;Ø×Ñ˜hÕ'à�F‰^˜yÒ(Ø×Ñ ¨*Ô5Ø× Ñ  Ô(Ø×Ñ˜hÕ'ð )r2   c                 ó¢   — 	 t        |«       | j	                  d|«       y # t        $ r% |j                  d«      r|j                  d«      }Y Œ@w xY w)Nr  rY  rc  r`  s     r.   rs  z Worksheet._write_formula_element  sN   € ð	.Ü�'ŒNð 	×Ñ˜y¨'Õ2øô ò 	.à×!Ñ! #Ô&Ø!Ÿ.™.¨Ó-�ùð	.úrd  c                 ój  — | j                  d«       | j                  |d   |d   «       |d   �| j                  |d   |d   «       | j                  |d   |d   «       | j                  d|d	   «       |d
   �| j                  d|d
   «       | j                  d|d   «       | j                  d«       y )Nr÷  r‹  r“  rŠ  r‘  r‰  r�  rþ  r’  r�  rŽ  )r£  Ú_write_cfvor)  r¦  )r(   rk  s     r.   ru  zWorksheet._write_color_scale   sÃ   € ð 	×Ñ˜LÔ)à×Ñ˜˜zÑ*¨E°+Ñ,>Ô?à�ÑÐ(Ø×Ñ˜U :Ñ.°°kÑ0BÔCà×Ñ˜˜zÑ*¨E°+Ñ,>Ô?à×Ñ˜%  {Ñ!3Ô4à�ÑÐ)Ø×Ñ˜e U¨;Ñ%7Ô8à×Ñ˜%  {Ñ!3Ô4à×Ñ˜,Õ'r2   c                 ó¸  — g }|j                  d«      r|j                  d|d   f«       |j                  d«      r|j                  d|d   f«       |j                  d«      r|j                  d«       | j                  d|«       | j                  |d   |d	   «       | j                  |d
   |d   «       | j	                  d|d   «       | j                  d«       y )Nr—  Ú	minLengthr–  Ú	maxLengthrˆ  ©Ú	showValuer   r»  r‹  r“  r‰  r�  rþ  rŒ  )rÇ  r¢  r£  r{  r)  r¦  )r(   rk  r°  s      r.   rv  zWorksheet._write_data_bar5  sÓ   € àˆ
ð �9‰9�\Ô"Ø×Ñ˜{¨E°,Ñ,?Ð@ÔAà�9‰9�\Ô"Ø×Ñ˜{¨E°,Ñ,?Ð@ÔAà�9‰9�ZÔ Ø×ÑÐ.Ô/à×Ñ˜I zÔ2à×Ñ˜˜zÑ*¨E°+Ñ,>Ô?Ø×Ñ˜˜zÑ*¨E°+Ñ,>Ô?Ø×Ñ˜%  {Ñ!3Ô4à×Ñ˜)Õ$r2   c                 óL  — | j                   dz   }t        | j                  «      dz   }d||fz  }||d<   | j                  j                  |«       | j	                  d«       | j                  d«       | j                  d|«       | j                  d«       | j                  d«       y )Nr   z{DA7ABA51-AAAA-BBBB-%04X-%012X}ÚguidÚextLstz&{B025F937-C7B1-47D3-B67F-A62EFF666E3E}zx14:idÚext)rd   rA  rõ   r¢  r£  Ú
_write_extr¥  r¦  )r(   rk  Úworksheet_countÚdata_bar_countr‚  s        r.   rw  zWorksheet._write_data_bar_extL  s›   € ð Ÿ*™* q™.ˆÜ˜T×0Ñ0Ó1°AÑ5ˆØ0°OÀ^Ð3TÑTˆð ˆˆf‰Ø×Ñ×"Ñ" 5Ô)à×Ñ˜HÔ%Ø�‰Ð@ÔAØ×Ñ˜x¨Ô.Ø×Ñ˜%Ô Ø×Ñ˜(Õ#r2   c                 óT  — g }|d   dk7  rd|d   fg}|j                  d«      r|j                  d«       |j                  d«      r|j                  d«       | j                  d|«       t        |d   «      D ]  }| j	                  |d	   |d
   |d   «       Œ  | j                  d«       y )Nr”  rã  r½  r•  r  rœ  )rK  r   r‡  r4  rZ  r?  )rÇ  r¢  r£  Úreversedr{  r¦  )r(   rk  r°  Úicons       r.   rx  zWorksheet._write_icon_set^  s¹   € àˆ
ð �ÑÐ"2Ò2Ø$ e¨LÑ&9Ð:Ð;ˆJà�9‰9�\Ô"Ø×ÑÐ.Ô/à�9‰9�_Ô%Ø×Ñ˜nÔ-à×Ñ˜I zÔ2ô ˜U 7™^Ó,ò 	LˆDØ×Ñ˜T &™\¨4°©=¸$¸zÑ:JÕKð	Lð 	×Ñ˜)Õ$r2   c                 ó‚   — d|fg}|�|j                  d|f«       |r|j                  d«       | j                  d|«       y )Nr4  r  )Úgter   Úcfvor@  )r(   Úcf_typer  r?  r°  s        r.   r{  zWorksheet._write_cfvot  sG   € à˜wÐ'Ð(ˆ
àˆ?Ø×Ñ˜u c˜lÔ+áØ×Ñ˜jÔ)à×Ñ˜F JÕ/r2   c                 ó2   — ||fg}| j                  d|«       y r>  r  r?  s       r.   r)  zWorksheet._write_color€  s   € à˜U�m�_ˆ
à×Ñ˜G ZÕ0r2   c                 óD   — | j                   D ]  } | j                  |Ž  Œ y rP  )rv   Ú_write_selection)r(   Ú	selections     r.   rt  zWorksheet._write_selections†  s%   € àŸ™ò 	.ˆIØ!ˆD×!Ñ! 9Ò-ñ	.r2   c                 óª   — g }|r|j                  d|f«       |r|j                  d|f«       |r|j                  d|f«       | j                  d|«       y )Nr|  Ú
activeCellr~  r’  r@  )r(   r|  r}  r~  r°  s        r.   r‘  zWorksheet._write_selection‹  sX   € àˆ
áØ×Ñ˜v t˜nÔ-áØ×Ñ˜|¨[Ð9Ô:áØ×Ñ˜w¨Ð.Ô/à×Ñ˜K¨Õ4r2   c                 ó‚   — | j                   }t        |«      sy |d   dk(  r | j                  |Ž  y  | j                  |Ž  y )Nr;  r†  )r{   rA  Ú_write_split_panesÚ_write_freeze_panes)r(   r{   s     r.   rs  zWorksheet._write_panesš  s@   € à—
‘
ˆä�5ŒzØà�‰8�qŠ=Ø#ˆD×#Ñ# UÒ+à$ˆD×$Ñ$ eÒ,r2   c                 ó
  — g }|}|}t        ||«      }	d}
d}d}d}| j                  r| j                  d   \  }}}g | _        |rw|rud}
t        |d«      }t        d|«      }| j                  j                  d||g«       | j                  j                  d||g«       | j                  j                  d||g«       nC|r!d}
| j                  j                  d||g«       n d}
| j                  j                  d||g«       |dk(  rd}n
|dk(  rd}nd	}|r|j                  d
|f«       |r|j                  d|f«       |j                  d|	f«       |j                  d|
f«       |j                  d|f«       | j                  d|«       y )NrU   r   ÚbottomRightÚtopRightÚ
bottomLeftÚfrozenr   ÚfrozenSplitr7   ÚxSplitÚySplitrl  Ú
activePaneÚstater|  )r   rv   r¢  r   )r(   r!  rC   r‰  rŠ  r‹  r°  Úy_splitÚx_splitrz   r|   r¡  r}  r~  rD   Úrow_cellÚcol_cells                    r.   r—  zWorksheet._write_freeze_panes¦  sš  € àˆ
àˆØˆÜ)¨'°8Ó<ˆØˆØˆØˆØˆð �?Š?Ø&*§o¡o°aÑ&8Ñ#ˆQ�˜UØ ˆDŒOñ ‘3Ø'ˆKä(¨¨aÓ0ˆHÜ(¨¨CÓ0ˆHà�O‰O×"Ñ" J°¸(Ð#CÔDØ�O‰O×"Ñ" L°(¸HÐ#EÔFØ�O‰O×"Ñ" M°;ÀÐ#FÕGáØ$ˆKØ�O‰O×"Ñ" J°¸UÐ#CÕDð 'ˆKØ�O‰O×"Ñ" L°+¸uÐ#EÔFð ˜Š>Ø‰EØ˜!Š^Ø!‰EàˆEáØ×Ñ˜x¨Ð1Ô2áØ×Ñ˜x¨Ð1Ô2à×Ñ˜=¨-Ð8Ô9Ø×Ñ˜<¨Ð5Ô6Ø×Ñ˜7 EÐ*Ô+à×Ñ˜F JÕ/r2   c                 ó¨  — g }d}d}d}	d}
|}|}| j                   r| j                   d   \  }}	}
g | _         d}|rt        d|z  dz   «      }|r| j                  |«      }||k(  r9||k(  r4t        d|dz
  dz  dz  z   «      }t        d|dz
  dz  d	z  d
z  dz  z   «      }t        ||«      }|s|}	|}
|rw|rud}t        |d«      }t        d|«      }| j                   j	                  d||g«       | j                   j	                  d||g«       | j                   j	                  d|	|
g«       nC|r!d}| j                   j	                  d|	|
g«       n d}| j                   j	                  d|	|
g«       |r|j	                  dd|z  f«       |r|j	                  dd|z  f«       |j	                  d|f«       |r|j	                  d|f«       | j                  d|«       y )Nr   rU   r   r\   i,  r  r[   é†  rV   r;  r^   r™  rš  r›  rž  rw  rŸ  rl  r   r|  )rv   r&   Ú_calculate_x_split_widthr   r¢  r   )r(   r!  rC   r‰  rŠ  r‹  r°  Úhas_selectionr|   r}  r~  r¢  r£  rD   rz   r¤  r¥  s                    r.   r–  zWorksheet._write_split_panesÞ  s	  € àˆ
ØˆØˆØˆØˆàˆØˆð �?Š?Ø&*§o¡o°aÑ&8Ñ#ˆQ�˜UØ ˆDŒOØˆMñ Ü˜"˜w™,¨Ñ,Ó-ˆGáØ×3Ñ3°GÓ<ˆGð
 �cŠ>˜h¨#šoÜ˜# ¨3¡°"Ñ 4°rÑ 9Ñ9Ó:ˆGÜ˜3 '¨C¡-°2Ñ!5¸Ñ!9¸AÑ!=ÀÑ!BÑBÓCˆHä)¨'°8Ó<ˆñ Ø'ˆKØ!ˆEñ ‘3Ø'ˆKä(¨°!Ó4ˆHÜ(¨¨HÓ5ˆHà�O‰O×"Ñ" J°¸(Ð#CÔDØ�O‰O×"Ñ" L°(¸HÐ#EÔFØ�O‰O×"Ñ" M°;ÀÐ#FÕGáØ$ˆKØ�O‰O×"Ñ" J°¸UÐ#CÕDð 'ˆKØ�O‰O×"Ñ" L°+¸uÐ#EÔFñ Ø×Ñ˜x¨°7Ñ):Ð;Ô<áØ×Ñ˜x¨°7Ñ):Ð;Ô<à×Ñ˜=¨-Ð8Ô9áØ×Ñ˜|¨[Ð9Ô:à×Ñ˜F JÕ/r2   c                 óŽ   — d}d}|dk  rt        |||z   z  dz   «      }nt        ||z  dz   «      |z   }|dz  dz  }|dz  }|dz   }|S )	Nr  r  r   r  rV   r;  r\   r§  )r&   )r(   r  r¾  r¿  rÀ  ÚpointsÚtwipss          r.   r¨  z"Worksheet._calculate_x_split_width%  ss   € ð ˆØˆð �1Š9Ü˜ /°GÑ";Ñ<¸sÑBÓC‰Fä˜ Ñ0°3Ñ6Ó7¸'ÑAˆFð ˜!‘˜a‘ˆð ˜‘ˆð ˜‘ˆàˆr2   c                 óö   — | j                   }t        |«      }|sy d|fg}| j                  d|«       |D ]2  }| xj                  dz  c_        | j	                  | j                  «       Œ4 | j                  d«       y )Nr-  Ú
tablePartsr   )ræ   rA  r£  rÙ   Ú_write_table_partr¦  )r(   ræ   r-  r°  rD   s        r.   rJ  zWorksheet._write_table_parts<  s�   € à—‘ˆÜ�F“ˆñ Øð Øðð
ˆ
ð 	×Ñ˜L¨*Ô5àò 	3ˆAà�NŠN˜aÑ�NØ×"Ñ" 4§>¡>Õ2ð	3ð
 	×Ñ˜,Õ'r2   c                 óN   — dt        |«      z   }d|fg}| j                  d|«       y )Nr  r  Ú	tablePartrD  rG  s      r.   r¯  zWorksheet._write_table_partU  s8   € ð ”s˜4“yÑ ˆð Øðð
ˆ
ð 	×Ñ˜K¨Õ4r2   c                 óî   — t        | j                  «      }t        | j                  «      }|s|sy | j                  d«       |r| j	                  «        |r| j                  «        | j                  d«       y )Nrƒ  )rA  rõ   rç   r£  Ú_write_ext_list_data_barsÚ_write_ext_list_sparklinesr¦  )r(   Úhas_data_barsÚhas_sparkliness      r.   rK  zWorksheet._write_ext_listc  sd   € ä˜D×/Ñ/Ó0ˆÜ˜TŸ_™_Ó-ˆá¡^Øð 	×Ñ˜HÔ%áØ×*Ñ*Ô,áØ×+Ñ+Ô-à×Ñ˜(Õ#r2   c                 óÐ   — | j                  d«       | j                  d«       | j                  D ]  }| j                  |«       Œ | j	                  d«       | j	                  d«       y )Nz&{78C0D931-6437-407d-A8EE-F0AAD7539E65}zx14:conditionalFormattingsr„  )r…  r£  rõ   Ú"_write_conditional_formatting_2010r¦  )r(   rº  s     r.   r³  z#Worksheet._write_ext_list_data_barsv  sb   € à�‰Ð@ÔAà×ÑÐ8Ô9ð ×+Ñ+ò 	>ˆHà×3Ñ3°HÕ=ð	>ð 	×ÑÐ6Ô7Ø×Ñ˜%Õ r2   c                 óB  — d}d|fg}| j                  d|«       | j                  |«       | j                  |«       | j                  |d   |d   «       | j                  |d   |d   «       |d   s| j	                  |d	   «       |d
   s| j                  |d   «       |d   s|d   s| j                  |d   «       |d   dk7  r| j                  |d   «       | j                  d«       | j                  d«       | j                  d|d   «       | j                  d«       y )Nú3http://schemas.microsoft.com/office/excel/2006/mainúxmlns:xmzx14:conditionalFormattingrý  r“  rÿ  r�  rš  rž  r¡  r   r£  r¢  rŸ  rV  r�  úx14:dataBarú
x14:cfRuleúxm:sqrefrs  )
r£  Ú_write_x14_cf_ruleÚ_write_x14_data_barÚ_write_x14_cfvoÚ_write_x14_border_colorÚ_write_x14_negative_fill_colorÚ _write_x14_negative_border_colorÚ_write_x14_axis_colorr¦  r¥  )r(   rº  Úxmlns_xmr°  s       r.   r¸  z,Worksheet._write_conditional_formatting_2010„  sC  € àHˆà! 8Ð,Ð-ˆ
à×ÑÐ7¸ÔDð 	×Ñ Ô)ð 	× Ñ  Ô*ð 	×Ñ˜X nÑ5°xÀÑ7LÔMØ×Ñ˜X nÑ5°xÀÑ7LÔMà˜Ò(à×(Ñ(¨Ð2DÑ)EÔFð Ð1Ò2Ø×/Ñ/°Ð9MÑ0NÔOð ˜Ò)ØÐ=Ò>à×1Ñ1°(Ð;VÑ2WÔXð Ð'Ñ(¨FÒ2Ø×&Ñ& xÐ0@Ñ'AÔBà×Ñ˜-Ô(Ø×Ñ˜,Ô'ð 	×Ñ˜z¨8°GÑ+<Ô=à×ÑÐ5Õ6r2   c                 óF   — d}|d   }d|fd|fg}| j                  d|«       y )Nr»  r‚  r4  r   r½  ©r£  )r(   rº  Ú	rule_typer‚  r°  s        r.   r¿  zWorksheet._write_x14_cf_rule±  s4   € àˆ	Ø˜ÑˆØ˜yÐ)¨D°$¨<Ð8ˆ
à×Ñ˜L¨*Õ5r2   c                 óÂ  — d}d}d|fd|fg}|d   s|j                  d«       |d   r|j                  d«       |d	   d
k(  r|j                  d«       |d	   dk(  r|j                  d«       |d   r|j                  d«       |d   s|d   s|j                  d«       |d   dk(  r|j                  d«       |d   dk(  r|j                  d«       | j                  d|«       y )Nr   rZ   r}  r~  rš  )Úborderr   r�  )Úgradientr   r™  rÐ  )r¿  ÚleftToRightrÑ  )r¿  rf  r¡  )ÚnegativeBarColorSameAsPositiver   r£  )Ú$negativeBarBorderColorSameAsPositiver   rŸ  Úmiddle)ÚaxisPositionrÐ  rV  )rÑ  rV  r¼  )r¢  r£  )r(   rº  r—  r–  r°  s        r.   rÀ  zWorksheet._write_x14_data_bar¹  s  € àˆ
Øˆ
ð ˜*Ð%Ø˜*Ð%ð
ˆ
ð
 ˜Ò(Ø×Ñ˜mÔ,à�KÒ Ø×Ñ˜oÔ.à�OÑ$¨Ò.Ø×ÑÐ:Ô;à�OÑ$¨Ò/Ø×ÑÐ:Ô;àÐ-Ò.Ø×ÑÐCÔDð ˜Ò)ØÐ=Ò>à×ÑÐIÔJàÐ'Ñ(¨HÒ4Ø×ÑÐ8Ô9àÐ'Ñ(¨FÒ2Ø×ÑÐ6Ô7à×Ñ˜M¨:Õ6r2   c                 ó¦   — d|fg}|dv r| j                  d|«       y | j                  d|«       | j                  d|«       | j                  d«       y )Nr4  )rø  rù  rü  rþ  zx14:cfvoúxm:f)r   r£  r¥  r¦  )r(   rÉ  rZ  r°  s       r.   rÁ  zWorksheet._write_x14_cfvoà  sV   € à˜yÐ)Ð*ˆ
àÐ<Ñ<Ø×Ñ 
¨JÕ7à×Ñ 
¨JÔ7Ø×"Ñ" 6¨5Ô1Ø×Ñ˜jÕ)r2   c                 ó2   — d|fg}| j                  d|«       y )Nrþ  zx14:borderColorr  ©r(   rþ  r°  s      r.   rÂ  z!Worksheet._write_x14_border_colorë  s   € à˜c�l�^ˆ
Ø×ÑÐ-¨zÕ:r2   c                 ó2   — d|fg}| j                  d|«       y )Nrþ  zx14:negativeFillColorr  rÕ  s      r.   rÃ  z(Worksheet._write_x14_negative_fill_colorð  s   € à˜c�l�^ˆ
Ø×ÑÐ3°ZÕ@r2   c                 ó2   — d|fg}| j                  d|«       y )Nrþ  zx14:negativeBorderColorr  rÕ  s      r.   rÄ  z*Worksheet._write_x14_negative_border_colorõ  s   € à˜c�l�^ˆ
Ø×ÑÐ5°zÕBr2   c                 ó2   — d|fg}| j                  d|«       y )Nrþ  zx14:axisColorr  rÕ  s      r.   rÅ  zWorksheet._write_x14_axis_colorú  s   € à˜c�l�^ˆ
Ø×Ñ˜O¨ZÕ8r2   c                 ó�  — | j                  d«       | j                  «        t        | j                  «      D ]ë  }| j	                  |«       | j                  |d   «       | j                  |d   «       | j                  «        | j                  |d   «       | j                  |d   «       | j                  |d   «       | j                  |d   «       | j                  |d   «       |d	   r| j                  d
|d	   «       | j                  |«       | j                  d«       Œí | j                  d«       | j                  d«       y )Nz&{05C60535-1F16-4fd2-B633-F4F36F0B64E0}rY  r[  rZ  rU  rR  rP  rN  rM  rÓ  úx14:sparklineGroupúx14:sparklineGroupsr„  )r…  Ú_write_sparkline_groupsr‰  rç   Ú_write_sparkline_groupÚ_write_color_seriesÚ_write_color_negativeÚ_write_color_axisÚ_write_color_markersÚ_write_color_firstÚ_write_color_lastÚ_write_color_highÚ_write_color_lowr¥  Ú_write_sparklinesr¦  )r(   ro  s     r.   r´  z$Worksheet._write_ext_list_sparklinesÿ  sB  € à�‰Ð@ÔAð 	×$Ñ$Ô&ô " $§/¡/Ó2ò !	4ˆIà×'Ñ'¨	Ô2ð ×$Ñ$ Y¨~Ñ%>Ô?ð ×&Ñ& yÐ1AÑ'BÔCð ×"Ñ"Ô$ð ×%Ñ% i°Ñ&@ÔAð ×#Ñ# I¨mÑ$<Ô=ð ×"Ñ" 9¨\Ñ#:Ô;ð ×"Ñ" 9¨\Ñ#:Ô;ð ×!Ñ! )¨KÑ"8Ô9à˜Ò%Ø×&Ñ& v¨y¸Ñ/EÔFà×"Ñ" 9Ô-à×ÑÐ2Õ3ðC!	4ðF 	×ÑÐ/Ô0Ø×Ñ˜%Õ r2   c                 ó  — | j                  d«       t        |d   «      D ]X  }|d   |   }|d   |   }| j                  d«       | j                  d|«       | j                  d|«       | j                  d«       ŒZ | j                  d«       y )Nzx14:sparklinesr-  ra  rG  zx14:sparklinerÓ  r¾  )r£  rs  r¥  r¦  )r(   ro  rA  ru  rL  s        r.   ræ  zWorksheet._write_sparklines-   s—   € ð 	×ÑÐ,Ô-ä�y Ñ)Ó*ò 	/ˆAØ# HÑ-¨aÑ0ˆKØ  Ñ-¨aÑ0ˆHà×Ñ Ô0Ø×"Ñ" 6¨;Ô7Ø×"Ñ" :¨xÔ8Ø×Ñ˜oÕ.ð	/ð 	×ÑÐ*Õ+r2   c                 óF   — d}|dz   }d|fd|fg}| j                  d|«       y )Nz$http://schemas.microsoft.com/office/zspreadsheetml/2009/9/mainz	xmlns:x14Úurir„  rÈ  )r(   ré  rW  Ú	xmlns_x14r°  s        r.   r…  zWorksheet._write_ext>   s<   € à7ˆØÐ8Ñ8ˆ	ð ˜)Ð$Ø�CˆLð
ˆ
ð
 	×Ñ˜E :Õ.r2   c                 ó6   — d}d|fg}| j                  d|«       y )Nrº  r»  rÛ  rÈ  )r(   rÆ  r°  s      r.   rÜ  z!Worksheet._write_sparkline_groupsJ   s%   € àHˆà! 8Ð,Ð-ˆ
à×ÑÐ1°:Õ>r2   c                 ó.  — |j                  d«      }g }|j                  d«      �)|d   dk(  rd|d<   n|j                  d|d   f«       d|d<   |j                  d«      �)|d   dk(  rd|d<   n|j                  d	|d   f«       d|d<   |d
   dk7  r|j                  d
|d
   f«       |j                  d«      r|j                  d|d   f«       |j                  d«      r|j                  d«       |r|j                  d|f«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d«       |j                  d«      r|j                  d «       |j                  d«      r|j                  d!|d   f«       |j                  d«      r|j                  d"|d   f«       |j                  d#«      r|j                  d$«       | j                  d%|«       y )&Nri  rù  rt  Úcust_maxÚ	manualMaxrZ  rø  Úcust_minÚ	manualMinr4  r]  rI  Ú
lineWeightrM  )ÚdateAxisr   ÚdisplayEmptyCellsAsrJ  )rJ  r   rc  )rc  r   rd  )rd  r   rf  )rf  r   rg  )rg  r   re  )re  r   rH  )ÚdisplayXAxisr   rw   )ÚdisplayHiddenr   ÚminAxisTypeÚmaxAxisTyperK  re  rÚ  )rÇ  r¢  r£  )r(   rÌ  ri  r°  s       r.   rÝ  z Worksheet._write_sparkline_groupR   sc  € ð0 —‘˜GÓ$ˆØˆ
à�;‰;�uÓÐ)Ø�u‰~ Ò(Ø&-�˜
Ò#à×!Ñ! ;°¸±Ð"?Ô@Ø&.�˜
Ñ#à�;‰;�uÓÐ)Ø�u‰~ Ò(Ø&-�˜
Ò#à×!Ñ! ;°¸±Ð"?Ô@Ø&.�˜
Ñ#ð �6‰?˜fÒ$Ø×Ñ˜v w¨v¡Ð7Ô8à�;‰;�xÔ Ø×Ñ˜|¨W°XÑ->Ð?Ô@à�;‰;�{Ô#Ø×Ñ˜oÔ.áØ×ÑÐ4°eÐ<Ô=à�;‰;�yÔ!Ø×Ñ˜nÔ-à�;‰;�vÔØ×Ñ˜kÔ*à�;‰;�uÔØ×Ñ˜jÔ)à�;‰;�wÔØ×Ñ˜lÔ+à�;‰;�vÔØ×Ñ˜kÔ*à�;‰;�zÔ"Ø×Ñ˜oÔ.à�;‰;�vÔØ×ÑÐ1Ô2à�;‰;�xÔ Ø×ÑÐ2Ô3à�;‰;�zÔ"Ø×Ñ˜}¨g°jÑ.AÐBÔCà�;‰;�zÔ"Ø×Ñ˜}¨g°jÑ.AÐBÔCà�;‰;�yÔ!Ø×ÑÐ0Ô1à×ÑÐ0°*Õ=r2   c                 ó  — g }|j                  d«      r|j                  d|d   f«       |j                  d«      r|j                  d|d   f«       |j                  d«      r|j                  d|d   f«       | j                  ||«       y )Nrþ  r  Útint)rÇ  r¢  r   )r(   Úelementr›  r°  s       r.   Ú_write_spark_colorzWorksheet._write_spark_color«   s€   € àˆ
à�9‰9�UÔØ×Ñ˜u e¨E¡lÐ3Ô4à�9‰9�WÔØ×Ñ˜w¨¨g©Ð7Ô8à�9‰9�VÔØ×Ñ˜v u¨V¡}Ð5Ô6à×Ñ˜G ZÕ0r2   c                 ó(   — | j                  d|«       y )Nzx14:colorSeries©rû  rš  s     r.   rÞ  zWorksheet._write_color_seriesº   s   € à×ÑÐ 1°5Õ9r2   c                 ó(   — | j                  d|«       y )Nzx14:colorNegativerý  rš  s     r.   rß  zWorksheet._write_color_negative¾   s   € à×ÑÐ 3°UÕ;r2   c                 ó,   — | j                  dddi«       y )Nzx14:colorAxisrþ  ÚFF000000rý  rå  s    r.   rà  zWorksheet._write_color_axisÂ   s   € à×Ñ °%¸Ð1DÕEr2   c                 ó(   — | j                  d|«       y )Nzx14:colorMarkersrý  rš  s     r.   rá  zWorksheet._write_color_markersÆ   s   € à×ÑÐ 2°EÕ:r2   c                 ó(   — | j                  d|«       y )Nzx14:colorFirstrý  rš  s     r.   râ  zWorksheet._write_color_firstÊ   s   € à×ÑÐ 0°%Õ8r2   c                 ó(   — | j                  d|«       y )Nzx14:colorLastrý  rš  s     r.   rã  zWorksheet._write_color_lastÎ   ó   € à×Ñ °Õ7r2   c                 ó(   — | j                  d|«       y )Nzx14:colorHighrý  rš  s     r.   rä  zWorksheet._write_color_highÒ   r  r2   c                 ó(   — | j                  d|«       y )Nzx14:colorLowrý  rš  s     r.   rå  zWorksheet._write_color_lowÖ   s   € à×Ñ °Õ6r2   c                 ó0   — ddg}| j                  d|«       y )N)ÚfontIdÚ0)r4  ÚnoConversionÚ
phoneticPrr  ru  s     r.   r9  zWorksheet._write_phonetic_prÚ   s#   € ð Ø$ð
ˆ
ð
 	×Ñ˜L¨*Õ5r2   c                 óš  — | j                   sy | j                  d«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d	|«       | j                   j                  d
«      r!| j                   d
   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j                   j                  d«      r!| j                   d   }| j                  d|«       | j	                  d«       y )NÚignoredErrorsr  ÚnumberStoredAsTextr  Ú	evalErrorr  rY  r  ÚformulaRanger  ÚunlockedFormular  ÚemptyCellReferencer  ÚlistDataValidationr  ÚcalculatedColumnr  ÚtwoDigitTextYear)r  r£  rÇ  Ú_write_ignored_errorr¦  )r(   Úignored_ranges     r.   rE  zWorksheet._write_ignored_errorsã   s  € à×"Ò"Øà×Ñ˜OÔ,à×Ñ×"Ñ"Ð#:Ô;Ø ×/Ñ/Ð0GÑHˆMØ×%Ñ%Ð&:¸MÔJà×Ñ×"Ñ" <Ô0Ø ×/Ñ/°Ñ=ˆMØ×%Ñ% k°=ÔAà×Ñ×"Ñ"Ð#4Ô5Ø ×/Ñ/Ð0AÑBˆMØ×%Ñ% i°Ô?à×Ñ×"Ñ" ?Ô3Ø ×/Ñ/°Ñ@ˆMØ×%Ñ% n°mÔDà×Ñ×"Ñ"Ð#5Ô6Ø ×/Ñ/Ð0BÑCˆMØ×%Ñ%Ð&7¸ÔGà×Ñ×"Ñ"Ð#9Ô:Ø ×/Ñ/Ð0FÑGˆMØ×%Ñ%Ð&:¸MÔJà×Ñ×"Ñ"Ð#9Ô:Ø ×/Ñ/Ð0FÑGˆMØ×%Ñ%Ð&:¸MÔJà×Ñ×"Ñ"Ð#6Ô7Ø ×/Ñ/Ð0CÑDˆMØ×%Ñ%Ð&8¸-ÔHà×Ñ×"Ñ"Ð#8Ô9Ø ×/Ñ/Ð0EÑFˆMØ×%Ñ%Ð&8¸-ÔHà×Ñ˜/Õ*r2   c                 ó8   — d|f|dfg}| j                  d|«       y )Nr~  r   ÚignoredErrorr  )r(   r4  r  r°  s       r.   r  zWorksheet._write_ignored_error!  s,   € ð �mÐ$Ø�1ˆIð
ˆ
ð
 	×Ñ˜N¨JÕ7r2   rP  )Nr   )F)Nr   re  )NNN)NF)r   r   )r   r   r   r   )NNr   )NN)rZ   )rU   N)r   )rW   rW   rX   rX   )rU   NN)FF)r   )ðr  Ú
__module__Ú__qualname__Ú__doc__rb   r#  r1   r(  r&  r;  r  rJ  r  rT  r  r[  r  r?   rj  r`  rb  ra  rw  r2  r}  r,  rƒ  r  r™  r˜  r´  r¸  r»  rÎ  rØ  rÛ  rà  rã  ræ  rê  rí  rï  rò  rô  r÷  rú  rý  rF   r  r  r"  r&  r)  r,  r2  r7  rC  r>  r…  r  rE  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ù  rû  rý  rÿ  r  r  r  r  r  r  r  r+  rM  r@  ry  r4  rc  r<  r=  rm  r¯  r�  r¡  r¦  r¨  r¬  r�  r®  rº  r»  r  r(  rØ  r¸  rè  rê  rï  r3  rn  r  r~  r’  r“  r£  r¤  r&  r(  r-  r,  rD  rF  r  r/  r1  r2  r`  r3  r4  rƒ  r5  r6  r@  rA  r?  rB  r²  r³  r’  rC  rº  r»  r½  r¼  rÜ  rÛ  r0  rì  rê  rë  rC  rD  rú  r;  r  r>  r  r  r:  r  r  r!  r$  r"  r+  r7  r8  r=  rF  rB  rG  rH  rI  r=  rN  rZ  r[  r<  rf  rj  rs  ru  rv  rw  rx  r{  r)  rt  r‘  rs  r—  r–  r¨  rJ  r¯  rK  r³  r¸  r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  r´  ræ  r…  rÜ  rÝ  rû  rÞ  rß  rà  rá  râ  rã  rä  rå  r9  rE  r  Ú__classcell__)r  s   @r.   rR   rR   Â   sB  ø„ ñôW)òt#7ðJ ñ,ó ð,ò&NLð` òAó ðAó&ð6 òAó ðAó$ð8 ò?ó ð?ó&ð$ òJó ðJó*ð@ ð Øò*
ó ð*
ðX ð Øò)ó ð)óZrðz ØØó4ðl òAó ðAó$ð* òCó ðCó$ð6 òHó ðHó*iðV ñ8ó ð8ò.wòr7ð òó ðð, òó ðð, ò:ó ð:ðx ò;ó ð;ðz ò1ó ð1ðf òDó ðDðL ò!ó ð!òF"ó)ò&&òò5ò$ò"ò ò 4ð$ àIMò>ó ð>ð@ àIMòQó ðQò0PNód;óz?ó((ð. àJNòIó ðIðV ñ7ó ð7ò@:òx(ðT ò@ó ð@ðD à@Dò~ó ð~ð@ òIó ðIðV
 ò}ó ð}ð~ ñ 7ó ð 7ðD ò9ó ð9ð$ GHó$ð0 ò>ó ð>ð, ò6ó ð6ó"ò$"òò)ó1(ófIð> òó ðòF'ò'óóò+òòó$ó&K'óZK'óZ7ð4 ò7ó ð7ó4&ò0*ò$ð ñó ðò@'ò'ò$%ò'ò,'òòó>ó"(ò^*'òXbóHòBXò&òPò4òBAò<V!òpò"uJòn]Wò~
ò&
ò:
òx VòH^Vó@ó<ò*
òòGòRGòR1òf
òò2ò:Gò3òjòó(
(ó,ò4'òl5ò=ò9ò$ò+ò'ó>òL5ò(!9òF(ò99òv9ò0&"òPB/òH+ò+ò07òL5ò\8ò2<ò(9ò9ò&QóP#òJ-ó^1=óf@òt#òl+ò9ò7ò87ò	4ò5ò$'ò*'ò*/ò(ò$5òL(ð^ FJó5ð& >Bó5ò:ò"Gò"*ò)ò(2ò/ò.8ò6.;ò`
-ò
:ò,ò3ò9ò;ò3ò-ò$K0òZ4ò"4ò
ò3òj(òX3ò(ò*%ò.$ò$%ó,
0ò1ò.ò
5ò
-ò60òpE0òNò.(ò25ò$ò&!ò+7òZ6ò%7òN	*ò;ò
Aò
Cò
9ò
,!ò\,ò"
/ò?òW>òr1ò:ò<òFò;ò9ò8ò8ò7ò6ò++öZ8r2   rR   )>r.  rN  rÈ  r  r%  Úcollectionsr   r   rX  r   Ú	fractionsr   Ú	functoolsr   Úior	   r
   r   Úwarningsr   rU   r   rJ   r   rê   r   r…  r   r   Úutilityr   r   r   r   r   r   r   r   r   r   r   r   r    Ú
exceptionsr!   r"   rf  ÚVERBOSEr^  r1   r?   rF   rD  rP  rV  r  rc  rz  rr  r©  rÓ  rR   rÄ  r2   r.   ú<module>r&     s:  ðó Û Û 	Û 	Û å #Ý "Ý Ý Ý Ý Ý Ý Ý õ Ý Ý Ý Ý  Ý &Ý +Ý &Ý #Ý Ý Ý #Ý (Ý 'Ý /Ý )Ý (Ý $Ý *Ý (à �b—j‘jðð< ‡J�Jó? Ð òPò0ò@ñ@ ˜xÐ)9Ó:Ð Ù˜xÐ)9Ó:Ð Ù˜g xÓ0Ð Ù 	Ð+<Ó=Ð Ù 	Ð+CÓDÐ Ù  Ð-=Ó>Ð Ù!ØÐ:óÐ ñ $ LÐ2NÓOÐ Ù˜gÐ'=Ó>Ð ôUA8�	×#Ñ#õ UA8r2   