
    (ph;                     V   S SK r S SKr S SKrS SKrS SKJrJrJrJrJ	r	  S SK
r
S SKrS SKJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  \R@                  RB                  r"\" 5       r# " S S\$5      r% " S S\%S9r& " S S5      r'Sr(g)    N)AnyDictListOptionalType)descriptor_pb2)message)MessageToDictMessageToJsonParse)
_file_info)_package_info)Field)MapField)RepeatedField)Marshal)	ProtoType)has_upbc                   V  ^  \ rS rSrSrU 4S jr\S 5       r\S 5       r	S r
S!SS	.S
\4S jjjrU 4S jrS\4S jrS\SS4S jrS\\   SS4S jrS\\   S\\   SS4S jrS\\   S\\   S\4S jrSSSSSSSS.S\4S jjrSS.S"S jjrSSSSSS.S\\\4   4S jjrS rS rU =r$ )#MessageMeta*   z<A metaclass for building and registering Message subclasses.c                   > U(       d  [         T U ]  XX#5      $ [        R                  " X5      u  pE[	        UR                  SU5      R                  S5      5      nSU;   a!  UR                  S5      nUS US-
   XgS-   S  -   nSR                  U4U-   5      R                  S5      n0 n	UR                  5        GH1  u  p[        U[        5      (       d  M  SR                  [        R                  " SS U
5      R!                  U
S   U
S   R#                  5       S5      S	9n[$        R&                  " UR                  S
S 5      SR                  UR                  SU5      US9SS0S.5      n[)        UR*                  SS9US'   [)        UR,                  SUR.                  UR0                  S9US'   [3        U[4        4U5      X'   [7        [8        R:                  UR<                  X   S9X'   GM4     UR?                  U	5        / n0 n[$        R&                  " 5       n[A        5       nSnUR                  5        GH  u  p[        U[(        5      (       d  XU
'   M!  U
UUUS.Ul!        URE                  U5        URF                  (       aC  URI                  URF                  [K        U5      5        UURF                     URL                  l'        UR0                  (       a  [        UR0                  [P        5      (       d~  UR0                  n[S        US5      (       a*  [U        URV                  5      (       a  URW                  5       nU(       a/  URY                  URZ                  R\                  R^                  5        OUR.                  (       a  [        UR.                  [P        5      (       d}  [S        UR.                  S5      (       a   UR.                  R`                  RV                  OUR.                  RZ                  nU(       a%  URY                  UR\                  R^                  5        US-  nGM     0 nU Hx  nURb                  (       d  M  SR                  UR^                  5      Ul#        [K        U5      =URL                  l'        UURF                  '   UR^                  UUR^                  '   Mz     U(       a  [e        SU 4U5      n [f        Rh                  Rk                  UR                  S
URm                  5       5      5      n[f        Rh                  Ro                  UU5      nU HD  nUURL                  Rp                  ;  d  M  URL                  Rp                  RE                  U5        MF     [r        Rt                  " S"0 URw                  S0 5      D6n[r        Rx                  " UU Vs/ s H  nURL                  PM     snUR{                  5        Vs/ s H  n[r        R|                  " US9PM     snUS9nUR~                  R{                  5        Vs/ s H  nUUS S :X  d  M  UPM     nnU HE  nUR                  RY                  5       R                  UR~                  Rw                  U5      5        MG     UR                  R{                  5        Vs/ s H  nUUS S :X  d  M  UPM     nnU HE  nUR                  RY                  5       R                  UR                  Rw                  U5      5        MG     [K        U5      S:X  a4  URL                  R                  RY                  5       R                  U5        OUUR~                  U'   [        UUUUUS9US'   [         T U ]  XX/5      nUUR`                  lF        UR`                  R                  R                  5        H
  nUUlF        M     UUR                  U'   UR                  US 9(       a  UR                  UUS!9  U$ s  snf s  snf s  snf s  snf )#N__qualname__.z<locals>   z{pascal_key}Entryz_\wc                 D    U R                  5       SS  R                  5       $ )Nr   )groupupper)ms    @/var/www/html/venv/lib/python3.13/site-packages/proto/message.py<lambda>%MessageMeta.__new__.<locals>.<lambda>O   s    aggim113    r   )
pascal_key
__module__z{prefix}.{name})prefixname	map_entryT)r%   r   _pb_optionsnumberkey   )r+   enumr	   value)r+   r	   )r'   parent_nameindexpackagepb_metaz_{}	AttrsMetar)   r'   )r'   field
oneof_decloptions)fields	full_namemarshalr9   r2   )	new_class)r>   fallback_salt )Lsuper__new__r   compiletuplegetsplitr1   joinlstripitems
isinstancer   formatresubreplacer   collectionsOrderedDictr   map_key_type
proto_typer.   r	   r   Messager   r   MESSAGEr+   updateset	mcls_dataappendoneof
setdefaultlen
descriptoroneof_indexstrhasattrcallabler3   add
DESCRIPTORfiler'   r4   optionaltyper   	_FileInfoproto_file_namelowermaybe_add_descriptor
dependencyr   MessageOptionspopDescriptorProtokeysOneofDescriptorProtonestednested_type	MergeFromnested_enum	enum_typemessage_type_MessageInfoparentr;   valuesmessagesreadygenerate_file_pb)!mclsr'   basesattrsr2   r=   
local_pathixr<   
map_fieldsr,   r7   msg_nameentry_attrsr;   	new_attrsoneofsproto_importsr1   	field_msg
field_enum	opt_attrsfilename	file_infoproto_importoptsidescpchild_paths
child_pathcls	__class__s!                                   r    rB   MessageMeta.__new__-   s   7?4u<< )00= 599^T:@@EF
 #!!*-B#Hb1f-
680DDJ HHgZ*45<<SA	 
++-JCeX.. +11663 '#a&#a&,,.!4 2 H  &11"'))L$"?$5$<$<$yy>% %= % %0#6	K "'u'9'9!!DK#(  ZZ	$K  $/x'[#QJ  ,!!||",JOS (` 	Z 
 	((*++-JCeU++!&# ("	EO MM%  {{ !!%++s6{;/5ekk/B  ,
 }}Zs%C%C!MM	9d++0F0F )I !%%i&:&:&?&?&D&DE Juzz3$?$? uzz733 JJ$$''..  !%%joo&:&:; QJEo (v 	E~~~#ll5::6EH[P  ,vekk/B(-

	%**%	  dWi8D
 ''77MM,

5
 ((==hP	 *L9#7#7#B#BB$$//66|D *
 ,,Py}}]B/OP --)/0A1<<0EK[[]ER33;] 
 #,"2"2"7"7"9R"9QZ1Sb6=Qq"9R%J  ",,Y-=-=-A-A*-MN & #,"7"7"<"<">W">Q*PQRUSUPVBVq">W%JNN **9+@+@+D+DZ+PQ &
 z?a  --113==dC+/IZ( *
	' god%; 		YY%%,,.EEL / ),	9% ??S?)&&I&N 
i 1 S
 Xs$   "_
__$_$_)_)c                 ,    [         R                  " 5       $ N)rO   rP   )r|   r'   r}   kwargss       r    __prepare__MessageMeta.__prepare__  s    &&((r#   c                     U R                   $ r   )r4   )r   s    r    metaMessageMeta.meta   s    yyr#   c                 T    [        [        [        5      5      nUR                  S5        U R	                  5       R
                  nUR                  S UR                   5       5        UR                  S UR                   5       5        U$ ! [         a    [        [        5      s $ f = f)N)	r   r3   wrap	serializedeserializeto_json	from_jsonto_dict	copy_fromc              3   8   #    U  H  oR                   v   M     g 7fr   r6   ).0ts     r    	<genexpr>&MessageMeta.__dir__.<locals>.<genexpr>5  s     ;):A):   c              3   8   #    U  H  oR                   v   M     g 7fr   r6   r   es     r    r   r   6  s     9Ar   )	rV   dirre   rU   r3   rb   nested_types
enum_typesAttributeError)selfnamesr   s      r    __dir__MessageMeta.__dir__$  s    	D	NELL
 779''DLL;):):;;LL999L 	t9	s   BB B'&B'NFcoercer   c                    Uc  U R                   R                  $ [        X5      (       d7  U(       a  U " U5      nUR
                  $ [        U< SU R                  < 35      eUR
                  $ )a  Return the underlying protobuf Message class or instance.

Args:
    obj: If provided, and an instance of ``cls``, return the
        underlying protobuf instance.
    coerce (bool): If provided, will attempt to coerce ``obj`` to
        ``cls`` if it is not already an instance.
z is not an instance of )r   r3   rJ   	TypeError__name___pb)r   objr   s      r    r3   MessageMeta.pb<  sd     ;88;;####h ww     wwr#   c                 H   > U R                  U 5      n[        X]  SU5        U$ )zReturn a Message object that shallowly wraps the descriptor.

Args:
    pb: A protocol buffer object, such as would be returned by
        :meth:`pb`.
r   )rB   rA   __setattr__)r   r3   instancer   s      r    r   MessageMeta.wrapT  s'     ;;s#c(3r#   returnc                 >    U R                  USS9R                  5       $ )zReturn the serialized proto.

Args:
    instance: An instance of this message type, or something
        compatible (accepted by the type's constructor).

Returns:
    bytes: The serialized representation of the protocol buffer.
Tr   )r3   SerializeToString)r   r   s     r    r   MessageMeta.serialize`  s      vvhtv,>>@@r#   payloadrS   c                 ^    U R                  U R                  5       R                  U5      5      $ )zGiven a serialized proto, deserialize it into a Message instance.

Args:
    payload (bytes): The serialized proto.

Returns:
    ~.Message: An instance of the message class against which this
    method was called.
)r   r3   
FromString)r   r   s     r    r   MessageMeta.deserializel  s$     xx++G455r#   including_default_value_fieldsc                 ^    [         S   S;  a   Ub  [        R                  " S[        5        ggg)z
Warn Protobuf 5.x+ users that `including_default_value_fields` is deprecated if it is set.

Args:
    including_default_value_fields (Optional(bool)): The value of `including_default_value_fields` set by the user.
r   34NzThe argument `including_default_value_fields` has been removed from
                Protobuf 5.x. Please use `always_print_fields_with_no_presence` instead.
                )PROTOBUF_VERSIONwarningswarnDeprecationWarning)r   r   s     r    :_warn_if_including_default_value_fields_is_used_protobuf_5FMessageMeta._warn_if_including_default_value_fields_is_used_protobuf_5x  s7     Qz1.:MM #	 ; 2r#   $always_print_fields_with_no_presencec                 4    Ub  Ub  X:w  a  [        S5      eggg)a(  
Raise Exception if both `always_print_fields_with_no_presence` and `including_default_value_fields` are set
    and the values differ.

Args:
    always_print_fields_with_no_presence (Optional(bool)): The value of `always_print_fields_with_no_presence` set by the user.
    including_default_value_fields (Optional(bool)): The value of `including_default_value_fields` set by the user.
Returns:
    None
Raises:
    ValueError: if both `always_print_fields_with_no_presence` and `including_default_value_fields` are set and
        the values differ.
Nz`Arguments `always_print_fields_with_no_presence` and `including_default_value_fields` must match)
ValueErrorr   r   r   s      r    0_raise_if_print_fields_values_are_set_and_differ<MessageMeta._raise_if_print_fields_values_are_set_and_differ  s6    & 1<.:4Vr  W ; =r#   c                     U R                  U5        U R                  X5        USL =(       a    USL =(       d    U=(       d    U$ )a  
Return true if fields with no presence should be included in the results.
By default, fields with no presence will be included in the results
when both `always_print_fields_with_no_presence` and
`including_default_value_fields` are not set

Args:
    always_print_fields_with_no_presence (Optional(bool)): The value of `always_print_fields_with_no_presence` set by the user.
    including_default_value_fields (Optional(bool)): The value of `including_default_value_fields` set by the user.
Returns:
    None
Raises:
    ValueError: if both `always_print_fields_with_no_presence` and `including_default_value_fields` are set and
        the values differ.
N)r   r   r   s      r    (_normalize_print_fields_without_presence4MessageMeta._normalize_print_fields_without_presence  sX    * 	FF*	
 	<<0	
 5< ;2d:. 4	.
 .	
r#   Tr-   )use_integers_for_enumsr   preserving_proto_field_name	sort_keysindentfloat_precisionr   c          
          U R                  X5      n	[        S   S;   a  [        U R                  U5      UU	UUUUS9$ [        U R                  U5      UU	UUUUS9$ )aT  Given a message instance, serialize it to json

Args:
    instance: An instance of this message type, or something
        compatible (accepted by the type's constructor).
    use_integers_for_enums (Optional(bool)): An option that determines whether enum
        values should be represented by strings (False) or integers (True).
        Default is True.
    including_default_value_fields (Optional(bool)): Deprecated. Use argument
        `always_print_fields_with_no_presence` instead. An option that
        determines whether the default field values should be included in the results.
        This value must match `always_print_fields_with_no_presence`,
        if both arguments are explicitly set.
    preserving_proto_field_name (Optional(bool)): An option that
        determines whether field name representations preserve
        proto case (snake_case) or use lowerCamelCase. Default is False.
    sort_keys (Optional(bool)): If True, then the output will be sorted by field names.
        Default is False.
    indent (Optional(int)): The JSON object will be pretty-printed with this indent level.
        An indent level of 0 or negative will only insert newlines.
        Pass None for the most compact representation without newlines.
    float_precision (Optional(int)): If set, use this to specify float field valid digits.
        Default is None.
    always_print_fields_with_no_presence (Optional(bool)): If True, fields without
        presence (implicit presence scalars, repeated fields, and map fields) will
        always be serialized. Any field that supports presence is not affected by
        this option (including singular message fields and oneof fields).
        This value must match `including_default_value_fields`,
        if both arguments are explicitly set.
Returns:
    str: The json string representation of the protocol buffer.
r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r3   )
r   r   r   r   r   r   r   r   r   print_fieldss
             r    r   MessageMeta.to_json  s    Z CC0
 A*, x '=/;,G# /  !x '=5A,G# / r#   ignore_unknown_fieldsc                <    U " 5       n[        XR                  US9  U$ )aJ  Given a json string representing an instance,
parse it into a message.

Args:
    payload: A json string representing a message.
    ignore_unknown_fields (Optional(bool)): If True, do not raise errors
        for unknown fields.

Returns:
    ~.Message: An instance of the message class against which this
    method was called.
r   )r   r   )r   r   r   r   s       r    r   MessageMeta.from_json  s     5g||;PQr#   )r   r   r   r   r   c                    U R                  Xd5      n[        S   S;   a  [        U R                  U5      UUUUS9$ [        U R                  U5      UUUUS9$ )a  Given a message instance, return its representation as a python dict.

Args:
    instance: An instance of this message type, or something
        compatible (accepted by the type's constructor).
    use_integers_for_enums (Optional(bool)): An option that determines whether enum
        values should be represented by strings (False) or integers (True).
        Default is True.
    preserving_proto_field_name (Optional(bool)): An option that
        determines whether field name representations preserve
        proto case (snake_case) or use lowerCamelCase. Default is True.
    including_default_value_fields (Optional(bool)): Deprecated. Use argument
        `always_print_fields_with_no_presence` instead. An option that
        determines whether the default field values should be included in the results.
        This value must match `always_print_fields_with_no_presence`,
        if both arguments are explicitly set.
    float_precision (Optional(int)): If set, use this to specify float field valid digits.
        Default is None.
    always_print_fields_with_no_presence (Optional(bool)): If True, fields without
        presence (implicit presence scalars, repeated fields, and map fields) will
        always be serialized. Any field that supports presence is not affected by
        this option (including singular message fields and oneof fields). This value
        must match `including_default_value_fields`, if both arguments are explicitly set.

Returns:
    dict: A representation of the protocol buffer using pythonic data structures.
          Messages and map fields are represented as dicts,
          repeated fields are represented as lists.
r   r   )r   r   r   r   )r   r   r   r   )r   r   r
   r3   )r   r   r   r   r   r   r   r   s           r    r   MessageMeta.to_dict(  ss    P CC0
 A*, x /;,G'= /  !x 5A,G'= / r#   c                    [        X 5      (       a  [        R                  U5      nO[        X R                  5       5      (       a  O[        U[        R                  R
                  5      (       a  U R                  R                  " S0 UD6nO9[        SR                  U R                  UR                  R                  5      5      eU R                  U5      R                  U5        g)zEquivalent for protobuf.Message.CopyFrom

Args:
    instance: An instance of this message type
    other: (Union[dict, ~.Message):
        A dictionary or message to reinitialize the values for this message.
z'invalid argument type to copy to {}: {}Nr@   )rJ   rS   r3   rO   abcMappingr4   r   rK   r   r   CopyFrom)r   r   others      r    r   MessageMeta.copy_fromj  s     e!!JJu%Evvx(({6677IILL)5)E9@@LL%//":":  	x!!%(r#   r@   r   )r   rS   )r   r%   r   __firstlineno____doc__rB   classmethodr   propertyr   r   boolr3   r   bytesr   r   r   r   r   r   r^   r   r   r   r   r   r   __static_attributes____classcell__r   s   @r    r   r   *   sG   Fm^ ) )  0E T 0

AE 
A
6% 
6I 
6-5d^	(.6tn )1 
	6#
.6tn#
 )1#
 
	#
R  $'+$)-1I 
IV :? *  $$('+-1@ 
c3h@D) )r#   r   c                      ^  \ rS rSrSr SSS.U 4S jjjrS rS rS rS	 r	S
 r
S rS rS rS rU 4S jrS rU 4S jrSrU =r$ )rS   i  a  The abstract base class for a message.

Args:
    mapping (Union[dict, ~.Message]): A dictionary or message to be
        used to determine the values for this message.
    ignore_unknown_fields (Optional(bool)): If True, do not raise errors for
        unknown fields. Only applied if `mapping` is a mapping type or there
        are keyword parameters.
    kwargs (dict): Keys and values corresponding to the fields of the
        message.
Fr   c                V  > Uc4  U(       d)  [         T
U ]  SU R                  R                  5       5        g UnGO.[	        XR                  R                  5      (       aY  [
        R                  " U5      nU(       a+  UR                  U R                  R                  " S0 UD65        [         T
U ]  SU5        g [	        U[        U 5      5      (       a  U R                  " SSUR                  0UD6  g [	        U[        R                  R                  5      (       a(  [
        R
                  " U5      nUR                  U5        O'[        SU R                   R"                  < SU< 35      e0 nU R                  R$                  nUR'                  5        Hm  u  pgU R)                  U5      u  phUc8  U(       a  M$  [+        SR-                  U R                   R"                  U5      5      eUR/                  X5      n	U	c  Mi  XU'   Mo     [         T
U ]  SU R                  R                  " S0 UD65        g )Nr   mappingzInvalid constructor input for z: Unknown field for {}: {}r@   )rA   r   r4   r3   rJ   copydeepcopyrr   re   __init__r   rO   r   r   rU   r   r   r   r=   rI   _get_pb_type_from_keyr   rK   to_proto)r   r   r   r   paramsr=   r,   r/   pb_typepb_valuer   s             r    r  Message.__init__  s    ?#E4::==?;G// mmG,G!!$**--"9&"9:Gw/d,,MM8'++88!8!899ii(GNN6"  NN++   **$$!--/JC!77<NS( .55dnn6M6MsS  ''7H#&s *  	E4::==#:6#:;r#   c                    Sn U R                   R                  U   R                  nX4$ ! [         aJ    U S3U R                   R                  ;   a(  U S3nU R                   R                  U   R                  n X4$ f = f)a!  Given a key, return the corresponding pb_type.

Args:
    key(str): The name of the field.

Returns:
    A tuple containing a key and pb_type. The pb_type will be
    the composite type of the field, or the primitive type if a primitive.
    If no corresponding field exists, return None.
N_)r4   r;   r  KeyError)r   r,   r  s      r    r  Message._get_pb_type_from_key  s     	9jj'',44G ~  
	9 ayDJJ---Qi**++C088~
	9s   #* AA>=A>c                    [        U 5      R                  5       R                  nU R                  R                  R                  5        Vs1 s H  o"iM     nnUR                  S UR                   5       5        UR                  S UR                   5       5        UR                  [        [        5       5      5        UR                  S5        U$ s  snf )Nc              3   8   #    U  H  oR                   v   M     g 7fr   r6   )r   r   s     r    r   "Message.__dir__.<locals>.<genexpr>  s     7%6VV%6r   c              3   8   #    U  H  oR                   v   M     g 7fr   r6   r   s     r    r   r    s     5_VV_r   )__bool____contains____dict____getattr____getstate__r%   __setstate____weakref__)re   r3   rb   r4   r;   rn   rU   r   r   r   object)r   r   f_namer   s       r    r   Message.__dir__  s    Dz}}))&*jj&7&7&<&<&>?&>F&>?7T%6%6775T__55S]# 			
 ' @s   
Cc                 r   ^  [        U 4S jT R                  R                  R                  5        5       5      $ )z4Return True if any field is truthy, False otherwise.c              3   R   >#    U  H  oT;   =(       a    [        TU5      v   M     g 7fr   )getattr)r   kr   s     r    r   #Message.__bool__.<locals>.<genexpr>  s$     T;Sa91q!11;Ss   $')anyr4   r;   rn   r   s   `r    r  Message.__bool__  s'    T4::;L;L;Q;Q;STTTr#   c                     [        U R                  U5      n U R                  R                  U5      $ ! [         a    [	        U5      s $ f = f)a  Return True if this field was set to something non-zero on the wire.

In most cases, this method will return True when ``__getattr__``
would return a truthy value and False when it would return a falsy
value, so explicitly calling this is not useful.

The exception case is empty messages explicitly set on the wire,
which are falsy from ``__getattr__``. This method allows to
distinguish between an explicitly provided empty message and the
absence of that message, which is useful in some edge cases.

The most common edge case is the use of ``google.protobuf.BoolValue``
to get a boolean that distinguishes between ``False`` and ``None``
(or the same for a string, int, etc.). This library transparently
handles that case for you, but this method remains available to
accommodate cases not automatically covered.

Args:
    key (str): The name of the field.

Returns:
    bool: Whether the field's value corresponds to a non-empty
        wire serialization.
)r  r   HasFieldr   r   )r   r,   r  s      r    r  Message.__contains__  sI    2 488S)
	" 88$$S)) 	">!	"s   3 A
Ac                 :    U R                   R                  U5        g)z]Delete the value on the given field.

This is generally equivalent to setting a falsy value.
N)r   
ClearField)r   r,   s     r    __delattr__Message.__delattr__?  s    
 	C r#   c                     [        U[        U 5      5      (       a  U R                  UR                  :H  $ [        XR                  R                  5      (       a  U R                  U:H  $ [
        $ )z7Return True if the messages are equal, False otherwise.)rJ   re   r   r4   r3   NotImplementedr   r   s     r    __eq__Message.__eq__F  sT     eT$Z((88uyy(( eZZ]]++88u$$ r#   c                    U R                  U5      u  pUc/  [        SR                  U R                  R                  U5      5      e[        U R                  U5      nU R                  R                  nUR                  X#X;  S9$ )ac  Retrieve the given field's value.

In protocol buffers, the presence of a field on a message is
sufficient for it to always be "present".

For primitives, a value of the correct type will always be returned
(the "falsy" values in protocol buffers consistently match those
in Python). For repeated fields, the falsy value is always an empty
sequence.

For messages, protocol buffers does distinguish between an empty
message and absence, but this distinction is subtle and rarely
relevant. Therefore, this method always returns an empty message
(following the official implementation). To check for message
presence, use ``key in self`` (in other words, ``__contains__``).

.. note::

    Some well-known protocol buffer types
    (e.g. ``google.protobuf.Timestamp``) will be converted to
    their Python equivalents. See the ``marshal`` module for
    more details.
r   )absent)
r  r   rK   r   r   r  r   r4   r=   	to_python)r   r,   r  r  r=   s        r    r  Message.__getattr__S  s{    0 33C8? *11$..2I2I3O  488S)**$$  3? KKr#   c                     X:X  + $ )z9Return True if the messages are unequal, False otherwise.r@   r,  s     r    __ne__Message.__ne__t  s      r#   c                 ,    [        U R                  5      $ r   )reprr   r!  s    r    __repr__Message.__repr__x  s    DHH~r#   c                   > US   S:X  a  [         TU ]  X5      $ U R                  R                  nU R	                  U5      u  pUc/  [        SR                  U R                  R                  U5      5      eUR                  XB5      nU R                  R                  U5        Ub7  U R                  R                  U R                  R                  " S0 X0D65        gg)zSet the value on the given field.

For well-known protocol buffer types which are marshalled, either
the protocol buffer object or the Python equivalent is accepted.
r   r
  Nr   r@   )rA   r   r4   r=   r  r   rK   r   r   r  r   r'  rr   r3   )r   r,   r/   r=   r  r  r   s         r    r   Message.__setattr__{  s     q6S=7&s22**$$33C8? *11$..2I2I3O  ##G3
 	C  HHtzz}}??@  r#   c                 6    U R                   R                  5       $ )zSerialize for pickling.)r   r   r!  s    r    r  Message.__getstate__  s    xx))++r#   c                 x   > U R                   R                  5       R                  U5      n[        TU ]  SU5        g)zDeserialization for pickling.r   N)r4   r3   r   rA   r   )r   r/   new_pbr   s      r    r  Message.__setstate__  s,    ++E2E6*r#   r@   r   )r   r%   r   r   r   r  r  r   r  r  r(  r-  r  r4  r8  r   r  r  r   r   r   s   @r    rS   rS     sk    
 H< $	H< H<T<.U$"L!LB!A4,+ +r#   rS   )	metaclassc                       \ rS rSrSrS\\   S\S\S\S\	R                  SS	4S
 jr\S\\R                     4S j5       rSrg	)rv   i  a  Metadata about a message.

Args:
    fields (Tuple[~.fields.Field]): The fields declared on the message.
    package (str): The proto package.
    full_name (str): The full name of the message.
    file_info (~._FileInfo): The file descriptor and messages for the
        file containing this message.
    marshal (~.Marshal): The marshal instance to which this message was
        automatically registered.
    options (~.descriptor_pb2.MessageOptions): Any options that were
        set on the message.
r;   r2   r<   r=   r9   r   Nc                    X l         X0l        XPl        [        R                  " S U 5       5      U l        [        R                  " S U 5       5      U l        X@l        S U l        g )Nc              3   <   #    U  H  oR                   U4v   M     g 7fr   r6   r   r   s     r    r   (_MessageInfo.__init__.<locals>.<genexpr>  s     -J6avvqk6   c              3   <   #    U  H  oR                   U4v   M     g 7fr   r*   rE  s     r    r   rF    s     7Vv!1vrG  )	r2   r<   r9   rO   rP   r;   fields_by_numberr=   r   )r   r;   r2   r<   r=   r9   s         r    r  _MessageInfo.__init__  sP     "!---J6-JJ + 7 77Vv7V Vr#   c                     U R                   $ )zReturn the protobuf message type for this descriptor.

If a field on the message references another message which has not
loaded, then this method returns None.
)r   r!  s    r    r3   _MessageInfo.pb  s     xxr#   )r   r;   rI  r<   r=   r9   r2   )r   r%   r   r   r   r   r   r^   r   r   rk   r  r   r   r	   rS   r3   r   r@   r#   r    rv   rv     sv     U 	
    .. 
" D)  r#   rv   )rS   ))rO   collections.abcr   rL   typingr   r   r   r   r   r   google.protobufgoogler   r	   google.protobuf.json_formatr
   r   r   protor   r   proto.fieldsr   r   r   proto.marshalr   proto.primitivesr   proto.utilsr   protobuf__version__r   _upbre   r   rS   rv   __all__r@   r#   r    <module>r[     s       	 2 2   * # K K    ! & ! &  ??.. y\	)$ \	)~S+ S+l' 'T r#   