+
    :i[                      a  0 t $ R t^ RIHt ^ RIHtHt ^ RIt^ RIt	^ RI
Hu Ht ^ RIHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHtH t  ^R
I!H"t"H#t#H$t$H%t% ^RI&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7 Rt8Rt9. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6Nt:. R@Ot;R7]8R8]9/t<R9]=R:&    ! R; R<] 4      t> ! R= R>]]'R?7      t?R# )AzConfig flow for Dremae Vacuum.)annotations)AnyFinalN)Mapping)	CONF_NAME	CONF_HOST
CONF_TOKENCONF_PASSWORDCONF_USERNAME)callback)
FlowResult	AbortFlow)
format_mac)ConfigEntry
ConfigFlowOptionsFlow)DreameVacuumProtocolMAP_COLOR_SCHEME_LISTMAP_ICON_SET_LISTVERSION)DOMAINCONF_NOTIFYCONF_COLOR_SCHEMECONF_ICON_SETCONF_COUNTRY	CONF_TYPECONF_ACCOUNT_TYPECONF_MACCONF_DIDCONF_AUTH_KEYCONF_HIDDEN_MAP_OBJECTSCONF_PREFER_CLOUDCONF_DONATEDCONF_VERSIONNOTIFICATIONMAP_OBJECTSSPONSORmilocalzdreame.vacuum.r2205zdreame.vacuum.r2243zdreame.vacuum.r2240zdreame.vacuum.r2250zdreame.vacuum.p2009zdreame.vacuum.r2312zdreame.vacuum.p2259zdreame.vacuum.r2312azdreame.vacuum.r2322zdreame.vacuum.p2187zdreame.vacuum.r2328zdreame.vacuum.p2028azdreame.vacuum.p2029zdreame.vacuum.r2257ozdreame.vacuum.r2215ozdreame.vacuum.r2216ozdreame.vacuum.r2228ozdreame.vacuum.r2228zdreame.vacuum.r2246zdreame.vacuum.r2233zdreame.vacuum.r2247zdreame.vacuum.r2211ozdreame.vacuum.r2316zdreame.vacuum.r2316pzdreame.vacuum.r2313zdreame.vacuum.r2355zdreame.vacuum.r2332zdreame.vacuum.p2027zdreame.vacuum.r2104zdreame.vacuum.r2251ozdreame.vacuum.r2232azdreame.vacuum.r2317zdreame.vacuum.r2345azdreame.vacuum.r2345hzdreame.vacuum.r2215zdreame.vacuum.r2235zdreame.vacuum.r2263zdreame.vacuum.r2253zdreame.vacuum.p2028zdreame.vacuum.p2157zdreame.vacuum.p2156ozWith map (Automatic)zWithout map (Manual)r   ACCOUNT_TYPEc                  6    ] tR t^{tRtR R ltRR R lltRtR# )	DreameVacuumOptionsFlowHandlerzHandle Dreame Vacuum options.c                    V ^8  d   QhRRRR/# )   config_entryr   returnNone )formats   "6/config/custom_components/dreame_vacuum/config_flow.py__annotate__+DreameVacuumOptionsFlowHandler.__annotate__~   s     * *[ *T *    c                    Wn         R# )z&Initialize Dreame Vacuum options flow.N_config_entry)selfr.   s   &&r3   __init__'DreameVacuumOptionsFlowHandler.__init__~   s    )r6   Nc                    V ^8  d   QhRRRR/# r-   
user_inputdict[str, Any] | Noner/   r   r1   )r2   s   "r3   r4   r5      s     5
 5
0E 5
Q[ 5
r6   c                  "   / pVe,   V P                  R/ V P                  P                  CVCR7      # V P                  P                  \        ,          p\	        V\
        4      '       d(   VRJ d    \        \        P                  ! 4       4      pM. p\        P                  ! \        P                  ! \        VR7      \        P                  ! \        4      /4      pV P                  P                  \        ,          '       Ed   VP!                  \        P                  ! \"        V P                  P                  \"        ,          R7      \        P$                  ! \        \&        P                  ! 4       4      4      \        P                  ! \(        V P                  P                  P+                  \(        \-        \/        \0        4      4      4      R7      \        P$                  ! \        \0        P                  ! 4       4      4      \        P                  ! \2        V P                  P                  P+                  \2        . 4      R7      \        P                  ! \4        4      /4      pV P                  P                  P+                  \6        \8        4      \8        8X  dZ   VP!                  \        P                  ! \:        V P                  P                  P+                  \:        R4      R7      \
        /4      pVP!                  \        P                  ! \<        V P                  P                  P+                  \<        R4      R7      \
        /4      pV P?                  RVVR7      # 5i)zManage Dreame Vacuum options. )titledataTdefaultFinitstep_iddata_schemaerrors) async_create_entryr9   optionsr   
isinstanceboollistr$   keysvolSchemaRequiredcvmulti_selectrD   r
   extendr   Inr   r   getnextiterr   r    r%   r   ACCOUNT_TYPE_MIr!   r"   async_show_form)r:   r?   rK   notifyrJ   s   &&   r3   async_step_init.DreameVacuumOptionsFlowHandler.async_step_init   s}    !**:fT=O=O=W=W:f[e:f*gg##++K8fd##~l//12jj#,,{F"KR__]iMj!kl""=11%,,LL!2D<N<N<V<VWh<ijlolrlr2779:m LL% $ 2 2 : : > >}dSWXiSjNk l vvd#4#9#9#;<=LL/ $ 2 2 : : > >?VXZ [ {3K !!&&**+<oNRaa)00-$($6$6$>$>$B$BCTV[$\  	 "((  ..66::<O 	
 ### $ 
 	
s   DM#IM#r8   N)__name__
__module____qualname____firstlineno____doc__r;   r_   __static_attributes__r1   r6   r3   r+   r+   {   s    '*5
 5
r6   r+   c                  6   ] tR t^tRt^tR R lt]]R R l4       4       t	R#R R llt
R	 R
 ltR#R R lltR#R R lltR/ R3R R lltR#R ltR/ R3R R lltR/ 3R R lltR/ 3R R lltR#R R lltR#R R lltR#R R lltR R ltR  t]R! 4       tR"tR# )$DreameVacuumFlowHandlerz/Handle config flow for an Dreame Vacuum device.c                   V ^8  d   QhRR/# )r-   r/   r0   r1   )r2   s   "r3   r4   $DreameVacuumFlowHandler.__annotate__   s     " "$ "r6   c                
   RV n         RV n        RV n        RV n        RV n        RV n        RV n        RV n        RV n        \        V n
        RV n        RV n        / V n        RV n        RV n        RV n        RV n        RV n        R# )zInitialize.NeuTF)entrymacmodelhosttokennameusernamepasswordcountryr\   account_type	device_idprefer_cloudrM   protocolmodelsdevicesunsupported_devicesreauthr:   s   &r3   r;    DreameVacuumFlowHandler.__init__   s    )-
#
 $	!%
 $	$($( !0%)"&2459&*'+37 !r6   c                    V ^8  d   QhRRRR/# )r-   r.   r   r/   r+   r1   )r2   s   "r3   r4   rk      s     < <!<	'<r6   c                    \        V 4      # )z&Get the options flow for this handler.)r+   )r.   s   &r3   async_get_options_flow.DreameVacuumFlowHandler.async_get_options_flow   s     .l;;r6   Nc                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk      s     
 
0E 
Q[ 
r6   c           
       "   V P                  4       '       d   V P                  RR7      # \        \        P	                  4       4      pVeF   \        VP                  \        V^ ,          4      ,          V n        V P                  4       G Rj  xL
 # V P                  R\        P                  ! \        P                  ! \        V^ ,          R7      \        P                  ! V4      /4      / R7      #  Lc5i)z&Handle a flow initialized by the user.already_in_progress)reasonNuserrE   rH   )_async_in_progressasync_abortrP   r)   rQ   rY   r   rw   async_step_loginr]   rR   rS   rT   rX   )r:   r?   rw   s   && r3   async_step_user'DreameVacuumFlowHandler.async_step_user   s     ""$$##+@#AAL--/0! ,Z^^I|TU-W XD..000##

CLLLQRO$TVYV\V\]iVj#kl $ 
 	
 1s   B
C2C0A$C2c                    V ^8  d   QhRRRR/# )r-   r?   zMapping[str, Any]r/   r   r1   )r2   s   "r3   r4   rk      s     6 62C 6
 6r6   c                  "   V\         ,          V n        V\        ,          V n        V\        ,          V n        V\        ,          V n        V\        ,          V n	        V\        ,          V n        VP                  \        \        4      V n        VP                  \         4      V n        VP                  \$        4      V n        RV n        V P+                  4       G Rj  xL
 #  L5i)zIPerform reauth upon an authentication error or missing cloud credentials.TN)r   rs   r   rq   r   rr   r
   rt   r	   ru   r   rv   rY   r   r\   rw   r   rx   r   ro   ry   async_step_reauth_confirmr:   r?   s   &&r3   async_step_reauth)DreameVacuumFlowHandler.async_step_reauth   s     y)	y)	
+
"=1"=1!,/&NN+<oN#1>>(+ 335555s   CC#C!C#c                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk      s     > >:O >[e >r6   c                x   "   Ve    RV n         V P                  4       G Rj  xL
 # V P                  RR7      #  L5i)z5Dialog that informs the user that reauth is required.NTreauth_confirm)rI   )r~   r   r]   r   s   &&r3   r   1DreameVacuumFlowHandler.async_step_reauth_confirm   s>     !DK..000##,<#== 1s   :8:c                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk     s      A8 A83H A8T^ A8r6   c                  "   RpV P                   '       g/   V P                  '       Edi   \        V P                  4      ^ 8X  EdN    V P                  e   V P                  P	                  4        \        V P                  V P                  V P                  V P                  V P                  V P                   V P                  V P                  '       d=   V P                  P                  '       d!   V P                  P                  P                  MR4      V n        V P                  P                  V P                  P                  RR^4      G Rj  xL
 pV'       d   VR,          V n        VR,          V n        V P                  P	                  4        V P$                  '       d   T P'                  V P)                  4       \*        V P                  \,        V P                  \.        V P                  \0        V P                  \2        V P                  '       dC   V P                  P                  '       d'   V P                  P                  P                  /R7      # R/R7      # V P                   '       d   V P5                  \7        V P                   4      4      G Rj  xL
  V P9                  \.        V P                  \0        V P                  \:        V P                   \<        V P                  /R7       V P?                  4        V P"                  V P@                  9   d8   V PB                  f   V P"                  V n!        V PE                  4       G Rj  xL
 # Rp T P                  '       d-   T P                  '       d   T PG                  TR7      G Rj  xL
 # MR	pV PI                  VR7      G Rj  xL
 #  EL` EL Lh   Rp Li; i L2 L5i)
z"Connect to a Dreame Vacuum device.Nro   rp   )data_updates)updatesunsupportedcannot_connecterrorwrong_token)%ry   rr   lenrz   
disconnectr   rq   rt   ru   rv   rx   cloudauth_keyhassasync_add_executor_jobconnectro   rp   r~   async_update_reload_and_abort_get_reauth_entryr
   r	   r   r   r   async_set_unique_idr   _abort_if_unique_id_configuredr   r   load_devicesr{   rs   async_step_optionsr   async_step_local)r:   r?   r   infos   &&  r3   async_step_connect*DreameVacuumFlowHandler.async_step_connect  s    DJJ20E7*==,MM,,. 4IIJJMMMMLL%%NN48MMMdmmFYFYFYDMM''00_c	! "YY==dmm>S>SUY[_abcc#E{DH!%gDJ((* ;;;==..0)4==)4==%tyy&

)@DRVR_R_ReReRe 3 3 < <& >   lp& >   88822:dhh3GHHH77%tyy&

$dhh$dnn	! 8  !!#::,yy($(JJ	!%!8!8!:::)E}}}!222???!E***777] d0 I ;A)(H @ 8s   'OOB'N6 .A N6 N.N6 6N6 BOO0?O0'ON1B3ON4O%O7ON?O)O*O.N6 1O4O6N<:OOc               (    V ^8  d   QhRRRRRRRR/# r-   r?   r@   rK   r   z
str | Noner/   r   r1   )r2   s   "r3   r4   rk   E  s2     
 
)
 &
 	

 

r6   c                  "   VeU   V P                  V4       V\        ,          V n        V\        ,          V n        RV n        V P                  4       G Rj  xL
 # V'       d   W2R&   M/ pV P                  \        \        P                  ! \        P                  ! \        V P                  R7      \        \        P                  ! \        V P                  R7      \        /4      VR7      #  L5i)zHandle the initial step.NbaserE   rH   )_async_abort_entries_matchr   rq   r   rr   ro   r   r]   ACCOUNT_TYPE_LOCALrR   rS   rT   str)r:   r?   rK   r   s   &&&&r3   r   (DreameVacuumFlowHandler.async_step_localE  s      !++J7"9-DI#J/DJDH00222"6NF##&

LLDII>LLTZZ@#  $ 	
 		
 3s   AC,C*C,#BC,c                	   "   V P                   \        8X  d   V P                  VR 7      G Rj  xL
 # V P                  VR 7      G Rj  xL
 #  L L5i)r   N)rw   r\   async_step_mir   )r:   r   s   &&r3   r   (DreameVacuumFlowHandler.async_step_loginc  sI     /++%+888***777 97s!   +AAAAAAc               (    V ^8  d   QhRRRRRRRR/# r   r1   )r2   s   "r3   r4   rk   h  s,     7
 7
/7
@U7
cm7
	7
r6   c                x  "   / pVEe%   VP                  \        4      pVP                  \        4      pVP                  \        V P                  4      pV'       Ed   V'       Ed   V'       Ed   WPn        W`n        Wpn        VP                  \        V P                  4      V n        V P                  e   V P                  P                  4        \        V P
                  V P                  V P                  V P                  R7      V n	        V P                  P                  V P                  P                  P                  4      G Rj  xL
  V P                  P                  P                   e   V P#                  4       G Rj  xL
 # V P                  P                  P$                  e   V P'                  4       G Rj  xL
 # V P                  P                  P(                  RJ d   RVR&   MV P                  P                  P(                  '       d   V P+                  4       G Rj  xL
 # M_RVR&   MYV'       dP   W2R&   RpVR8X  d>   V P,                  '       d,   V P,                   F  p	V R	V	P                  R
R4       R2pK  	  RV/pM/ pV P/                  V P0                  V P2                  VVR7      #  ELj EL3 L L5i)z8Configure a dreame vacuum device through the Miio Cloud.N)rt   ru   rv   ry   Flogin_errorr   credentials_incompleterB   
no_devicesz (rp   unknown)r|   rI   rJ   description_placeholdersrK   )rY   r
   r	   r   rv   rt   ru   r!   ry   rz   r   r   r   r   r   logincaptcha_imgasync_step_captchaverification_urlasync_step_2fa	logged_inasync_step_devicesr}   r]   rw   login_schema)
r:   r?   rK   r   r   rt   ru   rv   r|   devices
   &&&&      r3   r   %DreameVacuumFlowHandler.async_step_mih  s5    
 $& !!~~m4H!~~m4H nn\4<<@GxHH ( (&$.NN3DdFWFW$X!==,MM,,. 4!]]!]] LL!%!2!2	! ii66t}}7J7J7P7PQQQ==&&22>!%!8!8!:::]]((99E!%!4!4!666]]((22e;%2F6N]]((222!%!8!8!::: 3 ":v"6NG$)A)A)A"66F!(	FJJw	,J+K1MG 7 )27';$F##%%))%=	 $ 
 	
/ R ;6 ;so   AJ:J:&J:/CJ:J09J: J39J::J6;AJ:J:"J8#J:6J:AJ:3J:6J:8J:c                    V ^8  d   QhRRRR/# r-   r?   r@   rK   r1   )r2   s   "r3   r4   rk     s     
 
/D 
Uj 
r6   c                	"  "   V P                   P                  P                  f?   V P                   P                  P                  '       g   V P	                  4       G R j  xL
 # Ve   VP                  R4      pV P                  P                  V P                   P                  P                  V4      G R j  xL
 pV'       dZ   V P                   P                  P                  '       g   V P	                  R RR7      G R j  xL
 # V P                  4       G R j  xL
 # RVR&   M/ pV P                  R\        P                  ! \        P                  ! R4      \        /4      RV P                   P                  P                  /VR7      #  EL( L L Lv5i)	Nverification_coder   r?   r   
2fa_failedr   2faurlr   )rz   r   r   r   r   rY   r   r   verify_coder   r]   rR   rS   rT   r   )r:   r?   rK   r   results   &&&  r3   r   &DreameVacuumFlowHandler.async_step_2fa  s@    ==//7@S@S@]@]@]++---! */B C99;;DMM<O<O<[<[]nooF}}**444!%!3!3t=!3!YYY!44666!-vF##

LL!45s
 ',T]]-@-@-Q-Q%R $ 	
 		
 . p Z6s\   AFFFAF5F	6F%F(F>F?FFA0F	FFFc                    V ^8  d   QhRRRR/# r   r1   )r2   s   "r3   r4   rk     s     
 
3H 
Yn 
r6   c                	  "   V P                   P                  P                  f?   V P                   P                  P                  '       g   V P	                  4       G R j  xL
 # Ve   VP                  R4      pV P                  P                  V P                   P                  P                  V4      G R j  xL
 pV'       d   V P                   P                  P                  '       gV   V P                   P                  P                  e   V P                  4       G R j  xL
 # V P	                  R RR7      G R j  xL
 # V P                  4       G R j  xL
 # RVR&   M/ pV P                  R\        P                  ! \        P                  ! R4      \         /4      RV P                   P                  P                  /VR7      #  ELb EL L L Ly5i)	Ncoder   r   wrong_captchar   captchaimgr   )rz   r   r   r   r   rY   r   r   verify_captchar   r   r   r]   rR   rS   rT   r   )r:   r?   rK   r   r   s   &&&  r3   r   *DreameVacuumFlowHandler.async_step_captcha  sg    ==**24==;N;N;X;X;X++---!>>&)D99;;DMM<O<O<^<^`deeF}}**444}}**;;G%)%8%8%:::!%!3!3t=!3!YYY!44666!0vF##

LL(#
 ',T]]-@-@-L-L%M $ 	
 		
! . f  ;Y6sn   AGGG AG5G6G%G(5GGG8G9GG
A0GGGG
Gc                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk     s     #
 #
3H #
T^ #
r6   c                .  "   VEf   V P                   '       Eg   V P                  4        V P                  P                  V P                  P
                  P                  V P                  V P                  V P                  4      G Rj  xL
 w  q n
        V'       g   V P                  RR7      G Rj  xL
 # / V n         V F  pV P                  '       gI   V P                  P                  P                  V P                  \!        VR,          4      4      '       d   K]  W0P                   VP#                  RVR,          4       RVR,           2&   K  	  V P                   '       g8   V P                  '       d   V P                  RR7      G Rj  xL
 # \%        R4      h\'        V P                   4      ^8X  d-   R	\)        V P                   P+                  4       4      ^ ,          /pVeB   V P-                  V P                   VR	,          ,          4       V P/                  4       G Rj  xL
 # V P1                  R	\2        P4                  ! \2        P6                  ! R	4      \2        P8                  ! \)        V P                   4      4      /4      / R
7      #  EL EL EL Lr5i)z#Handle Dreame Vacuum devices found.Nr   r   ro   rs   rp   z - already_configuredr|   rH   )r|   r   r   r   rz   r   get_supported_devicesr{   rq   ro   r}   r   r~   config_entries async_entry_for_domain_unique_idhandlerr   rY   r   r   rP   rQ   extract_infor   r]   rR   rS   rT   rX   )r:   r?   supported_devicesr   s   &&  r3   r   *DreameVacuumFlowHandler.async_step_devices  s     <<<!!#DHIIDdDdMM''==t{{DIIW[W_W_E ?;!#; )!%!6!6\!6!JJJ!/F{{{$))*B*B*c*cj&?+ + dj

66'?(K'LCPVW\P]%_`	 0 |||///%)%:%:%:%NNN#$899t||$)"+T$,,2C2C2E-Fq-I!JJ!dll:i+@AB00222##

CLL$;SVVDDV=W#XY $ 
 	
3? K  O 3sc   JA-JJ
	(J1J2A%JAJ#J5J
JBJ J!A*JJJJc                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk     s      .[ .[3H .[T^ .[r6   c                  "   Ve   V\         ,          V n        \        V\        ,          \        VP	                  \        4      \
        VP	                  \
        4      \        VP	                  \        4      \        V P                  /V n	        V P                  4       G Rj  xL
 # \        P                  ! \        P                  ! \         V P                  R7      \        \        P                  ! \        \        \         P"                  ! 4       4      R7      \$        P&                  ! \         4      /4      pV P)                  4        . pV P*                  V P,                  ,          ^8X  d   RpRpVP/                  R4       M]RpRp\0        P2                  ! RR	V P,                  4      pVP5                  4       '       d   \7        V4      R
8  g   VP/                  R4       V P8                  \:        8w  d   VP=                  \        P                  ! \        VR7      \        P>                  ! \        \@        P"                  ! 4       4      4      \        P                  ! \
        VR7      \        P>                  ! \        \B        P"                  ! 4       4      4      \        P                  ! \        VR7      \$        P&                  ! \D        4      /4      pV PG                  RV/ R7      #  ELB5i)z"Handle Dreame Vacuum options step.NrE   zMijia LightMijiaiconzDreame LightDreamez[^0-9]rB   i  rs   rM   rH   )$r   rs   r   r   rY   r   r    r!   ry   rM   async_step_donationrR   rS   rT   r   rP   r$   rQ   rU   rV   r   r{   rp   appendresub	isnumericintrw   r   rW   rX   r   r   r%   r]   )r:   r?   rJ   hidden_map_objectsdefault_color_schemedefault_icon_setrp   s   &&     r3   r   *DreameVacuumFlowHandler.async_step_options  s     !"9-DIZ4!:>>2C#Dz~~m<'8O)P!4#4#4DL 11333jjY		:C[$|7H7H7J2KLboo^jNk
 	;;tzz"a'#0 &%%f-#1 'FF9b$**5EOO%%#e**<"))&1 22%,,LL!2<PQSVSYSY2779:T LL8HI366RVWhWmWmWoRpKqLL!8BTUWYWfWfgrWsK ##I;WY#ZZC 4s   BK$K! DK$:D(K$c                    V ^8  d   QhRRRR/# r>   r1   )r2   s   "r3   r4   rk   .  s     !
 !
4I !
U_ !
r6   c                	B  "   VEeI   V P                   \        VP                  \        R4      \        \        /,          V n         T P                  V P                  \        V P                  \        V P                  \        V P                  \        V P                  \        V P                  \         V P"                  \$        V P&                  \(        V P*                  \,        V P.                  '       d=   V P.                  P0                  '       d!   V P.                  P0                  P2                  MR \4        V P6                  /
V P                   R7      # V P9                  R\:        P<                  ! \:        P>                  ! \        RR7      \@        /4      R\B        // R7      # 5i)NF)rC   rD   rM   donationrE   textr   )"rM   r"   rY   r#   r   rL   rs   r   r   rq   r   rr   r
   rt   r	   ru   r   rv   r   ro   r   rx   r   rz   r   r   r   rw   r]   rR   rS   OptionalrO   r&   r   s   &&r3   r   +DreameVacuumFlowHandler.async_step_donation.  s6    !<<<V[9\^jls*ttDL**iityytyy

!4==!4== $,,dhhdnn!4===UYUbUbUhUhUh4==#6#6#?#?nr%t'8'8  +  " ##

LL$ % 	 '-g%6 $ 
 	
s   C.F1FBFc                    V ^8  d   QhRRRR/# )r-   device_infozdict[str, Any]r/   r0   r1   )r2   s   "r3   r4   rk   Q  s     , , ,4 ,r6   c                   V P                   f   VR,          V n         V P                  f   VR,          V n        V P                  f   VR,          V n        V P                  f   VR,          V n        VR,          V n        VR,          V n        R# )zExtract the device info.Nlocalipro   rp   rs   rr   did)rq   ro   rp   rs   rr   rx   )r:   r  s   &&r3   r   $DreameVacuumFlowHandler.extract_infoQ  sr    99#I.DI88"5)DH::$W-DJ99#F+DI )
$U+r6   c                	    V P                   fB   / V n         \         F  p^ V P                   V&   K  	  \         F  p^V P                   V&   K  	  R # R # ra   )r{   DREAME_MODELSMIJIA_MODELS)r:   ks   & r3   r   $DreameVacuumFlowHandler.load_devices^  sF    ;;DK"!"A #!!"A "	 r6   c                	   V P                   '       dk   \        P                  ! \        P                  ! \        V P
                  R 7      \        \        P                  ! \        V P                  R 7      \        /4      # \        P                  ! \        P                  ! \        V P
                  R 7      \        \        P                  ! \        V P                  R 7      \        \        P                  ! \        V P                  R8X  d   RMV P                  R 7      \        P                  ! . RO4      \        P                  ! \        V P                  R 7      \        /4      # )rE   rm   de)r  cnusrutwsgini2)r~   rR   rS   rT   r
   rt   r   r	   ru   r   rv   rX   r  r!   ry   rO   r   s   &r3   r   $DreameVacuumFlowHandler.login_schemaf  s    ;;;::LLFLLF  zz]DMMBC]DMMBC\DLLD<PDVZVbVbdfiflflDg .8I8IJD	
 		
r6   )rw   rv   rx   r|   rn   rq   ro   rp   r{   rs   rM   ru   ry   rz   r~   rr   r}   rt   ra   )rb   rc   rd   re   rf   r   r;   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   propertyr   rg   r1   r6   r3   ri   ri      s    9G"* <  <
"6>A8J -1(* 	
<8 37XZpt7
r HLmo 
6 LPqs 
:#
J.[`!
F,# 
 
r6   ri   )domain)zdreame.vacuum.p2041zdreame.vacuum.p2036zdreame.vacuum.p2140zdreame.vacuum.p2140azdreame.vacuum.p2114azdreame.vacuum.p2114ozdreame.vacuum.p2149ozdreame.vacuum.p2150azdreame.vacuum.p2150bzdreame.vacuum.p2150ozdreame.vacuum.r2209zdreame.vacuum.p2008zdreame.vacuum.p2148ozdreame.vacuum.p2140ozdreame.vacuum.r2254zdreame.vacuum.p2140pzdreame.vacuum.p2140qzdreame.vacuum.p2041o)@__conditional_annotations__rf   
__future__r   typingr   r   r   
voluptuousrR   'homeassistant.helpers.config_validationhelpersconfig_validationrU   collections.abcr   homeassistant.constr   r   r   r	   r
   homeassistant.corer   homeassistant.data_entry_flowr   r   %homeassistant.helpers.device_registryr   homeassistant.config_entriesr   r   r   dreamer   r   r   r   constr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r\   r   r
  r  r)   __annotations__r+   ri   )r  s   @r3   <module>r+     s_   $ "  	  4 4 #  ( ? <  \ [    (  +++ + 	+
 + + + + + + + + + +  !+" #+$ %+& '+( )+* ++, -+. /+0 1+2 3+4 5+6 7+8 9+: ;+< =+> ?+@ A+B C+D E+F G+H I+J K+L M+N O+P Q+R S+T U+Z. O.e <
[ <
~
j 
r6   