
    AVhlz                        d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZm Z m!Z! ddl"m#Z#  ejH                  dddg      Z% ed Z& eddd      Z'ejP                  dfde#e!ejR                  f   de*de*de&de'f
dZ+  ed       ejX                  e+            Z-de#e!ejR                  f   de*de*de&de'f
dZ. ejH                  d g d!      Z/ ed" Z0 ed#dd      Z1dBd$e#e e!   e1f   d%e#e!e0f   fd&Z2  ed'       ejX                  e2            Z3d$e#e e!   e1f   d%e#e!e0f   fd(Z4 ed) Z5 ed*dd      Z6 ed+dd      Z7dBd,e#e!e7f   d-e#e!e5f   d.e#e!e5f   d/e#e e!   e6f   d0e#e!e5f   f
d1Z8  ed2       ejX                  e8            Z9d,e#e!e7f   d-e#e!e5f   d.e#e!e5f   d/e#e e!   e6f   d0e#e!e5f   f
d3Z: ed4 Z; ed5dd      Z<dBd$e#e e!   e<f   d%e#e!e;f   d6e=d0e#e!ejR                  f   fd7Z>  ed8       ejX                  e>            Z?d$e#e e!   e<f   d%e#e!e;f   d6e=d0e#e!ejR                  f   fd9Z@ ed: ZA ed;dd      ZBdBd<e#e!ejR                  f   d=e#e!eBf   d>e#e!ej                  f   deAd0e#e!eAf   f
d?ZD  ed@       ejX                  eD            ZEd<e#e!ejR                  f   d=e#e!eBf   d>e#e!ej                  f   deAd0e#e!eAf   f
dAZFy)CzUPython wrappers around TensorFlow ops.

This file is MACHINE GENERATED! Do not edit.
    N)
pywrap_tfe)context)core)execute)dtypes)annotation_types)op_def_registry)ops)op_def_library)deprecated_endpoints)dispatch)	tf_export)TypeVarListAny)	AnnotatedRaggedTensorFromVariantoutput_nested_splitsoutput_dense_values) "TV_RaggedTensorFromVariant_Tvalues_atypes.BFloat16_atypes.Bool_atypes.Complex128_atypes.Complex64_atypes.Float16_atypes.Float32_atypes.Float64_atypes.Float8e4m3b11fnuz_atypes.Float8e4m3fn_atypes.Float8e4m3fnuz_atypes.Float8e5m2_atypes.Float8e5m2fnuz_atypes.Half_atypes.Int16_atypes.Int32_atypes.Int4_atypes.Int64_atypes.Int8_atypes.QInt16_atypes.QInt32_atypes.QInt8_atypes.QUInt16_atypes.QUInt8_atypes.Resource_atypes.String_atypes.UInt16_atypes.UInt32_atypes.UInt4_atypes.UInt64_atypes.UInt8_atypes.Variant"TV_RaggedTensorFromVariant_Tsplitsr%   r'   encoded_raggedinput_ragged_rankoutput_ragged_rankTvaluesTsplitsc                 >   t         j                   xs t        j                         }|j                  }|j                  r8	 t	        j
                  |d|| d|d|d|d|      }t        j                  |      }|S t        j                   |d      }t        j                   |d      }t        j"                  |d      }|t$        j&                  }t        j"                  |d      }t)        j*                  d| |||||      \  }
}
}}|dd }t        j,                         rjd|j/                  d      d|j/                  d      d|j1                  d      d|j1                  d      f}|j2                  }t        j4                  d|||       |d| g||d z   }t        j                  |      }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY w)	a-  Decodes a `variant` Tensor into a `RaggedTensor`.

  Decodes the given `variant` Tensor and returns a `RaggedTensor`. The input
  could be a scalar, meaning it encodes a single `RaggedTensor` with ragged_rank
  `output_ragged_rank`. It could also have an arbitrary rank, in which case each
  element is decoded into a `RaggedTensor` with ragged_rank `input_ragged_rank`
  and these are then stacked according to the input shape to output a single
  `RaggedTensor` with ragged_rank `output_ragged_rank`. Each `variant` element in
  the input Tensor is decoded by retrieving from the element a 1-D `variant`
  Tensor with `input_ragged_rank + 1` Tensors, corresponding to the splits and
  values of the decoded `RaggedTensor`. If `input_ragged_rank` is -1, then it is
  inferred as `output_ragged_rank` - `rank(encoded_ragged)`. See
  `RaggedTensorToVariant` for the corresponding encoding logic.

  Args:
    encoded_ragged: A `Tensor` of type `variant`.
      A `variant` Tensor containing encoded `RaggedTensor`s.
    input_ragged_rank: An `int` that is `>= -1`.
      The ragged rank of each encoded `RaggedTensor` component in the input. If set to
      -1, this is inferred as `output_ragged_rank` - `rank(encoded_ragged)`
    output_ragged_rank: An `int` that is `>= 0`.
      The expected ragged rank of the output `RaggedTensor`. The following must hold:
      `output_ragged_rank = rank(encoded_ragged) + input_ragged_rank`.
    Tvalues: A `tf.DType`.
    Tsplits: An optional `tf.DType` from: `tf.int32, tf.int64`. Defaults to `tf.int64`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (output_nested_splits, output_dense_values).

    output_nested_splits: A list of `output_ragged_rank` `Tensor` objects with type `Tsplits`.
    output_dense_values: A `Tensor` of type `Tvalues`.
  r   r8   r9   r:   r;   N)r8   r9   r:   r;   namectx)r7   r8   r9   r:   r;   r=   )_contextr   _thread_local_datais_eagerr   TFE_Py_FastPathExecute_RaggedTensorFromVariantOutput_make_core_NotOkStatusException_opsraise_from_not_ok_status_FallbackException)ragged_tensor_from_variant_eager_fallback_SymbolicException_executemake_int	make_type_dtypesint64_op_def_library_apply_op_helpermust_record_gradient_get_attr_int_get_attr_typeinputsrecord_gradient)r7   r8   r9   r:   r;   r=   _ctxtld_resulte__op_outputs_attrs_inputs_flats                  _/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/ops/gen_ragged_conversion_ops.pyragged_tensor_from_variantrb       s7   D 
			0h..0$#\\
11'~.0DIw	7Dg /44W=gn ''(9;NO(();=QRw	2'_mmGw	2''88!.5F6H+2G(,.!QX QK'""$!3#4#45H#I"C$5$56J$K++I6	  +-F ::L!<B(()*W5G5H-II'*009'	.G && -
##At,,## 
6
,=/$0 0 ## 
s0    6F( (G/;GG/.G/3H HHzraw_ops.RaggedTensorFromVariantc                    t        j                  |d      }t        j                  |d      }t        j                  |d      }|t        j                  }t        j                  |d      }t        j                  | t        j                        } | g}d|d|d|d|f}t        j                  d|dz   ||||      }	t        j                         rt        j                  d|||	       |	d | g|	|d  z   }	t        j                  |	      }	|	S )	Nr8   r9   r:   r;   s   RaggedTensorFromVariant   rV   attrsr>   r=   r   )rL   rM   rN   rO   rP   rG   convert_to_tensorvariantr   rS   rW   rC   rD   )
r7   r8   r9   r:   r;   r=   r>   r`   r_   rZ   s
             ra   rJ   rJ   t   s   ''(9;NO(();=QRw	2'_mmGw	2')).'//J. !,!24Hi)W>&79K:'36s"&(' ""$!<B(()*W5G5H-II'*009'	.    RaggedTensorToSparse)sparse_indicessparse_valuessparse_dense_shape) TV_RaggedTensorToSparse_Tr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   TV_RaggedTensorToSparse_Tsplitsrt_nested_splitsrt_dense_valuesc                 t   t         j                   xs t        j                         }|j                  }|j                  r1	 t	        j
                  |d|| |      }t        j                  |      }|S t        | t         t"        f      st%        d| z        t'        |       }t)        j*                  d| ||      \  }}}	}
|
dd }t-        j.                         rYd|	j1                  d      d|	j3                  d      d|	j3                  d      f}|	j4                  }t-        j6                  d|||       t        j                  |      }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y Fw xY w)	a0  Converts a `RaggedTensor` into a `SparseTensor` with the same values.

  input=ragged.from_nested_row_splits(rt_dense_values, rt_nested_splits)
  output=SparseTensor(indices=sparse_indices, values=sparse_values,
                      dense_shape=sparse_dense_shape)

  Args:
    rt_nested_splits: A list of at least 1 `Tensor` objects with the same type in: `int32`, `int64`.
      The `row_splits` for the `RaggedTensor`.
    rt_dense_values: A `Tensor`. The `flat_values` for the `RaggedTensor`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (sparse_indices, sparse_values, sparse_dense_shape).

    sparse_indices: A `Tensor` of type `int64`.
    sparse_values: A `Tensor`. Has the same type as `rt_dense_values`.
    sparse_dense_shape: A `Tensor` of type `int64`.
  rj   N)r=   r>   VExpected list for 'rt_nested_splits' argument to 'ragged_tensor_to_sparse' Op, not %r.)rp   rq   r=   RAGGED_RANKTr;   )r?   r   r@   rA   r   rB   _RaggedTensorToSparseOutputrD   rE   rF   rG   rH   rI   &ragged_tensor_to_sparse_eager_fallbackrK   
isinstancelisttuple	TypeErrorlenrQ   rR   rL   rS   rT   rU   rV   rW   )rp   rq   r=   rX   rY   rZ   r[   _attr_RAGGED_RANKr\   r]   r^   r_   r`   s                ra   ragged_tensor_to_sparser~      s   ( 
			0h..0$#\\11$d,<oOg+11':gn 
$tUm	4
	02B	CD D *+'881A0?dL!QX QK'""$S..}=s  %y  +-F ::Lfg?'--g6'	.7 && -
##At,,## 
3
O$DB B## 
s0    /E FE44FFF   F76F7zraw_ops.RaggedTensorToSparsec                 $   t        | t        t        f      st        d| z        t	        |       }t        j                  |g|g       \  }\  }t        j                  t        |       |t        j                  t        j                  gt        j                        \  }} t        |       |gz   }d|d|d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       t        j                  |	      }	|	S )	Nrs   rt   ru   r;   s   RaggedTensorToSparse   re   rj   )rx   ry   rz   r{   r|   rL   args_to_matching_eagerrO   int32rP   r   rS   rW   rv   rD   )
rp   rq   r=   r>   r}   _attr_T_attr_Tsplitsr`   r_   rZ   s
             ra   rw   rw      s,   	$tUm	4
	02B	CD D *+ ( ? ?@QSVXZ ['O$,$C$CDIYDZ\_biboboqxq~q~  bB  DK  DQ  DQ  %R!-!&'?*;;,,c7I&4a#)s?'""$fg?'--g6'	.ri   ) TV_RaggedTensorToTensor_Tr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   TV_RaggedTensorToTensor_TindexTV_RaggedTensorToTensor_Tshapeshapevaluesdefault_valuerow_partition_tensorsreturnc                    t         j                   xs t        j                         }|j                  }|j                  r 	 t	        j
                  |d|| |||d|	      }|S t        |t        t        f      st!        d|z        t#        |      }
t        |t        t        f      st!        d|z        |D cg c]  }t%        j&                  |d       }}t)        j*                  d| |||||      \  }}}}|dd }t%        j,                         r{d|j/                  d      d	|j/                  d	      d
|j/                  d
      d|j1                  d      d|j3                  d      f
}|j4                  }t%        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY wc c}w )a  Create a dense tensor from a ragged tensor, possibly altering its shape.

  The `ragged_to_dense` op creates a dense tensor from a list of row partition
  tensors, a value vector, and default values. If the shape is unspecified, the
  minimal shape required to contain all the elements in the ragged tensor (the
  natural shape) will be used. If some dimensions are left unspecified, then the
  size of the natural shape is used in that dimension.

  The default_value will be broadcast to the output shape. After that, the values
  from the ragged tensor overwrite the default values. Note that the default_value
  must have less dimensions than the value.

  The row partition tensors are in the order of the dimensions.
  At present, the types can be:
  * "ROW_SPLITS": the row_splits tensor from the ragged tensor.
  * "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
  * "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then it
    is preceded by "FIRST_DIM_SIZE".

  Args:
    shape: A `Tensor`. Must be one of the following types: `int64`, `int32`.
      The desired shape of the output tensor. If left unspecified (empty),
      the minimal shape required to contain all the elements in the ragged tensor
      (the natural shape) will be used. If some dimensions are left unspecified, then
      the size of the natural shape is used in that dimension.

      Note that dense dimensions cannot be modified by the shape argument. Trying to
      change the size of a dense dimension will cause the op to fail.
      Examples:
      natural shape: [4, 5, 6]
      shape: -1
      output shape: [4, 5, 6]

      natural shape: [4, 5, 6]
      shape: [3, -1, 2]
      output shape: [3, 5, 2]

      natural shape: [4, 5, 6]
      shape: [3, 7, 2]
      output shape: [3, 7, 2]
    values: A `Tensor`.
      A 1D tensor representing the values of the ragged tensor.
    default_value: A `Tensor`. Must have the same type as `values`.
      The default_value when the shape is larger than the ragged tensor. The
      default_value is broadcast until it is the shape of the output tensor, and
      then overwritten by values in the ragged tensor. The default value must be
      compatible with this broadcast operation, and must have fewer dimensions than
      the value tensor.
    row_partition_tensors: A list of at least 1 `Tensor` objects with the same type in: `int64`, `int32`.
    row_partition_types: A list of `strings`.
      The types of the row partition tensors. At present, these can be:
      * "ROW_SPLITS": the row_splits tensor from the ragged tensor.
      * "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
      * "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then it
        is preceeded by "FIRST_DIM_SIZE".
      The tensors are in the order of the dimensions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor`. Has the same type as `values`.
  RaggedTensorToTensorrow_partition_typesN)r   r=   r>   [Expected list for 'row_partition_tensors' argument to 'ragged_tensor_to_tensor' Op, not %r.YExpected list for 'row_partition_types' argument to 'ragged_tensor_to_tensor' Op, not %r.)r   r   r   r   r   r=   ru   TindexTshapenum_row_partition_tensors)r?   r   r@   rA   r   rB   rE   rF   rG   rH   rI   &ragged_tensor_to_tensor_eager_fallbackrK   rx   ry   rz   r{   r|   rL   make_strrQ   rR   rS   rU   rT   get_attrrV   rW   )r   r   r   r   r   r=   rX   rY   rZ   r[   _attr_num_row_partition_tensors_sr\   r]   r^   r_   r`   s                    ra   ragged_tensor_to_tensorr      s=   | 
			0h..0$#\\11$dE6=46IKg n 
)D%=	9
	02G	HI I %((=$>!	'$	7
	02E	FG G Qdd"**2/DEdd'88eF.;6K4G%)+!QX QK'""$3%%c*H  *H  *,G ;<#S\\2G%H	JF
 ::Lfg?('	.M && -
##At,,## 
3
(=1$H H ## 
 es6    F 6HG#F>>GGG- -HHzraw_ops.RaggedTensorToTensorc           
         t        |t        t        f      st        d|z        t	        |      }t        |t        t        f      st        d|z        |D cg c]  }t        j                  |d       }}t        j                  ||g|g       \  }	}
|
\  }}t        j                  t        |      |t        j                  t        j                  g      \  }}t        j                  | g|t        j                  t        j                  g      \  }\  } | ||gt        |      z   }d|	d|d|d|d|f
}t        j                  dd	||||
      }t        j                         rt        j                  d|||       |\  }|S c c}w )Nr   r   r   ru   r   r   r   s   RaggedTensorToTensorrd   re   r   )rx   ry   rz   r{   r|   rL   r   r   rO   rP   r   r   rS   rW   )r   r   r   r   r   r=   r>   r   r   r   	_inputs_T_attr_Tindex_attr_Tshaper`   r_   rZ   s                   ra   r   r   V  s   	)D%=	9
	02G	HI I %((=$>!	'$	7
	02E	FG G Qdd"**2/DEdd667NPSUWX'9%6=(0(G(GMbHcehkrkxkx  {B  {H  {H  kK  )L%,%#::E7C'--Y`YfYfIij,/$7L2MM,(L(L>,.& 4a#)s?'""$fg?('	. es   E>)  TV_RaggedTensorToVariant_Tvaluesr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5    TV_RaggedTensorToVariant_Tsplitsbatched_inputc           
      ~   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S t        | t        t        f      st!        d| z        t#        |       }t%        j&                  |d      }t)        j*                  d| |||      \  }	}	}
}|dd }t%        j,                         rjd|
j/                  d      d|
j1                  d      d	|
j1                  d	      d|
j3                  d      f}|
j4                  }t%        j6                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y ^w xY w)
a  Encodes a `RaggedTensor` into a `variant` Tensor.

  
  Encodes the given `RaggedTensor` and returns a `variant` Tensor. If
  `batched_input` is True, then input `RaggedTensor` is unbatched along the
  zero-th dimension, each component `RaggedTensor` is encoded into a scalar
  `variant` Tensor, and these are stacked to return a 1-D `variant` Tensor.
  If `batched_input` is False, then the input `RaggedTensor` is encoded as is and
  a scalar `variant` Tensor is returned. A `RaggedTensor` is encoded by first
  creating a 1-D `variant` Tensor with `ragged_rank + 1` elements, containing the
  splits and values Tensors of the `RaggedTensor`. Then the 1-D `variant` Tensor
  is wrapped in a scalar `variant` Tensor. See `RaggedTensorFromVariant` for the
  corresponding decoding logic.

  Args:
    rt_nested_splits: A list of `Tensor` objects with the same type in: `int32`, `int64`.
      A list of one or more Tensors representing the splits of the input
      `RaggedTensor`.
    rt_dense_values: A `Tensor`.
      A Tensor representing the values of the input `RaggedTensor`.
    batched_input: A `bool`.
      A `bool` denoting whether the input is a batched `RaggedTensor`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `variant`.
  RaggedTensorToVariantr   N)r   r=   r>   WExpected list for 'rt_nested_splits' argument to 'ragged_tensor_to_variant' Op, not %r.)rp   rq   r   r=   rt   r:   r;   )r?   r   r@   rA   r   rB   rE   rF   rG   rH   rI   'ragged_tensor_to_variant_eager_fallbackrK   rx   ry   rz   r{   r|   rL   	make_boolrQ   rR   rS   rT   rU   _get_attr_boolrV   rW   )rp   rq   r   r=   rX   rY   rZ   r[   r}   r\   r]   r^   r_   r`   s                 ra   ragged_tensor_to_variantr   u  s   8 
			0h..0$#\\11%t-=-9g n 
$tUm	4
	13C	DE E *+$$]OD-'882B1@/<4I!QX QK'""$S..}=y  +Y  +_  13F ::Lvw@('	.? && -
##At,,## 
4
O=  ## 
s0    E
 
FE88FFF% %F<;F<zraw_ops.RaggedTensorToVariantc                 2   t        | t        t        f      st        d| z        t	        |       }t        j                  |d      }t        j                  |g|g       \  }\  }t        j                  t        |       |t        j                  t        j                  gt        j                        \  }} t        |       |gz   }d|d|d|d|f}	t        j                  dd||	||      }
t        j                         rt        j                  d	||	|
       |
\  }
|
S )
Nr   r   rt   r:   r;   s   RaggedTensorToVariantrd   re   r   )rx   ry   rz   r{   r|   rL   r   r   rO   r   rP   r   rS   rW   )rp   rq   r   r=   r>   r}   _attr_Tvaluesr   r`   r_   rZ   s              ra   r   r     s:   	$tUm	4
	13C	DE E *+$$]OD-&.&E&EFWY\^`&a#-#/$,$C$CDIYDZ\_biboboqxq~q~  bB  DK  DQ  DQ  %R!-!&'?*;;,,i]O]<&5q#)s?'""$vw@('	.ri   ) (TV_RaggedTensorToVariantGradient_Tvaluesr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   (TV_RaggedTensorToVariantGradient_Tsplitsencoded_ragged_grad
row_splitsdense_values_shapec           
         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| ||d|      }|S t        j                  |d      }t        j                   d| ||||      \  }	}	}
}|dd }t        j"                         rHd|
j%                  d      d|
j%                  d      f}|
j&                  }t        j(                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Helper used to compute the gradient for `RaggedTensorToVariant`.

  Computes the gradient for the dense_values input to the RaggedTensorToVariant
  op, given the variant-encoded ragged gradients of the outputs, along with
  the outer row-splits and the shape of the dense-values that were provided as
  inputs to the RaggedTensorToVariant op.

  Args:
    encoded_ragged_grad: A `Tensor` of type `variant`.
      A `variant` Tensor containing encoded `RaggedTensor` gradients.
    row_splits: A `Tensor`. Must be one of the following types: `int32`, `int64`.
      Outermost row-splits that were used as input to the RaggedTensorToVariant op.
    dense_values_shape: A `Tensor` of type `int32`.
      Shape of the dense_values that was used as an input to the
      RaggedTensorToVariant op.
    Tvalues: A `tf.DType`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `Tvalues`.
  RaggedTensorToVariantGradientr:   N)r:   r=   r>   )r   r   r   r:   r=   r;   )r?   r   r@   rA   r   rB   rE   rF   rG   rH   rI   0ragged_tensor_to_variant_gradient_eager_fallbackrK   rL   rN   rQ   rR   rS   rU   rV   rW   )r   r   r   r:   r=   rX   rY   rZ   r[   r\   r]   r^   r_   r`   s                 ra   !ragged_tensor_to_variant_gradientr     s   , 
			0h..0$#\\11-t5H&	7<g n w	2''88'=P4><N18t	E!QX
 QK'""$++I6	  +-F::L'vwH('	.3 && -
##At,,## 
=
z+=$0 0 ## 
s0    C; ;ED))EEE E.-E.z%raw_ops.RaggedTensorToVariantGradientc                    t        j                  |d      }t        j                  |g|t        j                  t        j
                  gt        j
                        \  }\  }t        j                  | t        j                        } t        j                  |t        j                        }| ||g}d|d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr:   r;   s   RaggedTensorToVariantGradientrd   re   r   )rL   rN   r   rO   r   rP   rG   rg   rh   r   rS   rW   )
r   r   r   r:   r=   r>   r   r`   r_   rZ   s
             ra   r   r     s    w	2'!)!@!@*sU\UbUbdkdqdqTtv}  wD  wD  "E-*../BGOOT--.@'--P%z3EF,w	=9&=q$0C"&(' ""$'vwH('	.ri   )N)G__doc__collectionstensorflow.pythonr   tensorflow.python.eagerr   r?   r   rE   r   rL   tensorflow.python.frameworkr   rO   tensorflow.security.fuzzing.pyr   _atypesr	   _op_def_registryr
   rG   r   rQ   "tensorflow.python.util.deprecationr   tensorflow.python.utilr   	_dispatch tensorflow.python.util.tf_exportr   typingr   r   r   typing_extensionsr   
namedtuplerC   r   r6   rP   Variantintrb   	to_raw_opr   rJ   rv   rn   ro   r~   rj   rw   r   r   r   r   r   r   r   r   boolr   r   r   r   r   Int32r   r   r    ri   ra   <module>r      s  
  6 7 1 7 9 F K 3 I C 8 6 % % '!7!7!723"5 
 &-  &h
 "%,-QSbds%t " Za  Zg  Zg  nr Oygoo9M/N Ocf O| O  Km O  wY Ob G)$EF~t~~VpGqr iW__H\>] ru   LO   Z|   Gi * 5k44=? 
 $  V
 ")*K_^m"n 7iS	Cb8b.c 7v  AD  F_  A_  w` 7r Ay!?@PgAhi YtCyRqGq=r   FO  PS  Un  Pn  Fo ( $  V
 !()I?\k!l !()I?\k!l l9S2P-P#Q l[deh  kD  fD  \E l  V_  `c  e~  `~  V l  Xa  bf  gj  bk  mK  bK  XL l  qz  {~  @Y  {Y  qZ l\ Ay!?@PgAhi )CA_<_2` jstw  zS  uS  kT   en  or  tM  oM  eN   gp  qu  vy  qz  |Z  qZ  g[   @I  JM  Oh  Jh  @i 8 $+  $d
  #*+M`o#p  CycDd9d/e C  yB  CF  Hh  Ch  yi C  z~ C  NW  X[  ]d  ]l  ]l  Xl  Nm CJ C	"AB>4>>RjCkl iS	SsHs>t   HQ  RU  Ww  Rw  Hx   IM   ]f  gj  ls  l{  l{  g{  ]| * ,3  ,t
 (+23]_np  ,A (79S'//EY;Z 7hqru  x`  s`  ia 7  w@  AD  FM  FS  FS  AS  wT 7  _G 7  W`  ad  fN  aN  WO 7r !S	*Q RSaSWSaSa  cD  TE  !F )TWY`YhYhThJi   xA  BE  Go  Bo  xp   FO  PS  U\  Ub  Ub  Pb  Fc   nV   fo  ps  u]  p]  f^ ri   