
    @'hV                         d Z ddlZddlZddlZddlmZmZ da G d dej                        Zde	de	fdZ
dd	ee	   d
ee	   defdZy)zAdapted from
https://github.com/oittaa/uuid6-python/blob/main/src/uuid6/__init__.py#L95
Bundled in to avoid install issues with uuid6 package
    N)OptionalTuplec                        e Zd ZdZdZ	 	 	 	 	 	 dej                  j                  ddee	   dee
   dee
   deeeeeeeef      d	ee   d
ee   dej                  ddf fdZedefd       Zedef fd       Z xZS )UUIDzUUID draft version objects N)is_safehexbytesbytes_lefieldsintversionr   returnc          	      H   |||||gj                  d      dk7  rt        | 	  |||||||      S d|cxk  rddz  k  st        d       t        d      |9d|cxk  rd	k  st        d
       t        d
      |dz  }|dz  }|dz  }||dz  z  }t        | 	  ||       y)zCreate a UUID.N   )r	   r
   r   r   r   r   r   r         z*int is out of range (need a 128-bit value)      zillegal version numberl        l            l          L   )r   r   )countsuper__init__
ValueError)	selfr	   r
   r   r   r   r   r   	__class__s	           c/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/langgraph/checkpoint/base/id.pyr   zUUID.__init__   s     ;3x8>>tDI7#! $   C"!s("IJJ #IJJ$1$ !9:: % !9::?"C<C?"C7b= CS'2    c                 R    | j                   dz	  dz  dz  | j                   dz	  dz  z  S )N@     r   6      )r   )r   s    r   subseczUUID.subsec7   s,    R6)a/DHHNd3JKKr   c                 >   | j                   dk(  r/| j                  dz  | j                  dz  z  | j                  dz  z  S | j                   dk(  r| j                  dz	  S | j                   dk(  r(| j                  dz	  dz  t        | j                        z   S t        |    S )	Nr         r!      P   r   @B )	r   time_lowtime_midtime_hi_versionr   _subsec_decoder$   r   time)r   r   s    r   r/   z	UUID.time;   s    <<1"$==B&(''&02
 <<188r>!<<1HHNe+nT[[.IIIw|r   )NNNNNN)__name__
__module____qualname____doc__	__slots__uuidSafeUUIDunknownr   strr
   r   r   r   propertyr$   r/   __classcell__)r   s   @r   r   r      s    %I "!%$(@D!!%"3 "&!6!6"3c]"3 "3 5/	"3
 sCc3;<="3 c]"3 #"3 "3 
"3H L L L c  r   r   valuer   c                     |  dz  dz   S )Nr*   i   r   )r;   s    r   r.   r.   J   s    Ve^u$%%r   node	clock_seqc                 >   t        j                         }|dz  dz   }t        |t        k  r	t        dz   }|a|t        j                  d      }| t        j                  d      } |dz	  dz  }|dz  }|d	z  }||d
z  z  }||dz  dz  z  }|| dz  z  }t        |d      S )a  UUID version 6 is a field-compatible version of UUIDv1, reordered for
    improved DB locality. It is expected that UUIDv6 will primarily be
    used in contexts where there are existing v1 UUIDs. Systems that do
    not involve legacy UUIDv1 SHOULD consider using UUIDv7 instead.

    If 'node' is not given, a random 48-bit number is chosen.

    If 'clock_seq' is given, it is used as the sequence number;
    otherwise a random 14-bit sequence number is chosen.d   l    @'Hwr      0   r'   l    r!   r)   r    i?  r   )r   r   )r/   time_ns_last_v6_timestamprandomgetrandbitsr   )r=   r>   nanoseconds	timestamptime_high_and_time_midtime_low_and_versionuuid_ints          r   uuid6rL   N   s     ,,.K s"%77I%)7I*I&*	"&&r*	|!!"%'2o?$v-%+H$**HV#**H~%%HHa((r   )NN)r3   rE   r/   r5   typingr   r   rD   r   r   r.   rL   r   r   r   <module>rN      sd   
    " 9499 9x&# &# &) )# )$ )r   