§
    YŠtjUý  ã                   ó¬  — d Z dZddlZddlZddlZddlZddlZddlZddl	m
Z
 ddl	mZ ddlmZ ddlmZ ddlmZ g d	¢Z ej        ¦   «          ej        ¦   «          ej        ¦   «          ej        ¦   «         fZ ej        d
ej        ¦  «        Z ej        dej        ¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ed¦  «        ZdZdZ dZ! G d„ de"¦  «        Z# G d„ de#¦  «        Z$ G d„ de%¦  «        Z&e!ddddddddddfde'fd„Z(de)fd„Z*d„ Z+d„ Z,de!dddddddddfd„Z-de!dddddddf	d „Z.de!dddddddf	d!„Z/d"„ Z0d#Z1d$Z2 G d%„ d&e%¦  «        Z3	 	 	 	 	 d;d'„Z4	 	 	 	 	 d;d(„Z5	 	 	 	 	 d;d)„Z6	 	 	 	 	 d;d*„Z7 G d+„ d,e%¦  «        Z8 G d-„ d.e%¦  «        Z9e9Z:d/„ Z;d0„ Z<d1„ Z=d2„ Z>d3„ Z?d4„ Z@d<d5„ZAd<d6„ZBd7„ ZCd8„ ZDd9„ ZEd:„ ZFdS )=ac  Contains routines for printing protocol messages in text format.

Simple usage example::

  # Create a proto object and serialize it to a text proto string.
  message = my_proto_pb2.MyMessage(foo='bar')
  text_proto = text_format.MessageToString(message)

  # Parse a text proto string.
  message = text_format.Parse(text_proto, my_proto_pb2.MyMessage())
z kenton@google.com (Kenton Varda)é    N)Údecoder)Útype_checkers)Ú
descriptor)Útext_encoding)Úunknown_fields)ÚMessageToStringÚParseÚPrintMessageÚ
PrintFieldÚPrintFieldValueÚMergeÚMessageToBytesz-?inf(?:inity)?f?$znanf?$z	-?0[0-9]+z^%[\da-fA-F][\da-fA-F]$z^[^\d\W]\w*(\.[^\d\W]\w*)*$)ú'ú"zgoogle.protobuf.Anyz	 Tc                   ó   — e Zd ZdZdS )ÚErrorz'Top-level module error for text_format.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/google/protobuf/text_format.pyr   r   8   s   € € € € € Ø/Ð/Ð/Ð/r   r   c                   ó0   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Zˆ xZS )Ú
ParseErrorz3Thrown in case of text parsing or tokenizing error.Nc                 óN  •— |�A|�?t          |¦  «        }|�|d                     |¦  «        z  }d                     ||¦  «        }|�)t          t          | ¦  «                             |¦  «         n't          t          | ¦  «                             ¦   «          || _        || _        d S )Nz:{0}z	{0} : {1})ÚstrÚformatÚsuperr   Ú__init__Ú_lineÚ_column)ÚselfÚmessageÚlineÚcolumnÚlocÚ	__class__s        €r   r    zParseError.__init__?   sŸ   ø€ ØÐ˜tÐ/Ý�‰IŒI€cØ	Ð	Øˆv�}Š}˜VÑ$Ô$Ñ$ˆØ×"Ò" 3¨Ñ0Ô0€gØÐÝ�J˜ÑÔ×&Ò& wÑ/Ô/Ð/Ð/å�J˜ÑÔ×&Ò&Ñ(Ô(Ð(Ø€D„JØ€D„L€L€Lr   c                 ó   — | j         S ©N)r!   ©r#   s    r   ÚGetLinezParseError.GetLineL   s
   € ØŒ:Ðr   c                 ó   — | j         S r*   )r"   r+   s    r   Ú	GetColumnzParseError.GetColumnO   s
   € ØŒ<Ðr   )NNN)r   r   r   r   r    r,   r.   Ú__classcell__)r(   s   @r   r   r   <   sa   ø€ € € € € Ø;Ð;ðð ð ð ð ð ðð ð ðð ð ð ð ð ð r   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TextWriterc                 ó6   — t          j        ¦   «         | _        d S r*   )ÚioÚStringIOÚ_writer)r#   Úas_utf8s     r   r    zTextWriter.__init__U   s   € Ý”;‘=”=€D„L€L€Lr   c                 ó6   — | j                              |¦  «        S r*   )r5   Úwrite)r#   Úvals     r   r8   zTextWriter.writeX   s   € ØŒ<×Ò˜cÑ"Ô"Ð"r   c                 ó4   — | j                              ¦   «         S r*   )r5   Úcloser+   s    r   r;   zTextWriter.close[   s   € ØŒ<×ÒÑÔÐr   c                 ó4   — | j                              ¦   «         S r*   )r5   Úgetvaluer+   s    r   r=   zTextWriter.getvalue^   s   € ØŒ<× Ò Ñ"Ô"Ð"r   N)r   r   r   r    r8   r;   r=   r   r   r   r1   r1   S   sP   € € € € € ð!ð !ð !ð#ð #ð #ð ð  ð  ð#ð #ð #ð #ð #r   r1   FÚreturnc                 ó   — t          |¦  «        }t          ||||||||||	|
|¬¦  «        }|                     | ¦  «         |                     ¦   «         }|                     ¦   «          |r|                     ¦   «         S |S )a—  Convert protobuf message to text format.

  Args:
    message: The protocol buffers message.
    as_utf8: Return unescaped Unicode for non-ASCII characters.
    as_one_line: Don't introduce newlines between fields.
    use_short_repeated_primitives: Use short repeated format for primitives.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, fields of a proto message will be printed using
      the order defined in source code instead of the field number, extensions
      will be printed at the end of the message and their relative order is
      determined by the extension number. By default, use the field number
      order.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool (DescriptorPool): Descriptor pool used to resolve Any types.
    indent (int): The initial indent level, in terms of spaces, for pretty
      print.
    message_formatter (function(message, indent, as_one_line) -> unicode|None):
      Custom formatter for selected sub-messages (usually based on message
      type). Use to pretty print parts of the protobuf for easier diffing.
    print_unknown_fields: If True, unknown fields will be printed.
    force_colon: If set, a colon will be added after the field name even if the
      field is a proto message.

  Returns:
    str: A string of the text formatted protocol buffer message.
  ©ÚoutÚindentr6   Úas_one_lineÚuse_short_repeated_primitivesÚpointy_bracketsÚuse_index_orderÚuse_field_numberÚdescriptor_poolÚmessage_formatterÚprint_unknown_fieldsÚforce_colon)r1   Ú_Printerr
   r=   r;   Úrstrip)r$   r6   rC   rD   rE   rF   rG   rH   rB   rI   rJ   rK   rA   ÚprinterÚresults                  r   r   r   b   s•   € õR 	�7ÑÔ€#ÝØ
ØØØØ$AØ%Ø%Ø'Ø%Ø)Ø/Øðñ ô €'ð 
×Ò�wÑÔÐØ�<Š<‰>Œ>€&Ø‡)‚)�+„+€+Øð Ø�=Š=‰?Œ?ÐØ	€-r   c                 ó¦   — t          | fi |¤Ž}t          |t          ¦  «        r|S |                     d¦  «        rdnd}|                     |¦  «        S )zFConvert protobuf message to encoded text format.  See MessageToString.r6   úutf-8Úascii)r   Ú
isinstanceÚbytesÚgetÚencode)r$   ÚkwargsÚtextÚcodecs       r   r   r   ¢   sZ   € å	˜Ð	+Ð	+ FÐ	+Ð	+€$Ý�•eÑÔð Ø€KØ—Z’Z 	Ñ*Ô*Ð
7ˆ'ˆ'°€%Ø	�Š�UÑ	Ô	Ðr   c                 óŠ   — | j         t          j        j        k    o)| j        j        o| j                             ¦   «         j        S r*   )Útyper   ÚFieldDescriptorÚTYPE_MESSAGEÚmessage_typeÚhas_optionsÚ
GetOptionsÚ	map_entry©Úfields    r   Ú_IsMapEntryrd   «   s?   € Ø
Œ*�
Ô2Ô?Ò
?ð 4Ø
Ô
Ô
(ð4à
Ô
×
'Ò
'Ñ
)Ô
)Ô
3ð5r   c                 ó  — | j         t          j        j        k    rdS | j        | j        j                             ¦   «         k    rdS | j        j        | j        k    rdS | j        r| j        j	        | j
        k    n| j        j	        | j	        k    S )z¨Determines if a field is consistent with a proto2 group.

  Args:
    field: The field descriptor.

  Returns:
    True if this field is group-like, false otherwise.
  F)r[   r   r\   Ú
TYPE_GROUPÚnamer^   ÚlowerÚfileÚis_extensionÚcontaining_typeÚextension_scoperb   s    r   Ú_IsGroupLikerm   ±   s‘   € ð „Z•:Ô-Ô8Ò8Ð8Øˆ5ð „Z�5Ô%Ô*×0Ò0Ñ2Ô2Ò2Ð2Øˆ5à
ÔÔ ¤
Ò*Ð*Øˆ5ð 
Ô	ðG€eÔÔ(¨EÔ,AÒAÐAàÔÔ-°Ô1FÒFðr   c                 óf   — t          |||||||||	|
||¬¦  «        }|                     | ¦  «         dS )aâ  Convert the message to text format and write it to the out stream.

  Args:
    message: The Message object to convert to text format.
    out: A file handle to write the message to.
    indent: The initial indent level for pretty print.
    as_utf8: Return unescaped Unicode for non-ASCII characters.
    as_one_line: Don't introduce newlines between fields.
    use_short_repeated_primitives: Use short repeated format for primitives.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, print fields of a proto message using the order
      defined in source code instead of the field number. By default, use the
      field number order.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    message_formatter: A function(message, indent, as_one_line): unicode|None
      to custom format selected sub-messages (usually based on message type).
      Use to pretty print parts of the protobuf for easier diffing.
    print_unknown_fields: If True, unknown fields will be printed.
    force_colon: If set, a colon will be added after the field name even if
      the field is a proto message.
  r@   N)rL   r
   )r$   rA   rB   r6   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rN   s                 r   r
   r
   Ï   sW   € õH Ø
�f gØØ$AØ%Ø%Ø'Ø%Ø)Ø/Øð
ñ 
ô 
€'ð 
×Ò�wÑÔÐÐÐr   c                 ód   — t          ||||||||	|
|¬¦
  «
        }|                     | |¦  «         dS )ú%Print a single field name/value pair.©rI   rJ   rK   N)rL   r   ©rc   ÚvaluerA   rB   r6   rC   rD   rE   rF   rI   rJ   rK   rN   s                r   r   r     sT   € õ Ø	ØØØØ#ØØØ)Ø/Øðñ ô €'ð 
×Ò�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 ód   — t          ||||||||	|
|¬¦
  «
        }|                     | |¦  «         dS )z0Print a single field value (not including name).rq   N)rL   r   rr   s                r   r   r     sT   € õ Ø	ØØØØ#ØØØ)Ø/Øðñ ô €'ð 
×Ò˜% Ñ'Ô'Ð'Ð'Ð'r   c                 óÔ   — |€ddl m} |                     ¦   «         }ddl m} 	 |                     | ¦  «        }n# t
          $ r Y dS w xY w|                     |¦  «        } |¦   «         S )a!  Returns a protobuf message instance.

  Args:
    type_name: Fully-qualified protobuf  message type name string.
    descriptor_pool: DescriptorPool instance.

  Returns:
    A Message instance of type matching type_name, or None if the a Descriptor
    wasn't found matching type_name.
  Nr   )rH   )Úmessage_factory)Úgoogle.protobufrH   ÚDefaultrv   ÚFindMessageTypeByNameÚKeyErrorÚGetMessageClass)Ú	type_namerH   Úpool_modrv   Úmessage_descriptorr^   s         r   Ú_BuildMessageFromTypeNamer   9  s�   € ð ÐØ;Ð;Ð;Ð;Ð;Ð;à×&Ò&Ñ(Ô(€OØ-Ð-Ð-Ð-Ð-Ð-ðØ(×>Ò>¸yÑIÔIÐÐøÝ	ð ð ð Øˆ4ˆ4ðøøøà ×0Ò0Ð1CÑDÔD€,Ø	ˆ‰ŒÐs   ¤: º
AÁAé   é   c                   óf   — e Zd ZdZdedddddddddfd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ ZdS )rL   z)Text format printer for protocol message.r   FNc                 ó®   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        dS )aŸ  Initialize the Printer.

    Args:
      out: To record the text format result.
      indent: The initial indent level for pretty print.
      as_utf8: Return unescaped Unicode for non-ASCII characters.
      as_one_line: Don't introduce newlines between fields.
      use_short_repeated_primitives: Use short repeated format for primitives.
      pointy_brackets: If True, use angle brackets instead of curly braces for
        nesting.
      use_index_order: If True, print fields of a proto message using the order
        defined in source code instead of the field number. By default, use the
        field number order.
      use_field_number: If True, print field numbers instead of names.
      descriptor_pool: A DescriptorPool used to resolve Any types.
      message_formatter: A function(message, indent, as_one_line): unicode|None
        to custom format selected sub-messages (usually based on message type).
        Use to pretty print parts of the protobuf for easier diffing.
      print_unknown_fields: If True, unknown fields will be printed.
      force_colon: If set, a colon will be added after the field name even if
        the field is a proto message.
    Nr@   )r#   rA   rB   r6   rC   rD   rE   rF   rG   rH   rI   rJ   rK   s                r   r    z_Printer.__init__[  sh   € ðJ €D„HØ€D„KØ€D„LØ"€DÔØ)F€DÔ&Ø*€DÔØ*€DÔØ,€DÔØ*€DÔØ.€DÔØ 4€DÔØ"€DÔÐÐr   c                 óŒ  — d|j         vrdS t          |                     ¦   «         | j        ¦  «        }|��|                     |j        ¦  «         | j        rdnd}| j                             | j	        dz  ›d|j         ›d|›d�¦  «         |  
                    |¦  «         | j                             | j        rdnd	¦  «         d
S dS )z5Serializes if message is a google.protobuf.Any field.ú/FNú:Ú ú ú[ú]ú
T)Útype_urlr   ÚTypeNamerH   ÚMergeFromStringrs   rK   rA   r8   rB   Ú_PrintMessageFieldValuerC   )r#   r$   Úpacked_messageÚcolons       r   Ú_TryPrintAsAnyMessagez_Printer._TryPrintAsAnyMessage�  sÚ   € à
�'Ô"Ð"Ð"ØˆUÝ.¨w×/?Ò/?Ñ/AÔ/AØ/3Ô/CñEô E€NàÐ!Ø×$Ò$ W¤]Ñ3Ô3Ð3ØÔ%Ð-ˆcˆc¨2€eØ
„h‡n‚n D¤K°#Ñ$5Ð$5Ð$5°wÔ7GÐ7GÐ7GÈÈÈÐOÑPÔPÐPØ
×"Ò" >Ñ2Ô2Ð2Ø
„h‡n‚n˜DÔ,Ð6�S�S°$Ñ7Ô7Ð7ØˆTàˆUr   c                 óþ   — |                       || j        | j        ¦  «        }|€dS | j        }|                     d| j        z  ¦  «         |                     |¦  «         |                     | j        rdnd¦  «         dS )NFrˆ   r‹   T)rI   rB   rC   rA   r8   )r#   r$   Ú	formattedrA   s       r   Ú_TryCustomFormatMessagez _Printer._TryCustomFormatMessage�  s~   € Ø×&Ò& w°´¸TÔ=MÑNÔN€IØÐØˆUà
Œ(€CØ‡I‚Iˆc�D”KÑÑ Ô Ð Ø‡I‚IˆiÑÔÐØ‡I‚I�TÔ%Ð/ˆcˆc¨4Ñ0Ô0Ð0Øˆ4r   c                 ó>  — | j         r|                      |¦  «        rdS |j        j        t          k    r|                      |¦  «        rdS |                     ¦   «         }| j        r|                     d„ ¬¦  «         |D ]í\  }}t          |¦  «        rNt          |¦  «        D ]=} |                     ¦   «         |||         ¬¦  «        }|                      ||¦  «         Œ>Œb|j        rn| j        rK|j        t           j        j        k    r1|j        t           j        j        k    r|                      ||¦  «         Œ»|D ]}|                      ||¦  «         ŒŒ×|                      ||¦  «         Œî| j        r)|                      t/          j        |¦  «        ¦  «         dS dS )zeConvert protobuf message to text format.

    Args:
      message: The protocol buffers message.
    Nc                 óP   — | d         j         r| d         j        n| d         j        S ©Nr   )rj   ÚnumberÚindex)Úxs    r   ú<lambda>z'_Printer.PrintMessage.<locals>.<lambda>¶  s"   €  q¨¤tÔ'8ÐH˜˜!œœ˜¸aÀ¼d¼j€ r   )Úkey)r�   rs   )rI   r•   Ú
DESCRIPTORÚ	full_nameÚ_ANY_FULL_TYPE_NAMEr’   Ú
ListFieldsrF   Úsortrd   ÚsortedÚGetEntryClassr   Úis_repeatedrD   Úcpp_typer   r\   ÚCPPTYPE_MESSAGEÚCPPTYPE_STRINGÚ"_PrintShortRepeatedPrimitivesValuerJ   Ú_PrintUnknownFieldsr   ÚUnknownFieldSet)r#   r$   Úfieldsrc   rs   r�   Úentry_submsgÚelements           r   r
   z_Printer.PrintMessage¨  sé  € ð Ôð  $×">Ò">¸wÑ"GÔ"Gð Ø€fØÔÔ$Õ(;Ò;Ð;Ø×"Ò" 7Ñ+Ô+ð 	<à€fØ×ÒÑ!Ô!€FØÔð JØ‡k‚kØHÐHð ñ Jô Jð Jàð &ð &‰ˆˆuÝ	�UÑ	Ô	ð &Ý˜%‘=”=ð 	/ð 	/ˆCð /˜×,Ò,Ñ.Ô.°3¸eÀC¼jÐIÑIÔIˆ,Ø
�/Š/˜% Ñ
.Ô
.Ð
.Ð
.ð	/ð Ôð 	&ØÔ.ð 	,Ø”¥*Ô"<Ô"LÒLÐLØ”¥*Ô"<Ô"KÒKÐKØ
×
1Ò
1°%¸Ñ
?Ô
?Ð
?Ð
?àð ,ð ,ˆgØ�OŠO˜E 7Ñ+Ô+Ð+Ð+ð,ð 	�Š˜˜uÑ%Ô%Ð%Ð%àÔ ð HØ
×Ò�~Ô=¸gÑFÔFÑGÔGÐGÐGÐGðHð Hr   c                 óÚ  — | j         }|D �]ß}|                     d| j        z  ¦  «         |                     t          |j        ¦  «        ¦  «         |j        t          k    r«| j        r|                     d¦  «         n%|                     d¦  «         | xj        dz  c_        |                      |j	        ¦  «         | j        r|                     d¦  «         ŒÐ| xj        dz  c_        |                     d| j        z  dz   ¦  «         �Œ|j        t          k    �rr	 t          j        t          |j	        ¦  «        dt          |j	        ¦  «        ¦  «        \  }}n# t          $ r d}Y nw xY w|t          |j	        ¦  «        k    r§| j        r|                     d¦  «         n%|                     d¦  «         | xj        dz  c_        |                      |¦  «         | j        r|                     d¦  «         �Œñ| xj        dz  c_        |                     d| j        z  dz   ¦  «         �Œ#|                     d¦  «         |                     t!          j        |j	        d	¦  «        ¦  «         |                     | j        rd
nd¦  «         �Œ…|                     d¦  «         |                     t          |j	        ¦  «        ¦  «         |                     | j        rdnd¦  «         �ŒádS )zPrint unknown fields.rˆ   z { z {
r€   z} z}
r   z: "Fz" z"
z: r‹   N)rA   r8   rB   r   Úfield_numberÚ	wire_typeÚWIRETYPE_START_GROUPrC   rª   ÚdataÚWIRETYPE_LENGTH_DELIMITEDr   Ú_DecodeUnknownFieldSetÚ
memoryviewÚlenÚ	Exceptionr   ÚCEscape)r#   Úunknown_field_setrA   rc   Úembedded_unknown_messageÚposs         r   rª   z_Printer._PrintUnknownFieldsÏ  sÓ  € à
Œ(€CØ"ð 25ñ 25ˆØ	‡i‚i��d”kÑ!Ñ"Ô"Ð"Ø	‡i‚i•�EÔ&Ñ'Ô'Ñ(Ô(Ð(Ø	ŒÕ0Ò	0Ð	0ØÔð 	Ø
�)Š)�EÑ
Ô
Ð
Ð
à
�)Š)�FÑ
Ô
Ð
Ø
ˆ+Œ+˜Ñ
ˆ+Œ+à× Ò  ¤Ñ,Ô,Ð,àÔð 	/Ø
�)Š)�D‰/Œ/ˆ/ˆ/à
ˆ+Œ+˜Ñ
ˆ+Œ+Ø
�)Š)�C˜$œ+Ñ%¨Ñ-Ñ
.Ô
.Ð
.Ñ
.ØŒ?Õ7Ò7Ñ7ð	õ -4Ô,JÝ˜œÑ$Ô$ a­¨U¬Z©¬ñ-:ô -:Ñ
)Ð# S Søåð 	ð 	ð 	Øˆ#ˆ#ˆ#ð	øøøð •#�e”j‘/”/Ò!Ð!ØÔð Ø�IŠI�eÑÔÐÐà�IŠI�fÑÔÐØˆKŒK˜1ÑˆKŒKà
×
"Ò
"Ð#;Ñ
<Ô
<Ð
<àÔð 1Ø�IŠI�d‰OŒOˆO‰OàˆKŒK˜1ÑˆKŒKØ�IŠI�c˜DœKÑ'¨%Ñ/Ñ0Ô0Ð0Ñ0ð �)Š)�FÑ
Ô
Ð
Ø
�)Š)•MÔ)¨%¬*°eÑ<Ô<Ñ
=Ô
=Ð
=Ø
�)Š)˜TÔ-Ð9�E�E°6Ñ
:Ô
:Ð
:Ñ
:ð 	�	Š	�$‰ŒˆØ�	Š	•#�e”j‘/”/Ñ"Ô"Ð"Ø�	Š	˜Ô)Ð3�#�#¨tÑ4Ô4Ð4Ñ4ðe25ð 25s   Ä=EÅE+Å*E+c                 ó  — | j         }|                     d| j        z  ¦  «         | j        r(|                     t	          |j        ¦  «        ¦  «         nû|j        r«|                     d¦  «         |j                             ¦   «         j	        rH|j
        t          j        j        k    r.|j        s'|j        s |                     |j        j        ¦  «         n|                     |j        ¦  «         |                     d¦  «         nIt%          |¦  «        r |                     |j        j        ¦  «         n|                     |j        ¦  «         | j        s|j        t          j        j        k    r|                     d¦  «         dS dS )zPrint field name.rˆ   r‰   rŠ   r†   N)rA   r8   rB   rG   r   r™   rj   rk   r`   Úmessage_set_wire_formatr[   r   r\   r]   Úis_requiredr¥   r^   rŸ   rm   rg   rK   r¦   r§   )r#   rc   rA   s      r   Ú_PrintFieldNamez_Printer._PrintFieldName  sh  € à
Œ(€CØ‡I‚Iˆc�D”KÑÑ Ô Ð ØÔð Ø	‡i‚i•�E”LÑ!Ô!Ñ"Ô"Ð"Ð"à	Ô	ð Ø�	Š	�#‰ŒˆØÔ!×,Ò,Ñ.Ô.ÔFð 	%ØŒJ�*Ô4ÔAÒAÐAØÔ!ð BàÔ!ð Bð �)Š)�EÔ&Ô0Ñ
1Ô
1Ð
1Ð
1à
�)Š)�E”OÑ
$Ô
$Ð
$Ø�	Š	�#‰ŒˆˆÝ˜ÑÔð à�	Š	�%Ô$Ô)Ñ*Ô*Ð*Ð*à�	Š	�%”*ÑÔÐàÔð ØŒ�*Ô4ÔDÒDÐDð 
‡i‚i��n„n€n€n€nð	 	EÐDr   c                 óÖ   — |                       |¦  «         | j                             d¦  «         |                      ||¦  «         | j                             | j        rdnd¦  «         dS )rp   rˆ   r‹   N)rÀ   rA   r8   r   rC   )r#   rc   rs   s      r   r   z_Printer.PrintField$  sf   € à×Ò˜ÑÔÐØ„H‡N‚N�3ÑÔÐØ×Ò˜ Ñ&Ô&Ð&Ø„H‡N‚N˜$Ô*Ð4�3�3°Ñ5Ô5Ð5Ð5Ð5r   c                 óÆ  — |                       |¦  «         | j                             d¦  «         t          t	          |¦  «        dz
  ¦  «        D ]8}|                      |||         ¦  «         | j                             d¦  «         Œ9|                      ||d         ¦  «         | j                             d¦  «         | j                             | j        rdnd¦  «         dS )	z("Prints short repeated primitives value.z [é   z, éÿÿÿÿrŠ   rˆ   r‹   N)rÀ   rA   r8   Úranger·   r   rC   )r#   rc   rs   Úis       r   r©   z+_Printer._PrintShortRepeatedPrimitivesValue+  sÒ   € ð 	×Ò˜ÑÔÐØ„H‡N‚N�4ÑÔÐÝ•3�u‘:”: ‘>Ñ"Ô"ð ð ˆØ
×Ò˜5 %¨¤(Ñ+Ô+Ð+Ø
„h‡n‚n�TÑÔÐÐØ×Ò˜  b¤	Ñ*Ô*Ð*Ø„H‡N‚N�3ÑÔÐØ„H‡N‚N˜$Ô*Ð4�3�3°Ñ5Ô5Ð5Ð5Ð5r   c                 ó¾  — | j         rd}d}nd}d}| j        rN| j                             d|z  ¦  «         |                      |¦  «         | j                             |¦  «         d S | j                             d|z  ¦  «         | xj        dz  c_        |                      |¦  «         | xj        dz  c_        | j                             d| j        z  |z   ¦  «         d S )	Nú<ú>Ú{Ú}z%s z%s
r€   rˆ   )rE   rC   rA   r8   r
   rB   )r#   rs   ÚopenbÚclosebs       r   r�   z _Printer._PrintMessageFieldValue7  sæ   € ØÔð Ø€eØ€f€fà€eØ€fàÔð 	1Ø
„h‡n‚n�U˜U‘]Ñ#Ô#Ð#Ø
×Ò˜ÑÔÐØ
„h‡n‚n�VÑÔÐÐÐà
„h‡n‚n�V˜e‘^Ñ$Ô$Ð$Ø
€k„k�QÑ€k„kØ
×Ò˜ÑÔÐØ
€k„k�QÑ€k„kØ
„h‡n‚n�S˜4œ;Ñ&¨Ñ/Ñ0Ô0Ð0Ð0Ð0r   c                 óâ  — | j         }|j        t          j        j        k    r|                      |¦  «         dS |j        t          j        j        k    rb|j        j         	                    |d¦  «        }|�| 
                    |j        ¦  «         dS | 
                    t          |¦  «        ¦  «         dS |j        t          j        j        k    r¬| 
                    d¦  «         t          |t          ¦  «        r| j        s|                     d¦  «        }n|}|j        t          j        j        k    rd}n| j        }| 
                    t'          j        ||¦  «        ¦  «         | 
                    d¦  «         dS |j        t          j        j        k    r0|r| 
                    d¦  «         dS | 
                    d¦  «         dS |j        t          j        j        k    rnt/          j        |¦  «        r$| 
                    t          |¦  «        ¦  «         dS | 
                    t          t3          j        |¦  «        ¦  «        ¦  «         dS | 
                    t          |¦  «        ¦  «         dS )zÝPrint a single field value (not including name).

    For repeated fields, the value should be a single element.

    Args:
      field: The descriptor of the field to be printed.
      value: The value of the field.
    Nr   rQ   FÚtrueÚfalse)rA   r¦   r   r\   r§   r�   ÚCPPTYPE_ENUMÚ	enum_typeÚvalues_by_numberrU   r8   rg   r   r¨   rS   r6   rV   r[   Ú
TYPE_BYTESr   r¹   ÚCPPTYPE_BOOLÚCPPTYPE_FLOATÚmathÚisnanr   ÚToShortestFloat)r#   rc   rs   rA   Ú
enum_valueÚ	out_valueÚout_as_utf8s          r   r   z_Printer.PrintFieldValueJ  s"  € ð Œ(€CØ„~�Ô3ÔCÒCÐCØ
×"Ò" 5Ñ)Ô)Ð)Ð)Ð)Ø	Œ�:Ô5ÔBÒ	BÐ	BØ”?Ô3×7Ò7¸¸tÑDÔD€jØ	Ð	Ø�	Š	�*”/Ñ"Ô"Ð"Ð"Ð"à�	Š	•#�e‘*”*ÑÔÐÐÐØ	Œ�:Ô5ÔDÒ	DÐ	DØ	‡i‚i��o„o€oÝ	�E�3Ñ	Ô	ð ¨¬ð Ø—L’L Ñ)Ô)ˆ	ˆ	àˆ	Ø	Œ•zÔ1Ô<Ò	<Ð	<àˆˆà”lˆØ	‡i‚i•Ô% i°Ñ=Ô=Ñ>Ô>Ð>Ø	‡i‚i��o„o€o€o€oØ	Œ�:Ô5ÔBÒ	BÐ	BØ	ð Ø�	Š	�&ÑÔÐÐÐà�	Š	�'ÑÔÐÐÐØ	Œ�:Ô5ÔCÒ	CÐ	CÝ	Œ�EÑ	Ô	ð =Ø�	Š	•#�e‘*”*ÑÔÐÐÐà�	Š	•#•mÔ3°EÑ:Ô:Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<à	‡i‚i•�E‘
”
ÑÔÐÐÐr   )r   r   r   r   Ú_as_utf8_defaultr    r’   r•   r
   rª   rÀ   r   r©   r�   r   r   r   r   rL   rL   X  sÞ   € € € € € Ø1Ð1ð
 ØØØ$)ØØØØØØ Øð0#ð 0#ð 0#ð 0#ðdð ð ð 	ð 	ð 	ð%Hð %Hð %HðN55ð 55ð 55ðnð ð ð<6ð 6ð 6ð
6ð 
6ð 
6ð1ð 1ð 1ð&*ð *ð *ð *ð *r   rL   c           	      ó‚   — t          |                      t          | t          ¦  «        rdnd¦  «        ||||||¬¦  «        S )aï  Parses a text representation of a protocol message into a message.

  NOTE: for historical reasons this function does not clear the input
  message. This is different from what the binary msg.ParseFrom(...) does.
  If text contains a field already set in message, the value is appended if the
  field is repeated. Otherwise, an error is raised.

  Example::

    a = MyProto()
    a.repeated_field.append('test')
    b = MyProto()

    # Repeated fields are combined
    text_format.Parse(repr(a), b)
    text_format.Parse(repr(a), b) # repeated_field contains ["test", "test"]

    # Non-repeated fields cannot be overwritten
    a.singular_field = 1
    b.singular_field = 2
    text_format.Parse(repr(a), b) # ParseError

    # Binary version:
    b.ParseFromString(a.SerializeToString()) # repeated_field is now "test"

  Caller is responsible for clearing the message as needed.

  Args:
    text (str): Message text representation.
    message (Message): A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool (DescriptorPool): Descriptor pool used to resolve Any types.
    allow_unknown_field: if True, skip over unknown field and keep
      parsing. Avoid to use this option if possible. It may hide some
      errors (e.g. spelling error on field name)
    max_recursion_depth: Optional maximum recursion depth of a text proto
      message to be deserialized. Text proto messages over this depth will
      fail to parse. ``None`` keeps the historical unbounded behavior.

  Returns:
    Message: The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  ó   
r‹   ©rH   Úallow_unknown_fieldÚmax_recursion_depth)Ú
ParseLinesÚsplitrS   rT   ©rX   r$   Úallow_unknown_extensionÚallow_field_numberrH   rá   râ   s          r   r	   r	   w  sO   € õl 
�D—J’J­
°4½Ñ(?Ô(?ÐJ˜u˜uÀUÑKÔKØØ+Ø&Ø$3Ø(;Ø(;ð
=ñ 
=ô 
=ð =r   c           	      ó‚   — t          |                      t          | t          ¦  «        rdnd¦  «        ||||||¬¦  «        S )a}  Parses a text representation of a protocol message into a message.

  Like Parse(), but allows repeated values for a non-repeated field, and uses
  the last one. This means any non-repeated, top-level fields specified in text
  replace those in the message.

  Args:
    text (str): Message text representation.
    message (Message): A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool (DescriptorPool): Descriptor pool used to resolve Any types.
    allow_unknown_field: if True, skip over unknown field and keep
      parsing. Avoid to use this option if possible. It may hide some
      errors (e.g. spelling error on field name)
    max_recursion_depth: Optional maximum recursion depth of a text proto
      message to be deserialized. Text proto messages over this depth will
      fail to parse. ``None`` keeps the historical unbounded behavior.

  Returns:
    Message: The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  rß   r‹   rà   )Ú
MergeLinesrä   rS   rT   rå   s          r   r   r   ¶  sP   € õB 
Ø
‡j‚j�* T­5Ñ1Ô1Ð<��°uÑ=Ô=ØØØØ%Ø-Ø-ð
/ñ 
/ô 
/ð /r   c                 óV   — t          |||||¬¦  «        }|                     | |¦  «        S )aÎ  Parses a text representation of a protocol message into a message.

  See Parse() for caveats.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    allow_unknown_field: if True, skip over unknown field and keep
      parsing. Avoid to use this option if possible. It may hide some
      errors (e.g. spelling error on field name)
    max_recursion_depth: Optional maximum recursion depth of a text proto
      message to be deserialized. Text proto messages over this depth will
      fail to parse. ``None`` keeps the historical unbounded behavior.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  rà   )Ú_Parserrã   ©Úlinesr$   ræ   rç   rH   rá   râ   Úparsers           r   rã   rã   á  ó?   € õ> Ð*Ø%Ø#2Ø':Ø':ð	<ñ <ô <€&ð
 
×	Ò	˜5 'Ñ	*Ô	*Ð*r   c                 óV   — t          |||||¬¦  «        }|                     | |¦  «        S )aÓ  Parses a text representation of a protocol message into a message.

  See Merge() for more details.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    allow_unknown_field: if True, skip over unknown field and keep
      parsing. Avoid to use this option if possible. It may hide some
      errors (e.g. spelling error on field name)
    max_recursion_depth: Optional maximum recursion depth of a text proto
      message to be deserialized. Text proto messages over this depth will
      fail to parse. ``None`` keeps the historical unbounded behavior.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  rà   )rë   ré   rì   s           r   ré   ré     rï   r   c                   ó~   — e 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S )rë   z(Text format parser for protocol message.FNc                 óZ   — || _         || _        || _        || _        || _        d| _        d S r˜   )ræ   rç   rH   rá   râ   Úrecursion_depth)r#   ræ   rç   rH   rá   râ   s         r   r    z_Parser.__init__2  s:   € ð $;€DÔ Ø0€DÔØ*€DÔØ2€DÔØ2€DÔØ€DÔÐÐr   c                 ó@   — d| _         |                      ||¦  «         |S )zBParses a text representation of a protocol message into a message.F©Ú_allow_multiple_scalarsÚ_ParseOrMerge©r#   rí   r$   s      r   rã   z_Parser.ParseLines?  s%   € à#(€DÔ Ø×Ò�u˜gÑ&Ô&Ð&Ø€Nr   c                 ó@   — d| _         |                      ||¦  «         |S )zBMerges a text representation of a protocol message into a message.Trõ   rø   s      r   ré   z_Parser.MergeLinesE  s%   € à#'€DÔ Ø×Ò�u˜gÑ&Ô&Ð&Ø€Nr   c                 óÒ  — 	 d„ |D ¦   «         }t          |¦  «        }n# t          $ r}t          |‚d}~ww xY w|r|j        j        | _        | xj        dz  c_        | j        �7| j        | j        k    r't          d                     | j        ¦  «        ¦  «        ‚| 	                    ¦   «         s*|  
                    ||¦  «         | 	                    ¦   «         ¯*| xj        dz  c_        dS )züConverts a text representation of a protocol message into a message.

    Args:
      lines: Lines of a message's text representation.
      message: A protocol buffer message to merge into.

    Raises:
      ParseError: On text parsing problems.
    c              3   ón   K  — | ]0}t          |t          ¦  «        r|n|                     d ¦  «        V — Œ1dS )rQ   N)rS   r   Údecode)Ú.0r%   s     r   ú	<genexpr>z(_Parser._ParseOrMerge.<locals>.<genexpr>W  sU   è è € ð ð àõ ˜T¥3Ñ'Ô'Ð
Aˆ$ˆ$¨T¯[ª[¸Ñ-AÔ-Aðð ð ð ð ð r   NrÃ   ú,Message too deep. Max recursion depth is {0})Ú	TokenizerÚUnicodeDecodeErrorr   rž   rŸ   Ú	root_typeró   râ   r   ÚAtEndÚ_MergeField)r#   rí   r$   Ú	str_linesÚ	tokenizerÚes         r   r÷   z_Parser._ParseOrMergeK  s#  € ððð àðñ ô €iõ ˜IÑ&Ô&€i€iøÝð ð ð Ý˜AÐøøøøðøøøàð 4ØÔ)Ô3€d„nØÐÔ˜AÑÐÔàÔ Ð,ØÔ  4Ô#;Ò;Ð;åØ
8×
?Ò
?ØÔ&ñô ñô ð ð
 �oŠoÑÔð +Ø
×Ò�y 'Ñ*Ô*Ð*ð �oŠoÑÔð +àÐÔ˜AÑÐÔÐÐs   ‚ ž
5¨0°5c                 óœ  — | xj         dz  c_         | j        �7| j         | j        k    r't          d                     | j        ¦  «        ¦  «        ‚|                     |¦  «        sX|                     ¦   «         r|                     d|›d�¦  «        ‚|                      ||¦  «         |                     |¦  «        ¯X| xj         dz  c_         d S )NrÃ   rÿ   z
Expected "ú".)ró   râ   r   r   Ú
TryConsumer  ÚParseErrorPreviousTokenr  )r#   r  r$   Ú	end_tokens       r   Ú_MergeMessagez_Parser._MergeMessagem  sö   € ØÐÔ˜AÑÐÔàÔ Ð,ØÔ  4Ô#;Ò;Ð;åØ
8×
?Ò
?ØÔ&ñô ñô ð ð
 ×"Ò" 9Ñ-Ô-ð +Ø	�ŠÑ	Ô	ð 
Ø×/Ò/Ð/Ø ) 	 	Ð+ñ
ô 
ð 	
ð ×Ò�y 'Ñ*Ô*Ð*ð ×"Ò" 9Ñ-Ô-ð +ð 	ÐÔ˜AÑÐÔÐÐr   c                 ól
  — |j         }|j        t          k    rò|                     d¦  «        rÝ|                      |¦  «        \  }}|                     d¦  «         |                      ||j        |dz   |z   ¦  «         |                     d¦  «        rd}n|                     d¦  «         d}t          || j        ¦  «        }|€t          d	|z  ¦  «        ‚|  
                    |||¦  «         d
}|                     ||dz   |¬¦  «         dS |                     d¦  «        �r |                     ¦   «         g}	|                     d¦  «        r<|	                     |                     ¦   «         ¦  «         |                     d¦  «        °<d                     |	¦  «        }	|j        s|                     d|j        z  ¦  «        ‚|j                             |	¦  «        }
|
s"| j        rd}
nD|                     d|	z  ¦  «        ‚||
j        k    r!|                     d|	›d|j        ›d�¦  «        ‚|                     d¦  «         �n|                     ¦   «         }	| j        rd|	                     ¦   «         rPt1          |	dd¦  «        }|j                             |d¦  «        }
|
s!|j        r|j                             |¦  «        }
nq|j                             |	d¦  «        }
|
sT|j                             |	                     ¦   «         d¦  «        }
|
rt=          |
¦  «        sd}
|
r|
j        j         |	k    rd}
|
s(| j!        s!|                     d|j        ›d|	›d�¦  «        ‚|
�r| j"        si|
j#        rb| $                    |
j#        j         ¦  «        }|�A||
j         k    r6|                     d|
j         ›d|›d|
j#        j         ›d|j        ›d�	¦  «        ‚|
j%        tL          j'        j(        k    r>|                     d¦  «         |                      ||j        |
j        ¦  «         | j)        }n=|                     d¦  «         |                      ||j        |
j        ¦  «         | j*        }|
j+        re|                     d¦  «        rP|                     d¦  «        s:	  ||||
¦  «         |                     d¦  «        rn|                     d¦  «         Œ9n: ||||
¦  «         n,| j        s	| j!        sJ ‚|  ,                    ||	|j        ¦  «         |                     d¦  «        s|                     d¦  «         dS dS )zþMerges a single protocol message field into a message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      message: A protocol message to record the data.

    Raises:
      ParseError: In case of text parsing problems.
    r‰   r†   r…   rÈ   rÉ   rÊ   rË   Nz$Type %s not found in descriptor poolF)Útype_url_prefixÚdeterministicú.z+Message type "%s" does not have extensions.zþExtension "%s" not registered. Did you import the _pb2 module which defines it? If you are trying to place the extension in the MessageSet field of another message that is in an Any or MessageSet field, that message's _pb2 module must be imported as wellzExtension "z " does not extend message type "r	  rŠ   TúMessage type "z" has no field named "zField "z!" is specified along with field "z", another member of oneof "z" for message type "ú,ú;)-rž   rŸ   r    r
  Ú_ConsumeAnyTypeUrlÚ_DetectSilentMarkerÚConsumer   rH   r   r  ÚPackÚConsumeIdentifierÚappendÚjoinÚis_extendabler  Ú
ExtensionsÚ_FindExtensionByNameræ   rk   ÚConsumeIdentifierOrNumberrç   ÚisdigitÚParseIntegerÚfields_by_numberrU   Ú_FindExtensionByNumberÚfields_by_namerh   rm   r^   rg   rá   rö   Úcontaining_oneofÚ
WhichOneofr¦   r   r\   r§   Ú_MergeMessageFieldÚ_MergeScalarFieldr¥   Ú_SkipFieldContents)r#   r  r$   r~   r  Úpacked_type_nameÚexpanded_any_end_tokenÚexpanded_any_sub_messager  rg   rc   r™   Úwhich_oneofÚmergers                 r   r  z_Parser._MergeField€  sU  € ð !Ô+ÐØÔ$Õ(;Ò;Ð;Ø×Ò˜SÑ!Ô!ð 	<à*.×*AÒ*AÀ)Ñ*LÔ*LÑ'€oÐ'Ø×Ò˜3ÑÔÐØ
×ÒØ
Ø
Ô
&Ø
˜CÑ
Ð"2Ñ
2ñô ð ð
 
×	Ò	˜cÑ	"Ô	"ð %Ø!$ÐÐà×Ò˜#ÑÔÐØ!$ÐÝ!:Ð;KØ;?Ô;Oñ"Qô "QÐð
 
"Ð	)ÝÐ?Ø)ñ*ñ +ô +ð 	+à
×ÒØ
Ð-Ð/Eñô ð ð €mà‡l‚lØ
"Ø)¨CÑ/Ø%ð ñ ô ð ð
 €fà×Ò˜CÑ Ô ñ 52Ø×)Ò)Ñ+Ô+Ð,€dØ× Ò  Ñ%Ô%ð 3Ø�Š�I×/Ò/Ñ1Ô1Ñ2Ô2Ð2ð × Ò  Ñ%Ô%ð 3à�XŠX�d‰^Œ^€dàÔ-ð *Ø×/Ò/Ø9ØÔ(ñ)ñ*ô *ð 	*ð Ô ×5Ò5°dÑ;Ô;€eàð 2ØÔ'ð 	MØˆ%ˆ%à×1Ò1ðEð HLñ	LñMô Mð Mð  Ô!6Ò6Ð6Ø×/Ò/Ð/àˆTˆTÐ%Ô/Ð/Ð/ð1ñ2ô 2ð 	2ð ×Ò˜ÑÔÐÑð ×0Ò0Ñ2Ô2€dØ	Ô	 ð  T§\¢\¡^¤^ð Ý˜d D¨$Ñ/Ô/ˆØ"Ô3×7Ò7¸ÀÑEÔEˆØð 	DÐ+Ô9ð 	DØÔ$×;Ò;¸FÑCÔCˆ%øà"Ô1×5Ò5°d¸DÑAÔAˆð
 ð 	Ø$Ô3×7Ò7¸¿
º
¹¼ÀdÑKÔKˆ%Øð �<¨Ñ.Ô.ð ØˆEØð �uÔ)Ô.°$Ò6Ð6ØˆEàð 2˜4Ô3ð 2Ø×/Ò/Ð/àÔ)Ð)Ð)¨4¨4¨4ð1ñ2ô 2ð 	2ð ñ 'MØÔ)ð 
.¨eÔ.Dð 
.ð ×(Ò(¨Ô)?Ô)DÑEÔEˆØÐ" {°e´jÒ'@Ð'@Ø×1Ò1Ð1ð Œzˆzˆz˜;˜;˜;¨Ô(>Ô(CÐ(CÐ(CØ!Ô+Ð+Ð+ð-ñ.ô .ð .ð 
Œ�:Ô5ÔEÒ	EÐ	EØ×Ò˜SÑ!Ô!Ð!Ø× Ò  Ð,>Ô,HØ!&¤ñ	2ô 	2ð 	2àÔ(ˆˆà×Ò˜#ÑÔÐØ× Ò  Ð,>Ô,HØ!&¤ñ	2ô 	2ð 	2àÔ'ˆà
Ô
ð *Ø
×
Ò
˜sÑ
#Ô
#ð*ð ×#Ò# CÑ(Ô(ð 	#ð#ØˆF�9˜g uÑ-Ô-Ð-Ø×#Ò# CÑ(Ô(ð ØØ×Ò˜cÑ"Ô"Ð"ð	#øð 	ˆˆy˜' 5Ñ)Ô)Ð)Ð)ð Ô*ÐG¨dÔ.FÐGÐGÐFØ
×Ò˜i¨Ð/AÔ/KÑLÔLÐLð ×Ò Ñ$Ô$ð  Ø×Ò˜3ÑÔÐÐÐð ð  r   c                 ó   — d S r*   r   )r#   Úimmediate_message_typeÚ
field_names      r   Ú_LogSilentMarkerz_Parser._LogSilentMarker  s   € Ø€Dr   c                 óD   — |j         r|                      ||¦  «         d S d S r*   )Ú+contains_silent_marker_before_current_tokenr2  )r#   r  r0  r1  s       r   r  z_Parser._DetectSilentMarker  s7   € ØÔ<ð @Ø
×ÒÐ2°JÑ?Ô?Ð?Ð?Ð?ð@ð @r   c                 ó†  — g }d}	 	 |                      |                     ¦   «         ¦  «         Œ*# t          $ r Y nw xY w|                     d¦  «        r%t	          |¦  «        }|                      d¦  «         n|                     d¦  «         nŒŠ|dk    r|                     d¦  «        ‚d                     |d|…         ¦  «        }d                     ||dz   d…         ¦  «        }|s|                     d	¦  «        ‚|                     d¦  «        r|                     d
¦  «        ‚t          |¦  «        D ]T\  }}|dk    rIt           
                    |||dz   …         ¦  «        s$|                     d|||dz   …         › d�¦  «        ‚ŒUt           
                    |¦  «        s|                     d|z  ¦  «        ‚||fS )a$  Consumes a google.protobuf.Any type URL.

    Assumes the caller has already consumed the opening [ and consumes up to the
    closing ].

    Args:
      tokenizer: A tokenizer to parse the type URL.

    Returns:
      A tuple of type URL prefix (without trailing slash) and type name.
    rÄ   Tr…   rŠ   zType URL does not contain "/".r‡   NrÃ   zType URL prefix is empty.z Type URL prefix starts with "/".ú%r�   zInvalid percent escape, got "r	  zExpected type name, got "%s".)r  ÚConsumeUrlCharsr   r
  r·   r  r  Ú
startswithÚ	enumerateÚ_PERCENT_ENCODINGÚmatchÚ
_TYPE_NAME)r#   r  ÚtokensÚ
last_slashÚprefixrg   rÆ   Úchars           r   r  z_Parser._ConsumeAnyTypeUrl  s  € ð €FØ€JððØ�Š�i×/Ò/Ñ1Ô1Ñ2Ô2Ð2ØøÝð ð ð Øˆðøøøà	×	Ò	˜cÑ	"Ô	"ð Ý˜‘[”[ˆ
Ø�Š�cÑÔÐÐà×Ò˜#ÑÔÐØðð �RÒÐØ× Ò Ð!AÑBÔBÐBà�WŠW�V˜K˜Z˜KÔ(Ñ)Ô)€FØ�7Š7�6˜* q™.Ð*Ð*Ô+Ñ,Ô,€Dàð >Ø× Ò Ð!<Ñ=Ô=Ð=Ø×Ò˜ÑÔð EØ× Ò Ð!CÑDÔDÐDõ ˜VÑ$Ô$ð 
ð 
‰ˆˆ4Ø	�ŠˆÕ.×4Ò4°V¸AÀÀAÁ¸IÔ5FÑGÔGˆØ×"Ò"ØA¨F°1°q¸1±u°9Ô,=ÐAÐAÐAñ
ô 
ð 	
øõ ×Ò˜DÑ!Ô!ð IØ× Ò Ð!@À4Ñ!GÑHÔHÐHà�4ˆ<Ðs   ‡'/ ¯
<»<c                 ó€  — t          |¦  «        }|                     d¦  «        rd}n|                     d¦  «         d}|j        r‚|j        r!|j        |                              ¦   «         }�n+|r0 t          ||j        ¦  «         	                    ¦   «         ¦   «         }nùt          ||j        ¦  «                             ¦   «         }nÑ|j        rU| j
        s@|                     |¦  «        r+|                     d|j        j        ›d|j        ›d�¦  «        ‚|j        |         }na| j
        sE|                     |j        ¦  «        r+|                     d|j        j        ›d|j        ›d�¦  «        ‚t          ||j        ¦  «        }|                     ¦   «          |                      |||¦  «         |rŒ|j        j        d	         j        }|t*          j        j        k    r<t          ||j        ¦  «        |j                 }|                     |j        ¦  «         d
S |j        t          ||j        ¦  «        |j        <   d
S d
S )a"  Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: The message of which field is a member.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
    rÈ   rÉ   rÊ   rË   r  ú" should not have multiple "ú" extensions.ú	" fields.rs   N)rd   r
  r  r¥   rj   r  ÚaddÚgetattrrg   r¤   rö   ÚHasExtensionr  rž   rŸ   ÚHasFieldÚSetInParentr  r^   r$  r¦   r   r\   r§   r�   ÚCopyFromrs   )	r#   r  r$   rc   Úis_map_entryr  Úsub_messageÚvalue_cpptypers   s	            r   r'  z_Parser._MergeMessageFieldP  s`  € õ ˜uÑ%Ô%€Là×Ò˜CÑ Ô ð Ø€i€ià×Ò˜ÑÔÐØ€iàÔð  Ø	Ô	ð 9ØÔ(¨Ô/×3Ò3Ñ5Ô5ˆ‰Øð 9ØB•g˜g u¤zÑ2Ô2×@Ò@ÑBÔBÑDÔDˆˆå˜g u¤zÑ2Ô2×6Ò6Ñ8Ô8ˆˆà	Ô	ð 3ØÔ,ð 	?Ø× Ò  Ñ'Ô'ð	?à×1Ò1Ð1àÔ!Ô+Ð+Ð+¨U¬_¨_¨_ð>ñ?ô ?ð ?ð Ô(¨Ô/ˆˆð Ô,ð 	:Ø×Ò˜UœZÑ(Ô(ð	:à×1Ò1Ð1àÔ!Ô+Ð+Ð+¨U¬Z¨Z¨Zð9ñ:ô :ð :õ ˜g u¤zÑ2Ô2ˆØ×ÒÑÔÐà×Ò�y +¨yÑ9Ô9Ð9àð JØÔ(Ô7¸Ô@ÔI€mØ	�*Ô4ÔDÒ	DÐ	DÝ˜ ¤Ñ,Ô,¨[¬_Ô=ˆØ�Š�{Ô(Ñ)Ô)Ð)Ð)Ð)à8CÔ8I��˜œÑ$Ô$ [¤_Ñ5Ð5Ð5ðJð Jr   c                 óî  — | j         }d}|j        t          j        j        t          j        j        t          j        j        fv rt          |¦  «        }�nÐ|j        t          j        j        t          j        j	        t          j        j
        fv rt          |¦  «        }�n†|j        t          j        j        t          j        j        fv rt          |¦  «        }�nL|j        t          j        j        t          j        j        fv rt#          |¦  «        }�n|j        t          j        j        t          j        j        fv r|                     ¦   «         }nÔ|j        t          j        j        k    r|                     ¦   «         }n¥|j        t          j        j        k    r|                     ¦   «         }nv|j        t          j        j        k    r|                     ¦   «         }nG|j        t          j        j        k    r|                     |¦  «        }nt;          d|j        z  ¦  «        ‚|j        rS|j        r"|j         |          !                    |¦  «         dS tE          ||j#        ¦  «         !                    |¦  «         dS |j        rZ| j$        sG|j%        r@| &                    |¦  «        r+| '                    d|j(        j)        ›d|j)        ›d�¦  «        ‚||j         |<   dS d}| j$        sJ|j%        r| *                    |j#        ¦  «        }n(tW          j,        tE          ||j#        ¦  «        ¦  «         }|r+| '                    d|j(        j)        ›d|j#        ›d�¦  «        ‚t[          ||j#        |¦  «         dS )aH  Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: A protocol message to record the data.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
      RuntimeError: On runtime errors.
    NzUnknown field type %dr  rB  rC  FrD  ).ræ   r[   r   r\   Ú
TYPE_INT32ÚTYPE_SINT32ÚTYPE_SFIXED32Ú_ConsumeInt32Ú
TYPE_INT64ÚTYPE_SINT64ÚTYPE_SFIXED64Ú_ConsumeInt64ÚTYPE_UINT32ÚTYPE_FIXED32Ú_ConsumeUint32ÚTYPE_UINT64ÚTYPE_FIXED64Ú_ConsumeUint64Ú
TYPE_FLOATÚTYPE_DOUBLEÚConsumeFloatÚ	TYPE_BOOLÚConsumeBoolÚTYPE_STRINGÚConsumeStringrÔ   ÚConsumeByteStringÚ	TYPE_ENUMÚConsumeEnumÚRuntimeErrorr¥   rj   r  r  rF  rg   rö   Úhas_presencerG  r  rž   rŸ   rH  r   ÚIsDefaultScalarValueÚsetattr)r#   r  r$   rc   Ú_rs   Úduplicate_errors          r   r(  z_Parser._MergeScalarField‡  sˆ  € ð 	Ô$€AØ€Eà„z•jÔ0Ô;Ý Ô0Ô<Ý Ô0Ô>ð@ð @ð @õ ˜IÑ&Ô&€e�eØ	Œ�
Ô2Ô=Ý"Ô2Ô>Ý"Ô2Ô@ðBð 
Bð 
Bõ ˜IÑ&Ô&€e�eØ	Œ�
Ô2Ô>Ý"Ô2Ô?ðAð 
Að 
Aå˜YÑ'Ô'€e�eØ	Œ�
Ô2Ô>Ý"Ô2Ô?ðAð 
Að 
Aå˜YÑ'Ô'€e�eØ	Œ�
Ô2Ô=Ý"Ô2Ô>ð@ð 
@ð 
@à×$Ò$Ñ&Ô&€e€eØ	Œ•zÔ1Ô;Ò	;Ð	;Ø×#Ò#Ñ%Ô%€e€eØ	Œ•zÔ1Ô=Ò	=Ð	=Ø×%Ò%Ñ'Ô'€e€eØ	Œ•zÔ1Ô<Ò	<Ð	<Ø×)Ò)Ñ+Ô+€e€eØ	Œ•zÔ1Ô;Ò	;Ð	;Ø×#Ò# EÑ*Ô*€e€eåÐ0°5´:Ñ=Ñ>Ô>Ð>àÔð  .Ø	Ô	ð 3ØÔ˜5Ô!×(Ò(¨Ñ/Ô/Ð/Ð/Ð/å�˜œÑ$Ô$×+Ò+¨EÑ2Ô2Ð2Ð2Ð2à	Ô	ð .ØÔ,ð 	,ØÔð	,à× Ò  Ñ'Ô'ð	,ð ×1Ò1Ð1àÔ!Ô+Ð+Ð+¨U¬_¨_¨_ð>ñ?ô ?ð ?ð ',ˆ'Ô
˜UÑ
#Ð
#Ð
#àˆØÔ+ð 	ØÔð Ø%×.Ò.¨u¬zÑ:Ô:ˆOˆOõ #*Ô">Ý˜ ¤Ñ,Ô,ñ#ô #ð ˆOð ð 	.Ø×1Ò1Ð1àÔ!Ô+Ð+Ð+¨U¬Z¨Z¨Zð9ñ:ô :ð :õ �'˜5œ: uÑ
-Ô
-Ð
-Ð
-Ð
-r   c                 ó”  — |                      d¦  «        r…|                     d¦  «        sp|                     d¦  «        s[|                      |||¦  «         |                     d¦  «        r|                      ||¦  «         dS |                      |¦  «         dS |                      |||¦  «         |                      ||¦  «         dS )a$  Skips over contents (value or message) of a field.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      field_name: The field name currently being parsed.
      immediate_message_type: The type of the message immediately containing
        the silent marker.
    r†   rÊ   rÈ   r‰   N)r
  Ú	LookingAtr  Ú_SkipRepeatedFieldValueÚ_SkipFieldValueÚ_SkipFieldMessage)r#   r  r1  r0  s       r   r)  z_Parser._SkipFieldContentsÔ  sê   € ð ×ÒØñô ð 	@Ø×(Ò(¨Ñ-Ô-ð	@Ø6?×6IÒ6IÈ#Ñ6NÔ6Nð	@à
×Ò˜yÐ*@À*ÑMÔMÐMØ	×	Ò	˜SÑ	!Ô	!ð (Ø×$Ò$ YÐ0FÑGÔGÐGÐGÐGà×Ò˜YÑ'Ô'Ð'Ð'Ð'à
×Ò˜yÐ*@À*ÑMÔMÐMØ
×Ò˜YÐ(>Ñ?Ô?Ð?Ð?Ð?r   c                 óÚ  — d}|                      d¦  «        rù|d|                     ¦   «         z   z  }d}|                      d¦  «        r4|d|                     ¦   «         z   z  }|dz  }|                      d¦  «        °4|dk    rs|                      d¦  «        r^|d|                     ¦   «         z   z  }|                      d¦  «        r/|d|                     ¦   «         z   z  }|                      d¦  «        °/|                     d¦  «         |dz  }n||                     ¦   «         z  }|                      |||¦  «         |                      d¦  «        s|                      d	¦  «         d
S d
S )zîSkips over a complete field (name and value/message).

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      immediate_message_type: The type of the message immediately containing
        the silent marker.
    r‡   r‰   rÃ   r  r�   r…   rŠ   r  r  N)r
  r  r  r  r)  )r#   r  r0  r1  Únum_identifierss        r   Ú
_SkipFieldz_Parser._SkipFieldî  s¡  € ð €JØ×Ò˜CÑ Ô ð :à�C˜)×5Ò5Ñ7Ô7Ñ7Ñ7€jØ€oØ× Ò  Ñ%Ô%ð Ø�c˜I×7Ò7Ñ9Ô9Ñ9Ñ9ˆ
Ø˜1Ñˆð × Ò  Ñ%Ô%ð ð 
˜AÒ	Ð	 )×"6Ò"6°sÑ";Ô";Ð	Ø�c˜I×7Ò7Ñ9Ô9Ñ9Ñ9ˆ
Ø×"Ò" 3Ñ'Ô'ð 	<Ø
˜˜i×9Ò9Ñ;Ô;Ñ;Ñ
;ˆ*ð ×"Ò" 3Ñ'Ô'ð 	<à×Ò˜ÑÔÐØ�CÑ€j€jà�I×7Ò7Ñ9Ô9Ñ9€jà×Ò˜I zÐ3IÑJÔJÐJð ×Ò Ñ$Ô$ð  Ø×Ò˜3ÑÔÐÐÐð ð  r   c                 ób  — |                      d¦  «        rd}n|                     d¦  «         d}|                     d¦  «        sU|                     d¦  «        s@|                      ||¦  «         |                     d¦  «        s|                     d¦  «        ¯@|                     |¦  «         dS )zÓSkips over a field message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      immediate_message_type: The type of the message immediately containing
        the silent marker
    rÈ   rÉ   rÊ   rË   N)r
  r  rn  rt  )r#   r  r0  Ú	delimiters       r   rq  z_Parser._SkipFieldMessage  sÃ   € ð ×Ò˜CÑ Ô ð Ø€i€ià×Ò˜ÑÔÐØ€ià×!Ò! #Ñ&Ô&ð 9¨y×/BÒ/BÀ3Ñ/GÔ/Gð 9Ø
‡o‚o�iÐ!7Ñ8Ô8Ð8ð ×!Ò! #Ñ&Ô&ð 9¨y×/BÒ/BÀ3Ñ/GÔ/Gð 9ð ×Ò�iÑ Ô Ð Ð Ð r   c                 óø   — |                      ¦   «         s]|                     ¦   «         sKt          |¦  «        s>t          |¦  «        s1|                     ¦   «         st          d|j        z   ¦  «        ‚dS dS dS dS dS )z²Skips over a field value.

    Args:
      tokenizer: A tokenizer to parse the field name and values.

    Raises:
      ParseError: In case an invalid field value is found.
    zInvalid field value: N)ÚTryConsumeByteStringÚTryConsumeIdentifierÚ_TryConsumeInt64Ú_TryConsumeUint64ÚTryConsumeFloatr   Útoken)r#   r  s     r   rp  z_Parser._SkipFieldValue"  s½   € ð ×*Ò*Ñ,Ô,ð BØ×*Ò*Ñ,Ô,ðBå˜YÑ'Ô'ðBõ ˜iÑ(Ô(ðBð ×%Ò%Ñ'Ô'ð	Bõ
 Ð.°´Ñ@ÑAÔAÐAðBð Bð Bð Bð Bð Bð Bð Bð Bð Br   c                 ób  — |                      d¦  «         |                     d¦  «        s„	 |                     d¦  «        s|                     d¦  «        r|                      ||¦  «         n|                      |¦  «         |                     d¦  «        rdS |                      d¦  «         ŒƒdS )ziSkips over a repeated field value.

    Args:
      tokenizer: A tokenizer to parse the field value.
    r‰   rŠ   TrÈ   rÊ   r  N)r  r
  rn  rq  rp  )r#   r  r0  s      r   ro  z_Parser._SkipRepeatedFieldValue2  sÊ   € ð ×Ò�cÑÔÐØ×Ò Ñ$Ô$ð ðØ×Ò˜sÑ#Ô#ð 	* y×':Ò':¸3Ñ'?Ô'?ð 	*Ø
×
 Ò
  Ð,BÑ
CÔ
CÐ
CÐ
Cà
×
Ò
˜yÑ
)Ô
)Ð
)Ø×Ò Ñ$Ô$ð 	Ø
ˆ%Ø×Ò˜#ÑÔÐððð r   ©FFNFN)r   r   r   r   r    rã   ré   r÷   r  r  r2  r  r  r'  r(  r)  rt  rq  rp  ro  r   r   r   rë   rë   /  s8  € € € € € Ø0Ð0ð (-Ø"'Ø#Ø#(Ø#'ðð ð ð ðð ð ðð ð ð ð  ð  ðDð ð ð&P ð P ð P ðd	ð 	ð 	ð@ð @ð @ð5ð 5ð 5ðn5Jð 5Jð 5JðnK.ð K.ð K.ðZ@ð @ð @ð4 ð  ð  ðB!ð !ð !ð&Bð Bð Bð ð ð ð ð r   rë   c                   óþ  — e Zd ZdZ ej        d¦  «        Z ej        dej        ¦  «        Z ej        dej        ¦  «        Z	 ej        d 
                    ddgd„ eD ¦   «         z   ¦  «        ¦  «        Z ej        d	¦  «        Z ej        d
¦  «        Z ej        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*S ),r   zÍProtocol buffer text representation tokenizer.

  This class handles the lower level string parsing by splitting it into
  meaningful tokens.

  It was directly ported from the Java protocol buffer API.
  z\s+z	(\s*#.*$)z(\s|(#.*$))+ú|z[a-zA-Z_][0-9a-zA-Z_+-]*z#([0-9+-]|(\.[0-9]))[0-9a-zA-Z_.+-]*c                 ó:   — g | ]}d                       |¬¦  «        ‘ŒS )z0{qt}[^{qt}\n\\]*((\\.)+[^{qt}\n\\]*)*({qt}|\\?$))Úqt)r   )rý   Úmarks     r   ú
<listcomp>zTokenizer.<listcomp>V  sD   € ð ð ð ð
 ð B×HÒHØð Iñ ô ðð ð r   z
[^\d\W]\w*z\w+z^[0-9a-zA-Z-.~_ !$&()*+,;=%]+$Tc                 óB  — d| _         d| _        d| _        d | _        d| _        t          |¦  «        | _        d| _        d| _        d| _	        d| _
        || _        |r| j        p| j        | _        d| _        |                      ¦   «          |                      ¦   «          d S )Nr   rÄ   r‡   TF)Ú	_positionr!   r"   Ú_token_startr}  ÚiterÚ_linesÚ_current_lineÚ_previous_lineÚ_previous_columnÚ_more_linesÚ_skip_commentsÚ_WHITESPACE_OR_COMMENTÚ_WHITESPACEÚ_whitespace_patternr4  Ú_SkipWhitespaceÚ	NextToken)r#   rí   Úskip_commentss      r   r    zTokenizer.__init__e  s©   € Ø€D„NØ€D„JØ€D„LØ€DÔØ€D„JÝ�u‘+”+€D„KØ€DÔØ€DÔØ€DÔØ€DÔØ'€DÔØ -Ð M°$Ô2Mð !4Ø#'Ô#3ð 	Ôà7<€DÔ4à×ÒÑÔÐØ‡N‚NÑÔÐÐÐr   c                 ó   — | j         |k    S r*   ©r}  ©r#   r}  s     r   rn  zTokenizer.LookingAtx  s   € ØŒ:˜ÒÐr   c                 ó   — | j          S )z^Checks the end of the text was reached.

    Returns:
      True iff the end was reached.
    r—  r+   s    r   r  zTokenizer.AtEnd{  s   € ð Œzˆ>Ðr   c                 ó   — t          | j        ¦  «        | j        k    rp	 t          | j        ¦  «        | _        | xj        dz  c_        d| _        n# t          $ r d| _        d| _        Y d S w xY wt          | j        ¦  «        | j        k    °nd S d S )NrÃ   r   r‡   F)r·   r‹  r"   ÚnextrŠ  r!   ÚStopIterationrŽ  r+   s    r   Ú_PopLinezTokenizer._PopLineƒ  s¥   € Ý
ˆdÔ Ñ
!Ô
! T¤\Ò
1Ð
1ðÝ! $¤+Ñ.Ô.ˆÔð 	ˆ
Œ
�a‰ˆ
Œ
ØˆŒˆøõ ð ð ð ØˆÔØ ˆÔØˆˆðøøøõ ˆdÔ Ñ
!Ô
! T¤\Ò
1Ð
1Ð
1Ð
1Ð
1Ð
1s   ŸA ÁA,Á+A,c                 ó0  — 	 |                       ¦   «          | j                             | j        | j        ¦  «        }|sd S |                     d¦  «        dt          z   k    | _        t          |                     d¦  «        ¦  «        }| xj        |z  c_        Œ–)NTr   rˆ   )	r�  r’  r;  r‹  r"   ÚgroupÚ_DEBUG_STRING_SILENT_MARKERr4  r·   )r#   r;  Úlengths      r   r“  zTokenizer._SkipWhitespace�  sŠ   € ðØ
‡m‚m�o„o€oØÔ&×,Ò,¨TÔ-?ÀÄÑNÔN€eØð ØˆØ9>¿ºÀQ¹¼Ø
Õ+Ñ
+ò:-€dÔ6å�5—;’;˜q‘>”>Ñ"Ô"€fØ
€l„l�fÑ€l„lðr   c                 óH   — | j         |k    r|                      ¦   «          dS dS )z‰Tries to consume a given piece of text.

    Args:
      token: Text to consume.

    Returns:
      True iff the text was consumed.
    TF)r}  r”  r˜  s     r   r
  zTokenizer.TryConsumeš  s+   € ð „z�UÒÐØ
‡n‚nÑÔÐØˆTØˆ5r   c                 ó`   — |                       |¦  «        s|                      d|z  ¦  «        ‚dS )zˆConsumes a piece of text.

    Args:
      token: Text to consume.

    Raises:
      ParseError: If the text couldn't be consumed.
    zExpected "%s".N)r
  r   r˜  s     r   r  zTokenizer.Consume¨  s:   € ð �?Š?˜5Ñ!Ô!ð 6Ø�OŠOÐ,¨uÑ4Ñ5Ô5Ð5ð6ð 6r   c                 óš   — | j         }| j                             |¦  «        s|                      d¦  «        ‚|                      ¦   «          |S )NzExpected comment.)r}  Ú_COMMENTr;  r   r”  ©r#   rO   s     r   ÚConsumeCommentzTokenizer.ConsumeComment´  sI   € ØŒZ€FØŒ=×Ò˜vÑ&Ô&ð 1Ø�OŠOÐ/Ñ0Ô0Ð0Ø‡N‚NÑÔÐØ€Mr   c                 óˆ   — | j         dk    o
| j        dk    }| j        }|                      ¦   «         }| j        |k    o| }||fS )zCConsumes a comment, returns a 2-tuple (trailing bool, comment str).r   )r!   r"   rŒ  r§  )r#   Újust_startedÚbefore_parsingÚcommentÚtrailings        r   ÚConsumeCommentOrTrailingCommentz)Tokenizer.ConsumeCommentOrTrailingComment»  s^   € ð
 ”: ’?Ð8 t¤|°qÒ'8€LàÔ(€NØ×!Ò!Ñ#Ô#€Gð Ô# ~Ò5ð %Ø$Ð$ð ð �WÐÐr   c                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY w©NTF)r  r   r+   s    r   ry  zTokenizer.TryConsumeIdentifierË  ó@   € ðØ
×ÒÑÔÐØˆTøÝð ð ð ØˆUˆUðøøøó   ‚ ˜
&¥&c                 óš   — | j         }| j                             |¦  «        s|                      d¦  «        ‚|                      ¦   «          |S )ú�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    zExpected identifier.)r}  Ú_IDENTIFIERr;  r   r”  r¦  s     r   r  zTokenizer.ConsumeIdentifierÒ  sL   € ð ŒZ€FØÔ×!Ò! &Ñ)Ô)ð 4Ø�OŠOÐ2Ñ3Ô3Ð3Ø‡N‚NÑÔÐØ€Mr   c                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY wr¯  )r  r   r+   s    r   ÚTryConsumeIdentifierOrNumberz&Tokenizer.TryConsumeIdentifierOrNumberá  s@   € ðØ
×$Ò$Ñ&Ô&Ð&ØˆTøÝð ð ð ØˆUˆUðøøør±  c                 ó    — | j         }| j                             |¦  «        s|                      d|z  ¦  «        ‚|                      ¦   «          |S )r³  z&Expected identifier or number, got %s.)r}  Ú_IDENTIFIER_OR_NUMBERr;  r   r”  r¦  s     r   r  z#Tokenizer.ConsumeIdentifierOrNumberè  sR   € ð ŒZ€FØÔ%×+Ò+¨FÑ3Ô3ð OØ�OŠOÐDÀvÑMÑNÔNÐNØ‡N‚NÑÔÐØ€Mr   c                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY wr¯  )ÚConsumeIntegerr   r+   s    r   ÚTryConsumeIntegerzTokenizer.TryConsumeInteger÷  s@   € ðØ
×ÒÑÔÐØˆTøÝð ð ð ØˆUˆUðøøør±  c                 óÂ   — 	 t          | j        ¦  «        }n4# t          $ r'}|                      t	          |¦  «        ¦  «        ‚d}~ww xY w|                      ¦   «          |S )z‹Consumes an integer number.

    Returns:
      The integer parsed.

    Raises:
      ParseError: If an integer couldn't be consumed.
    N)Ú_ParseAbstractIntegerr}  Ú
ValueErrorr   r   r”  ©r#   rO   r  s      r   rº  zTokenizer.ConsumeIntegerþ  sd   € ð$Ý$ T¤ZÑ0Ô0€f€føÝð $ð $ð $Ø�OŠO�C ™FœFÑ#Ô#Ð#øøøøð$øøøà‡N‚NÑÔÐØ€Mó   ‚ —
A¡"AÁAc                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY wr¯  )r_  r   r+   s    r   r|  zTokenizer.TryConsumeFloat  s@   € ðØ
×ÒÑÔÐØˆTøÝð ð ð ØˆUˆUðøøør±  c                 óÂ   — 	 t          | j        ¦  «        }n4# t          $ r'}|                      t	          |¦  «        ¦  «        ‚d}~ww xY w|                      ¦   «          |S )zžConsumes an floating point number.

    Returns:
      The number parsed.

    Raises:
      ParseError: If a floating point number couldn't be consumed.
    N)Ú
ParseFloatr}  r¾  r   r   r”  r¿  s      r   r_  zTokenizer.ConsumeFloat  sd   € ð$Ý˜$œ*Ñ%Ô%€f€føÝð $ð $ð $Ø�OŠO�C ™FœFÑ#Ô#Ð#øøøøð$øøøà‡N‚NÑÔÐØ€MrÀ  c                 óÂ   — 	 t          | j        ¦  «        }n4# t          $ r'}|                      t	          |¦  «        ¦  «        ‚d}~ww xY w|                      ¦   «          |S )z‹Consumes a boolean value.

    Returns:
      The bool parsed.

    Raises:
      ParseError: If a boolean value couldn't be consumed.
    N)Ú	ParseBoolr}  r¾  r   r   r”  r¿  s      r   ra  zTokenizer.ConsumeBool%  sd   € ð$Ý˜œÑ$Ô$€f€føÝð $ð $ð $Ø�OŠO�C ™FœFÑ#Ô#Ð#øøøøð$øøøà‡N‚NÑÔÐØ€MrÀ  c                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY wr¯  )rd  r   r+   s    r   rx  zTokenizer.TryConsumeByteString5  r°  r±  c                 óš   — |                       ¦   «         }	 t          |d¦  «        S # t          $ r}|                      |¦  «        ‚d}~ww xY w)z‹Consumes a string value.

    Returns:
      The string parsed.

    Raises:
      ParseError: If a string value couldn't be consumed.
    rQ   N)rd  r   r  Ú_StringParseError)r#   Ú	the_bytesr  s      r   rc  zTokenizer.ConsumeString<  s]   € ð ×&Ò&Ñ(Ô(€Ið&Ý�˜GÑ$Ô$Ð$øÝð &ð &ð &Ø×"Ò" 1Ñ%Ô%Ð%øøøøð&øøøs   –& ¦
A
°AÁA
c                 ó  — |                       ¦   «         g}| j        rV| j        d         t          v rB|                     |                       ¦   «         ¦  «         | j        r| j        d         t          v °Bd                     |¦  «        S )z Consumes a byte array value.

    Returns:
      The array parsed (as a string).

    Raises:
      ParseError: If a byte array value couldn't be consumed.
    r   r   )Ú_ConsumeSingleByteStringr}  Ú_QUOTESr  r  )r#   Úthe_lists     r   rd  zTokenizer.ConsumeByteStringK  s~   € ð ×-Ò-Ñ/Ô/Ð0€HØ
Œ*ð 7˜œ Aœ­'Ð1Ð1Ø‡o‚o�d×3Ò3Ñ5Ô5Ñ6Ô6Ð6ð Œ*ð 7˜œ Aœ­'Ð1Ð1à�8Š8�HÑÔÐr   c                 óÎ  — | j         }t          |¦  «        dk     s|d         t          vr|                      d|›�¦  «        ‚t          |¦  «        dk     s|d         |d         k    r|                      d|›�¦  «        ‚	 t	          j        |dd…         ¦  «        }n4# t          $ r'}|                      t          |¦  «        ¦  «        ‚d}~ww xY w|                      ¦   «          |S )aO  Consume one token of a string literal.

    String literals (whether bytes or text) can come in multiple adjacent
    tokens which are automatically concatenated, like in C or Python.  This
    method only consumes one token.

    Returns:
      The token parsed.
    Raises:
      ParseError: When the wrong format data is found.
    rÃ   r   zExpected string but found: r€   rÄ   zString missing ending quote: N)	r}  r·   rÌ  r   r   Ú	CUnescaper¾  r   r”  )r#   rX   rO   r  s       r   rË  z"Tokenizer._ConsumeSingleByteStringY  sæ   € ð Œ:€DÝ
ˆ4�y„y�1‚}€}˜˜Qœ¥wÐ.Ð.Ø�OŠOˆO¸t¸tÐEÑFÔFÐFå
ˆ4�y„y�1‚}€}˜˜Rœ D¨¤GÒ+Ð+Ø�OŠOˆOÀÀÐGÑHÔHÐHð$ÝÔ& t¨A¨b¨D¤zÑ2Ô2€f€føÝð $ð $ð $Ø�OŠO�C ™FœFÑ#Ô#Ð#øøøøð$øøøà‡N‚NÑÔÐØ€Ms   Â B Â
CÂ'"C	Ã	Cc                 óÄ   — 	 t          || j        ¦  «        }n4# t          $ r'}|                      t	          |¦  «        ¦  «        ‚d }~ww xY w|                      ¦   «          |S r*   )Ú	ParseEnumr}  r¾  r   r   r”  )r#   rc   rO   r  s       r   rf  zTokenizer.ConsumeEnums  sf   € ð$Ý˜ ¤
Ñ+Ô+€f€føÝð $ð $ð $Ø�OŠO�C ™FœFÑ#Ô#Ð#øøøøð$øøøà‡N‚NÑÔÐØ€Ms   ‚ ˜
A	¢"AÁA	c                 ó´   — | j                              | j        ¦  «        s|                      d| j        z  ¦  «        ‚| j        }|                      ¦   «          |S )a  Consumes a token containing valid URL characters.

    Excludes '/' so that it can be treated specially as a delimiter.

    Returns:
      The next token containing one or more URL characters.

    Raises:
      ParseError: If the next token contains unaccepted URL characters.
    z#Expected URL character(s), got "%s")Ú
_URL_CHARSr;  r}  r   r”  r¦  s     r   r7  zTokenizer.ConsumeUrlChars{  sU   € ð Œ?× Ò  ¤Ñ,Ô,ð PØ�OŠOÐAÀDÄJÑNÑOÔOÐOàŒZ€FØ‡N‚NÑÔÐØ€Mr   c                 óR   — 	 |                       ¦   «          dS # t          $ r Y dS w xY wr¯  )r7  r   r+   s    r   ÚTryConsumeUrlCharszTokenizer.TryConsumeUrlChars�  s@   € ðØ
×ÒÑÔÐØˆTøÝð ð ð ØˆUˆUðøøør±  c                 óD   — t          || j        dz   | j        dz   ¦  «        S )z¯Creates and *returns* a ParseError for the previously read token.

    Args:
      message: A message to set for the exception.

    Returns:
      A ParseError instance.
    rÃ   )r   rŒ  r�  ©r#   r$   s     r   r  z!Tokenizer.ParseErrorPreviousToken”  s-   € õ �g˜tÔ2°QÑ6ØÔ+¨aÑ/ñ1ô 1ð 1r   c                 ó`   — t          d| j        z   dz   |z   | j        dz   | j        dz   ¦  «        S )z9Creates and *returns* a ParseError for the current token.r   z': rÃ   )r   r‹  r!   r"   r×  s     r   r   zTokenizer.ParseError   s:   € å�d˜TÔ/Ñ/°&Ñ8¸7ÑBØ”j 1‘n d¤l°QÑ&6ñ8ô 8ð 8r   c                 óL   — |                       dt          |¦  «        z   ¦  «        S )NzCouldn't parse string: )r   r   )r#   r  s     r   rÈ  zTokenizer._StringParseError¥  s    € Ø�?Š?Ð5½¸A¹¼Ñ>Ñ?Ô?Ð?r   c                 óä  — | j         | _        | j        | _        d| _        | xj        t          | j        ¦  «        z  c_        |                      ¦   «          | j        s	d| _        dS | j	         
                    | j        | j        ¦  «        }|s,| j        s%| j         
                    | j        | j        ¦  «        }|r|                     d¦  «        }|| _        dS | j        | j                 | _        dS )z Reads the next meaningful token.Fr‡   Nr   )r!   rŒ  r"   r�  r4  r·   r}  r“  rŽ  Ú_TOKENr;  r‹  r�  r¥  rŸ  )r#   r;  r}  s      r   r”  zTokenizer.NextToken¨  sâ   € àœ*€DÔØ œL€DÔØ7<€DÔ4à€L„L•C˜œ
‘O”OÑ#€L„LØ×ÒÑÔÐàÔð Ø€d„jØ€fàŒK×Ò˜dÔ0°$´,Ñ?Ô?€EØð D˜Ô,ð DØŒm×!Ò! $Ô"4°d´lÑCÔC€eØð 4Ø�kŠk˜!‰nŒn€eØ€d„j€j€jàÔ% d¤lÔ3€d„j€j€jr   N)T)-r   r   r   r   ÚreÚcompiler‘  Ú	MULTILINEr¥  r�  r  rÌ  rÛ  r´  r¸  rÓ  r    rn  r  r�  r“  r
  r  r§  r­  ry  r  r¶  r  r»  rº  r|  r_  ra  rx  rc  rd  rË  rf  r7  rÕ  r  r   rÈ  r”  r   r   r   r   r   D  s   € € € € € ðð ð �”
˜6Ñ"Ô"€+ØˆRŒZ˜ b¤lÑ3Ô3€(Ø%˜2œ: o°r´|ÑDÔDÐØˆ2Œ:Ø	‡h‚hà)Ø4ððð ð
 "ðñ ô ñ	
ñô ñô €&ð  �”
˜=Ñ)Ô)€+Ø$˜"œ* VÑ,Ô,ÐàˆrŒzÐ;Ñ<Ô<€*ðð ð ð ð&ð ð ðð ð ð
ð 
ð 
ð	ð 	ð 	ðð ð ð
6ð 
6ð 
6ðð ð ðð ð ð ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð&ð &ð &ðð ð ðð ð ð4ð ð ðð ð ð$ð ð ð
1ð 
1ð 
1ð8ð 8ð 8ð
@ð @ð @ð4ð 4ð 4ð 4ð 4r   r   c                 ó&   — t          | dd¬¦  «        S )úæConsumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  TF©Ú	is_signedÚis_long©Ú_ConsumeInteger©r  s    r   rR  rR  Ã  s   € õ 
˜¨d¸EÐ	BÑ	BÔ	BÐBr   c                 ó&   — t          | dd¬¦  «        S )zìConsumes an unsigned 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 32bit integer couldn't be consumed.
  Frá  rä  ræ  s    r   rY  rY  Ò  s   € õ 
˜¨e¸UÐ	CÑ	CÔ	CÐCr   c                 óH   — 	 t          | ¦  «         dS # t          $ r Y dS w xY wr¯  )rV  r   ræ  s    r   rz  rz  á  s<   € ðÝ�)ÑÔÐØˆ4øÝ	ð ð ð Øˆ5ˆ5ðøøøó   ‚ “
! !c                 ó&   — t          | dd¬¦  «        S )rà  Trá  rä  ræ  s    r   rV  rV  é  s   € õ 
˜¨d¸DÐ	AÑ	AÔ	AÐAr   c                 óH   — 	 t          | ¦  «         dS # t          $ r Y dS w xY wr¯  )r\  r   ræ  s    r   r{  r{  ø  s<   € ðÝ�9ÑÔÐØˆ4øÝ	ð ð ð Øˆ5ˆ5ðøøøré  c                 ó&   — t          | dd¬¦  «        S )zìConsumes an unsigned 64bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 64bit integer couldn't be consumed.
  FTrá  rä  ræ  s    r   r\  r\     s   € õ 
˜¨e¸TÐ	BÑ	BÔ	BÐBr   c                 óÈ   — 	 t          | j        ||¬¦  «        }n4# t          $ r'}|                      t	          |¦  «        ¦  «        ‚d}~ww xY w|                      ¦   «          |S )aU  Consumes an integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an integer with given characteristics couldn't be consumed.
  rá  N)r!  r}  r¾  r   r   r”  )r  râ  rã  rO   r  s        r   rå  rå    so   € ð'Ý˜)œ/°YÈÐPÑPÔP€F€FøÝ	ð 'ð 'ð 'Ø
×
Ò
�s 1™vœvÑ
&Ô
&Ð&øøøøð'øøøà×ÒÑÔÐØ	€-s   ‚ š
A¤"AÁAc                 ó¨   — t          | ¦  «        }t          dt          |¦  «        z  t          |¦  «        z            }|                     |¦  «         |S )a  Parses an integer.

  Args:
    text: The text to parse.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  r€   )r½  Ú_INTEGER_CHECKERSÚintÚ
CheckValue)rX   râ  rã  rO   Úcheckers        r   r!  r!  %  sL   € õ ! Ñ&Ô&€&õ ˜a¥# g¡,¤,Ñ.µ°Y±´Ñ?Ô@€'Ø	×Ò�VÑÔÐØ	€-r   c                 óò   — | }t          j        d| ¦  «        }|r.|                     d¦  «        dz   |                     d¦  «        z   } 	 t          | d¦  «        S # t          $ r t	          d|z  ¦  «        ‚w xY w)zÆParses an integer without checking size/signedness.

  Args:
    text: The text to parse.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  z(-?)0(\d+)$rÃ   Ú0or€   r   zCouldn't parse integer: %s)rÜ  r;  rŸ  rð  r¾  )rX   Ú	orig_textÚc_octal_matchs      r   r½  r½  <  s—   € ð €)Ý”(˜>¨4Ñ0Ô0€-Øð Bð ×Ò˜qÑ!Ô! DÑ(¨=×+>Ò+>¸qÑ+AÔ+AÑA€Dð@Ýˆt�Q‰<Œ<ÐøÝ	ð @ð @ð @Ý
Ð2°YÑ>Ñ
?Ô
?Ð?ð@øøøs   Á	A ÁA6c                 ó  — t                                | ¦  «        rt          d| z  ¦  «        ‚	 t          | ¦  «        S # t          $ r¹ t                               | ¦  «        r.| d         dk    rt          d¦  «        cY S t          d¦  «        cY S t
                               | ¦  «        rt          d¦  «        cY S 	 t          |                      d¦  «        ¦  «        cY S # t          $ r t          d| z  ¦  «        ‚w xY ww xY w)	z°Parse a floating point number.

  Args:
    text: Text to parse.

  Returns:
    The number parsed.

  Raises:
    ValueError: If a floating point number couldn't be parsed.
  zInvalid octal float: %sr   ú-z-infÚinfÚnanÚfFzCouldn't parse float: %s)Ú_FLOAT_OCTAL_PREFIXr;  r¾  ÚfloatÚ_FLOAT_INFINITYÚ
_FLOAT_NANrM   ©rX   s    r   rÃ  rÃ  U  s  € õ ×Ò˜tÑ$Ô$ð 7Ý
Ð.°Ñ5Ñ
6Ô
6Ð6ð<å�‰;Œ;ÐøÝ	ð <ð <ð <å×Ò˜TÑ"Ô"ð <Ø	ˆaŒ�CŠˆÝ�V‰}Œ}ÐÐÐå�U‰|Œ|ÐÐÐÝ	×	Ò	˜$Ñ	Ô	ð <Ý�5‰\Œ\ÐÐÐð<Ý�T—[’[ Ñ&Ô&Ñ'Ô'Ð'Ð'Ð'øÝð <ð <ð <ÝÐ3°dÑ:Ñ;Ô;Ð;ð<øøøð<øøøs-   ®= ½?D Á>D Â)D Â;!CÃD ÃC<Ã<D c                 ó8   — | dv rdS | dv rdS t          d¦  «        ‚)zœParse a boolean value.

  Args:
    text: Text to parse.

  Returns:
    Boolean values parsed

  Raises:
    ValueError: If text is not a valid boolean.
  )rÏ   ÚtÚ1ÚTrueT)rÐ   ÚfÚ0ÚFalseFzExpected "true" or "false".)r¾  r   s    r   rÅ  rÅ  w  s5   € ð 
Ð'Ð'Ð'Øˆ4ØÐ+Ð+Ð+Øˆ5å
Ð2Ñ
3Ô
3Ð3r   c                 óZ  — | j         }	 t          |d¦  «        }| j         j        s|S |j                             |d¦  «        }|€t          d|j        |fz  ¦  «        ‚nH# t
          $ r; |j                             |d¦  «        }|€t          d|j        ›d|›d�¦  «        ‚Y nw xY w|j        S )a&  Parse an enum value.

  The value can be specified by a number (the enum value), or by
  a string literal (the enum name).

  Args:
    field: Enum field descriptor.
    value: String value.

  Returns:
    Enum value number.

  Raises:
    ValueError: If the enum value could not be parsed.
  r   Nz+Enum type "%s" has no value with number %d.zEnum type "z" has no value named r  )	rÒ   rð  Ú	is_closedrÓ   rU   r¾  rŸ   Úvalues_by_namer™   )rc   rs   Úenum_descriptorr™   rÚ   s        r   rÑ  rÑ  ‹  sò   € ð  ”O€/ð<Ý�˜‰]Œ]€Fð Œ?Ô$ð Ø€mØ Ô1×5Ò5°f¸dÑCÔC€JØÐÝÐDØ'Ô1°6Ð:ñ;ñ <ô <ð <ð øõ 
ð ;ð ;ð ;à Ô/×3Ò3°E¸4Ñ@Ô@€JØÐÝˆJØ'Ô1Ð1Ð1°5°5°5ð:ñ ;ô ;ð ;ð Ðð;øøøð 
Ô	Ðs   ‰A ÁAB#Â"B#r  )FF)Gr   Ú
__author__Úencodings.raw_unicode_escapeÚ	encodingsÚencodings.unicode_escaper3   r×   rÜ  ÚwarningsÚgoogle.protobuf.internalr   r   rw   r   r   r   Ú__all__ÚUint32ValueCheckerÚInt32ValueCheckerÚUint64ValueCheckerÚInt64ValueCheckerrï  rÝ  Ú
IGNORECASErþ  rÿ  rü  r:  r<  Ú	frozensetrÌ  r    r   rÝ   r¸   r   r   Úobjectr1   r   r   rT   r   rd   rm   r
   r   r   r   r´   r²   rL   r	   r   rã   ré   rë   r   Ú
_TokenizerrR  rY  rz  rV  r{  r\  rå  r!  r½  rÃ  rÅ  rÑ  r   r   r   ú<module>r     sL  ðð
ð 
ð 0€
ð $Ð #Ð #Ð #Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *ð9ð 9ð 9€ð 6�]Ô5Ñ7Ô7Ø4�]Ô4Ñ6Ô6Ø5�]Ô5Ñ7Ô7Ø4�]Ô4Ñ6Ô6ð8Ð ð �"”*Ð1°2´=ÑAÔA€ØˆRŒZ˜ "¤-Ñ0Ô0€
Ø �b”j Ñ-Ô-Ð Ø�B”JÐ9Ñ:Ô:Ð ØˆRŒZÐ6Ñ7Ô7€
Ø
ˆ)�JÑ
Ô
€Ø+Ð Ø#Ð àÐ ð0ð 0ð 0ð 0ð 0ˆIñ 0ô 0ð 0ðð ð ð ð �ñ ô ð ð.#ð #ð #ð #ð #�ñ #ô #ð #ð" ØØ"'ØØØØØØØØð=ð =ð ð=ð =ð =ð =ð@¨ð ð ð ð ð5ð 5ð 5ðð ð ð@ Ø)Ø"Ø/4Ø!&Ø!&Ø"'Ø!%Ø#'Ø&+Ø"ð/ ð / ð / ð / ðj Ø'Ø Ø-2Ø$Ø$Ø!%Ø$)Ø ð#ð #ð #ð #ð> Ø,Ø %Ø27Ø$)Ø$)Ø&*Ø).Ø %ð(ð (ð (ð (ð8ð ð ð6 Ð ØÐ ð\ð \ð \ð \ð \ˆvñ \ô \ð \ðB	 #(Ø"ØØ#Ø"ð<=ð <=ð <=ð <=ðB #(Ø"ØØ#Ø"ð(/ð (/ð (/ð (/ðZ (-Ø"'Ø#Ø#(Ø#'ð$+ð $+ð $+ð $+ðR (-Ø"'Ø#Ø#(Ø#'ð$+ð $+ð $+ð $+ðNRð Rð Rð Rð Rˆfñ Rô Rð Rðjx4ð x4ð x4ð x4ð x4�ñ x4ô x4ð x4ðx €
ðCð Cð CðDð Dð Dðð ð ðBð Bð Bðð ð ðCð Cð Cðð ð ð ð,ð ð ð ð.@ð @ð @ð2<ð <ð <ðD4ð 4ð 4ð( ð  ð  ð  ð  r   