+
    i                       a  R t0 t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIH	t	H
t
  ^ RIt]P                  t]P                  ! ]P                  ]P                  ! ]4      R7      t] ^ k ]P,                  ! ]4      t ! R R]P2                  P4                  P6                  4      t ! R	 R
]4      tR#   ]]3 d(     ^ RIHt ]P*                  t Lf  ] d    R t  Lsi ; ii ; i)    N)Any)subputil)salt)bcryptc                    \        R4      h)zRaise when called so that importing this module doesn't throw
ImportError when this module is not used. In this case, crypt
and passlib are not needed.
z/crypt and passlib not found, missing dependency)ImportError)_s   &:/usr/lib/python3/dist-packages/cloudinit/distros/netbsd.pyblowfish_hashr      s    
 A     c                      a a ] tR t^*t oRtRtR.t. ROtV 3R ltR t	V3R lR lt
RR	 ltR
 tR tRR ltR tRR/R ltRtVtV ;t# )NetBSDzG
Distro subclass for NetBSD.

(N.B. OpenBSD inherits from this class.)
z*/usr/pkg/etc/sudoers.d/90-cloud-init-usersgroupaddc                   < \         SV `  WV4       \        P                  P	                  R 4      '       d'   . ROV n        . ROV n        . ROV n        . ROV n        R# RR.V n        R.V n        R# )	z/usr/pkg/bin/pkginpkg_addz-U
pkg_deleteN)pkgin-yinstall)r   r   remove)r   r   update)r   r   zfull-upgrade)	super__init__ospathexistspkg_cmd_install_prefixpkg_cmd_remove_prefixpkg_cmd_update_prefixpkg_cmd_upgrade_prefix)selfnamecfgpaths	__class__s   &&&&r   r   NetBSD.__init__?   s]    E*77>>.//*DD')BD&)BD&*ID'+4d*;D'*6D&r   c                    R RW!.# )usermod-G )r"   member_name
group_names   &&&r   _get_add_member_to_group_cmd#NetBSD._get_add_member_to_group_cmdJ   s    499r   c                    < V ^8  d   QhRS[ /# )   return)bool)format__classdict__s   "r   __annotate__NetBSD.__annotate__M   s     7 7$ 7r   c           
     @   \         P                  ! V4      '       d   \        P                  RV4       R# R.pR.pRRRRRR	R
RRR/pRRRRRR/pVP	                  4        F  w  rxWu9   d:   V'       d2   \        V\        4      '       d   VP                  WW,          V.4       KD  Wv9   g   KL  V'       g   KV  VP                  Wg,          4       VP                  Wg,          4       K  	  RV9  g   RV9  d   VR.,          pVR.,          pW1.,          pWA.,          p\        P                  RV4        \        P                  ! W4R7       TP                  RR4      p	T	e   T P                  YRR7       R#   \         d    \         P                  ! \        RT4       h i ; i)zf
Add a user to the system using standard tools

Returns False if user already exists, otherwise True.
z!User %s already exists, skipping.Fuseraddhomedirz-dgecosz-cprimary_groupz-ggroupsr*   shellz-sno_user_groupz--no-user-groupsystemz--systemno_log_initz--no-log-initno_create_homez-mzAdding user %s)	logstringzFailed to create user %spasswdNT)hashed)r   is_userLOGinfoitems
isinstancestrextendappendr   	Exceptionlogexcget
set_passwd)
r"   r#   kwargsadduser_cmdlog_adduser_cmdadduser_optsadduser_flagskeyval
passwd_vals
   &&,       r   add_userNetBSD.add_userM   s    <<HH8$? k$+ tTTdT
 .j?
 HC"sz#s/C/C""L$5s#;<%##""=#56&&}'9: ' 6)XV-CD6!Kv%Ov6! 	!4(	IIk= ZZ$/
!OODTO:   	KK7>	s   2E4 4)FFc                    V'       d   TpM\        V4      p \        P                  ! R RWA.4       T P                  T4       R#   \         d    \        P                  ! \
        RT4       h i ; i)r)   z-pzFailed to set password for %sN)r   r   rN   r   rO   rG   unlock_passwd)r"   userrD   rE   	hashed_pws   &&&& r   rQ   NetBSD.set_passwd   sa    I%f-I	IIy$	89 	4   	KK<dC	s   A )A-c                     \         P                   ! R RRV.4       R#   \         d    \        P                  ! \        RT4       h i ; i)r)   -CyeszFailed to lock user %sNr   rN   r   rO   rG   r"   r#   s   &&r   lock_passwdNetBSD.lock_passwd   s?    	IIy$t45 	KK5t<		    )Ac                     \         P                   ! R RRV.4       R#   \         d    \        P                  ! \        RT4       h i ; i)r)   rb   nozFailed to unlock user %sNrd   re   s   &&r   r]   NetBSD.unlock_passwd   s?    	IIy$d34 	KK7>	rh   c                0    \         P                  R 4       R# )zCannot set the locale.N)rG   debug)r"   localeout_fns   &&&r   apply_localeNetBSD.apply_locale   s    		*+r   c                l    \         P                  ! 4       p\         P                  ! 4       pRRV RV R2/# )z9Return env vars used in NetBSD package_command operationsPKG_PATHz1http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD//z/All)platformreleasemachine)r"   
os_releaseos_archs   &  r   _get_pkg_cmd_environNetBSD._get_pkg_cmd_environ   sB    %%'
""$9Aj\/
 	
r   forcec                   R # Nr+   )r"   r|   s   &$r   update_package_sourcesNetBSD.update_package_sources   s    r   )r   r   r    r!   )z^{username}::z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:z1^{username}:\*LOCKED\*\*\*\*\*\*\*\*\*\*\*\*\*\*:)Fr~   )__name__
__module____qualname____firstlineno____doc__ci_sudoers_fngroup_add_cmd_prefix#shadow_empty_locked_passwd_patternsr   r.   rZ   rQ   rf   r]   rp   rz   r   __static_attributes____classdictcell____classcell__)r&   r5   s   @@r   r   r   *   sa      AM&<+'	8:7 7r!,	
e  r   r   c                       ] tR t^tRtR# )Distror+   N)r   r   r   r   r   r+   r   r   r   r      s    r   r   c                @    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )r1   r   )__conditional_annotations__r   )r4   s   "r   r6   r6      s       3  r   )r   	functoolsloggingr   ru   typingr   cloudinit.distros.bsd	cloudinitr   r   cryptMETHOD_BLOWFISHr   partialmksaltr   r	   AttributeErrorpasslib.hashr   hash	getLoggerr   rG   distrosbsdBSDr   r   r6   )r   s   @r   <module>r      s   
    	       D"**\\$M * !FY""&& FR	V 	{ 	^$ ' 			s*   AB4 4	C$>C
C C$C  C$