
    ]j                         d dl Zd dlZddlmZ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 dd
lmZ ddlmZ  ej*                  ej,                  d      Z G d d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)
Annotation)LastActionEnum)SelectedItemsRequest   )AsyncRawAnnotationsClientRawAnnotationsClient)!CreateBulkAnnotationsResponseItem)DeleteBulkAnnotationsResponse.c            *       Z   e Zd ZdefdZedefd       Zdddej                  e
   de
d	ej                  e   defd
Zeeeeeeeeeeeeeeeeeedddej                  e   dej                  e
   dej                  ej$                     dej                  e   dej                  e
   dej                  e   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e   dej                  e
   dej                  ej                  e
      dej                  e   dej                  e
   dej                  e   d	ej                  e   dej2                  e   f(dZddde
d	ej                  e   defdZddde
d	ej                  e   ddfd Zeeeeeeeedd!	de
dej                  e
   dej                  e   dej                  e   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e
   dej                  e
   dej                  e   d	ej                  e   defd"Zddd#de
d$ej                  e   d	ej                  e   dej2                  e   fd%Z eeeeeeeedd!	de
dej                  e
   dej                  e   dej                  e   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e
   dej                  e
   dej                  e   d	ej                  e   defd&Z!y)'AnnotationsClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     M/root/env/lib/python3.12/site-packages/label_studio_sdk/annotations/client.py__init__zAnnotationsClient.__init__   s    /~N    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawAnnotationsClient
        r   r   s    r   with_raw_responsez#AnnotationsClient.with_raw_response        r   Nrequest_optionsidsprojectr!   c                V    | j                   j                  |||      }|j                  S )a  
        Delete multiple annotations by their IDs. The deletion is processed synchronously. Returns the count of deleted annotations in the response.

        Parameters
        ----------
        ids : typing.Sequence[int]
            List of annotation IDs to delete

        project : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DeleteBulkAnnotationsResponse
            Annotations deleted successfully

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.delete_bulk(
            ids=[1],
            project=1,
        )
        r"   r#   r!   r   delete_bulkdatar   r"   r#   r!   	_responses        r   r'   zAnnotationsClient.delete_bulk"   s-    B $$00S'[j0k	~~r   bulk_createdcompleted_bydraft_created_atground_truth	import_idlast_actionlast_created_by	lead_timeparent_annotationparent_predictionr#   resultselected_itemstasktasks	unique_id
updated_bywas_cancelledr!   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   c                v    | j                   j                  |||||||||	|
|||||||||      }|j                  S )a
  
        Create multiple annotations at once

        Parameters
        ----------
        bulk_created : typing.Optional[bool]
            Annotation was created in bulk mode

        completed_by : typing.Optional[int]

        draft_created_at : typing.Optional[dt.datetime]
            Draft creation time

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth (ground_truth)

        import_id : typing.Optional[int]
            Original annotation ID that was at the import step or NULL if this annotation wasn't imported

        last_action : typing.Optional[LastActionEnum]
            Action which was performed in the last annotation history item

            * `prediction` - Created from prediction
            * `propagated_annotation` - Created from another annotation
            * `imported` - Imported
            * `submitted` - Submitted
            * `updated` - Updated
            * `skipped` - Skipped
            * `accepted` - Accepted
            * `rejected` - Rejected
            * `fixed_and_accepted` - Fixed and accepted
            * `deleted_review` - Deleted review

        last_created_by : typing.Optional[int]
            User who created the last annotation history item

        lead_time : typing.Optional[float]
            How much time it took to annotate the task

        parent_annotation : typing.Optional[int]
            Points to the parent annotation from which this annotation was created

        parent_prediction : typing.Optional[int]
            Points to the prediction from which this annotation was created

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            List of annotation results for the task

        selected_items : typing.Optional[SelectedItemsRequest]

        task : typing.Optional[int]
            Corresponding task for this annotation

        tasks : typing.Optional[typing.Sequence[int]]

        unique_id : typing.Optional[str]

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        typing.List[CreateBulkAnnotationsResponseItem]
            Bulk annotations created successfully

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.create_bulk()
        r+   r   create_bulkr(   r   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r#   r6   r7   r8   r9   r:   r;   r<   r!   r*   s                        r   r?   zAnnotationsClient.create_bulkF   se    T $$00%%-%#+//)!'+' 1 
	* ~~r   idc                T    | j                   j                  ||      }|j                  S )a,  
        Retrieve a specific annotation for a task using the annotation result ID.

        Parameters
        ----------
        id : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Retrieved annotation

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.get(
            id=1,
        )
        r    r   getr(   r   rA   r!   r*   s       r   rD   zAnnotationsClient.get   s)    6 $$((_(M	~~r   c                T    | j                   j                  ||      }|j                  S )a  
        Delete an annotation. This action can't be undone!

        Parameters
        ----------
        id : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        None

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.delete(
            id=1,
        )
        r    r   deleter(   rE   s       r   rH   zAnnotationsClient.delete   s)    4 $$++B+P	~~r   	r-   r/   r3   r#   r6   r8   r;   r<   r!   c       	         d    | j                   j                  |||||||||	|

      }|j                  S )a>  
        Update existing attributes on an annotation.

        Parameters
        ----------
        id : int

        completed_by : typing.Optional[int]
            User ID of the person who created this annotation

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth

        lead_time : typing.Optional[float]
            How much time it took to annotate the task (in seconds)

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            Labeling result in JSON format. Read more about the format in [the Label Studio documentation.](https://labelstud.io/guide/task_format)

        task : typing.Optional[int]
            Corresponding task for this annotation

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Updated annotation

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.update(
            id=1,
            ground_truth=True,
            result=[
                {
                    "from_name": "bboxes",
                    "image_rotation": 0,
                    "original_height": 1080,
                    "original_width": 1920,
                    "to_name": "image",
                    "type": "rectanglelabels",
                    "value": {
                        "height": 60,
                        "rotation": 0,
                        "values": {"rectanglelabels": ["Person"]},
                        "width": 50,
                        "x": 20,
                        "y": 30,
                    },
                }
            ],
            was_cancelled=False,
        )
        rI   r   updater(   r   rA   r-   r/   r3   r#   r6   r8   r;   r<   r!   r*   s               r   rL   zAnnotationsClient.update  sJ    h $$++%%!'+ , 
	 ~~r   orderingr!   rO   c                V    | j                   j                  |||      }|j                  S )a~  
        List all annotations for a task.

        Parameters
        ----------
        id : int
            Task ID

        ordering : typing.Optional[str]
            Which field to use when ordering the results.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        typing.List[Annotation]
            Annotation

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.list(
            id=1,
        )
        rN   r   listr(   r   rA   rO   r!   r*   s        r   rR   zAnnotationsClient.listd  s-    B $$))"xQ`)a	~~r   c       	         d    | j                   j                  |||||||||	|

      }|j                  S )aq
  

                Add annotations to a task like an annotator does. The content of the result field depends on your
                labeling configuration. For example, send the following data as part of your POST
                request to send an empty annotation with the ID of the user who completed the task:

                ```json
                {
                "result": {},
                "was_cancelled": true,
                "ground_truth": true,
                "lead_time": 0,
                "task": 0
                "completed_by": 123
                }
                ```


        Parameters
        ----------
        id : int
            Task ID

        completed_by : typing.Optional[int]
            User ID of the person who created this annotation

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth

        lead_time : typing.Optional[float]
            How much time it took to annotate the task (in seconds)

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            Labeling result in JSON format. Read more about the format in [the Label Studio documentation.](https://labelstud.io/guide/task_format)

        task : typing.Optional[int]
            Corresponding task for this annotation

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Created annotation

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.annotations.create(
            id=1,
            ground_truth=True,
            result=[
                {
                    "from_name": "bboxes",
                    "image_rotation": 0,
                    "original_height": 1080,
                    "original_width": 1920,
                    "to_name": "image",
                    "type": "rectanglelabels",
                    "value": {
                        "height": 60,
                        "rotation": 0,
                        "values": {"rectanglelabels": ["Person"]},
                        "width": 50,
                        "x": 20,
                        "y": 30,
                    },
                }
            ],
            was_cancelled=False,
        )
        rI   r   creater(   rM   s               r   rV   zAnnotationsClient.create  sJ    H $$++%%!'+ , 
	 ~~r   )"__name__
__module____qualname__r   r   propertyr   r   typingSequenceintOptionalr   r   r'   OMITbooldtdatetimer   floatDictstrAnyr	   Listr   r?   r   rD   rH   rL   rR   rV    r   r   r   r      s   O*; O  #7     nr"ooc*"58"KQ??[iKj"	&"N /3-19=.2*.7;04,02626(,QU@D%)7;*.+//3;?+ ood+ ooc*	
 !//"++6 ood+ ??3' __^4  - ??5) "??3/ "??3/ % CO0L MN (<=  ooc"!" vs34#$ ??3'%& OOC('( t,)*  8+, 
6	7-B RV c v~/N Zd < UY  &//.2Q ]a B .2.2,0(,QU%)+//3;?`` ooc*	`
 ood+` ??5)` %` CO0L MN` ooc"` OOC(` t,`  8` 
`F <@tx""$*OOC$8"RXRaRabpRq"	Z	 "P .2.2,0(,QU%)+//3;?pp ooc*	p
 ood+p ??5)p %p CO0L MNp ooc"p OOC(p t,p  8p 
pr   r   c            *       Z   e Zd ZdefdZedefd       Zdddej                  e
   de
d	ej                  e   defd
Zeeeeeeeeeeeeeeeeeedddej                  e   dej                  e
   dej                  ej$                     dej                  e   dej                  e
   dej                  e   dej                  e
   dej                  e   dej                  e
   dej                  e
   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e   dej                  e
   dej                  ej                  e
      dej                  e   dej                  e
   dej                  e   d	ej                  e   dej2                  e   f(dZddde
d	ej                  e   defdZddde
d	ej                  e   ddfd Zeeeeeeeedd!	de
dej                  e
   dej                  e   dej                  e   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e
   dej                  e
   dej                  e   d	ej                  e   defd"Zddd#de
d$ej                  e   d	ej                  e   dej2                  e   fd%Z eeeeeeeedd!	de
dej                  e
   dej                  e   dej                  e   dej                  e
   dej                  ej                  ej*                  eej.                  f         dej                  e
   dej                  e
   dej                  e   d	ej                  e   defd&Z!y)'AsyncAnnotationsClientr   c                &    t        |      | _        y r   )r   r   r   s     r   r   zAsyncAnnotationsClient.__init__  s    4NSr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawAnnotationsClient
        r   r   s    r   r   z(AsyncAnnotationsClient.with_raw_response  r   r   Nr    r"   r#   r!   c                r   K   | j                   j                  |||       d{   }|j                  S 7 w)a  
        Delete multiple annotations by their IDs. The deletion is processed synchronously. Returns the count of deleted annotations in the response.

        Parameters
        ----------
        ids : typing.Sequence[int]
            List of annotation IDs to delete

        project : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DeleteBulkAnnotationsResponse
            Annotations deleted successfully

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.delete_bulk(
                ids=[1],
                project=1,
            )


        asyncio.run(main())
        r%   Nr&   r)   s        r   r'   z"AsyncAnnotationsClient.delete_bulk
  s:     R **663ap6qq	~~ r   "757r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   c                   K   | j                   j                  |||||||||	|
|||||||||       d{   }|j                  S 7 w)a
  
        Create multiple annotations at once

        Parameters
        ----------
        bulk_created : typing.Optional[bool]
            Annotation was created in bulk mode

        completed_by : typing.Optional[int]

        draft_created_at : typing.Optional[dt.datetime]
            Draft creation time

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth (ground_truth)

        import_id : typing.Optional[int]
            Original annotation ID that was at the import step or NULL if this annotation wasn't imported

        last_action : typing.Optional[LastActionEnum]
            Action which was performed in the last annotation history item

            * `prediction` - Created from prediction
            * `propagated_annotation` - Created from another annotation
            * `imported` - Imported
            * `submitted` - Submitted
            * `updated` - Updated
            * `skipped` - Skipped
            * `accepted` - Accepted
            * `rejected` - Rejected
            * `fixed_and_accepted` - Fixed and accepted
            * `deleted_review` - Deleted review

        last_created_by : typing.Optional[int]
            User who created the last annotation history item

        lead_time : typing.Optional[float]
            How much time it took to annotate the task

        parent_annotation : typing.Optional[int]
            Points to the parent annotation from which this annotation was created

        parent_prediction : typing.Optional[int]
            Points to the prediction from which this annotation was created

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            List of annotation results for the task

        selected_items : typing.Optional[SelectedItemsRequest]

        task : typing.Optional[int]
            Corresponding task for this annotation

        tasks : typing.Optional[typing.Sequence[int]]

        unique_id : typing.Optional[str]

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        typing.List[CreateBulkAnnotationsResponseItem]
            Bulk annotations created successfully

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.create_bulk()


        asyncio.run(main())
        r+   Nr>   r@   s                        r   r?   z"AsyncAnnotationsClient.create_bulk6  ss     d **66%%-%#+//)!'+' 7 
 
	* ~~+
s   2AAArA   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)a  
        Retrieve a specific annotation for a task using the annotation result ID.

        Parameters
        ----------
        id : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Retrieved annotation

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.get(
                id=1,
            )


        asyncio.run(main())
        r    NrC   rE   s       r   rD   zAsyncAnnotationsClient.get  s7     F **..r?.SS	~~ T   !646c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)ag  
        Delete an annotation. This action can't be undone!

        Parameters
        ----------
        id : int

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.delete(
                id=1,
            )


        asyncio.run(main())
        r    NrG   rE   s       r   rH   zAsyncAnnotationsClient.delete  s7     D **11"o1VV	~~ Wrq   rI   c       	            K   | j                   j                  |||||||||	|

       d{   }|j                  S 7 w)a	  
        Update existing attributes on an annotation.

        Parameters
        ----------
        id : int

        completed_by : typing.Optional[int]
            User ID of the person who created this annotation

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth

        lead_time : typing.Optional[float]
            How much time it took to annotate the task (in seconds)

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            Labeling result in JSON format. Read more about the format in [the Label Studio documentation.](https://labelstud.io/guide/task_format)

        task : typing.Optional[int]
            Corresponding task for this annotation

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Updated annotation

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.update(
                id=1,
                ground_truth=True,
                result=[
                    {
                        "from_name": "bboxes",
                        "image_rotation": 0,
                        "original_height": 1080,
                        "original_width": 1920,
                        "to_name": "image",
                        "type": "rectanglelabels",
                        "value": {
                            "height": 60,
                            "rotation": 0,
                            "values": {"rectanglelabels": ["Person"]},
                            "width": 50,
                            "x": 20,
                            "y": 30,
                        },
                    }
                ],
                was_cancelled=False,
            )


        asyncio.run(main())
        rI   NrK   rM   s               r   rL   zAsyncAnnotationsClient.update
  sX     x **11%%!'+ 2 
 
	 ~~
   )><>rN   rO   c                r   K   | j                   j                  |||       d{   }|j                  S 7 w)a  
        List all annotations for a task.

        Parameters
        ----------
        id : int
            Task ID

        ordering : typing.Optional[str]
            Which field to use when ordering the results.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        typing.List[Annotation]
            Annotation

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.list(
                id=1,
            )


        asyncio.run(main())
        rN   NrQ   rS   s        r   rR   zAsyncAnnotationsClient.listt  s:     R **//XWf/gg	~~ hrn   c       	            K   | j                   j                  |||||||||	|

       d{   }|j                  S 7 w)a7  

                Add annotations to a task like an annotator does. The content of the result field depends on your
                labeling configuration. For example, send the following data as part of your POST
                request to send an empty annotation with the ID of the user who completed the task:

                ```json
                {
                "result": {},
                "was_cancelled": true,
                "ground_truth": true,
                "lead_time": 0,
                "task": 0
                "completed_by": 123
                }
                ```


        Parameters
        ----------
        id : int
            Task ID

        completed_by : typing.Optional[int]
            User ID of the person who created this annotation

        ground_truth : typing.Optional[bool]
            This annotation is a Ground Truth

        lead_time : typing.Optional[float]
            How much time it took to annotate the task (in seconds)

        project : typing.Optional[int]
            Project ID for this annotation

        result : typing.Optional[typing.Sequence[typing.Dict[str, typing.Any]]]
            Labeling result in JSON format. Read more about the format in [the Label Studio documentation.](https://labelstud.io/guide/task_format)

        task : typing.Optional[int]
            Corresponding task for this annotation

        updated_by : typing.Optional[int]
            Last user who updated this annotation

        was_cancelled : typing.Optional[bool]
            User skipped the task

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Annotation
            Created annotation

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.annotations.create(
                id=1,
                ground_truth=True,
                result=[
                    {
                        "from_name": "bboxes",
                        "image_rotation": 0,
                        "original_height": 1080,
                        "original_width": 1920,
                        "to_name": "image",
                        "type": "rectanglelabels",
                        "value": {
                            "height": 60,
                            "rotation": 0,
                            "values": {"rectanglelabels": ["Person"]},
                            "width": 50,
                            "x": 20,
                            "y": 30,
                        },
                    }
                ],
                was_cancelled=False,
            )


        asyncio.run(main())
        rI   NrU   rM   s               r   rV   zAsyncAnnotationsClient.create  sX     X **11%%!'+ 2 
 
	 ~~
rt   )"rW   rX   rY   r   r   rZ   r   r   r[   r\   r]   r^   r   r   r'   r_   r`   ra   rb   r   rc   rd   re   rf   r	   rg   r   r?   r   rD   rH   rL   rR   rV   rh   r   r   rj   rj     s   T*< T  #<     nr*ooc**58*KQ??[iKj*	&*^ /3-19=.2*.7;04,02626(,QU@D%)7;*.+//3;?+G ood+G ooc*	G
 !//"++6G ood+G ??3'G __^4G  -G ??5)G "??3/G "??3/G %G CO0L MNG (<=G  ooc"!G" vs34#G$ ??3'%G& OOC('G( t,)G*  8+G, 
6	7-GR X\ $C $V__^5T $`j $L [_ #s #8W #cg #R .2.2,0(,QU%)+//3;?hh ooc*	h
 ood+h ??5)h %h CO0L MNh ooc"h OOC(h t,h  8h 
hV <@tx**$*OOC$8*RXRaRabpRq*	Z	 *` .2.2,0(,QU%)+//3;?xx ooc*	x
 ood+x ??5)x %x CO0L MNx ooc"x OOC(x t,x  8x 
xr   rj   )rb   ra   r[   core.client_wrapperr   r   core.request_optionsr   types.annotationr   types.last_action_enumr   types.selected_items_requestr	   
raw_clientr   r   +types.create_bulk_annotations_response_itemr   &types.delete_bulk_annotations_responser   castrf   r_   r   rj   rh   r   r   <module>r      sV      G 1 ) 3 ? G Z Q v{{6::s#e eP] ]r   