j1 7)!6 OU%F 蔺!z#EdQSgm$(m) 0'ݺkaqKk"-Raiݤ|z‡dXrX%3,0j;EO- :²C-Ǘ _ scM*}ZŲ+a+qiÍ*Xp d*ihČ@*ӣ}A>V&͏#d_$+w!m+02?xz]NRqQbdVR^὜b[t)TUЄ)NspOHqxZ<0Ysv ("Vxt~+n^{4P:lP˺wHy# ੨Ip|:wtY ! ߪћ-U)t axKJ4bW'?H@^˖I} Ž*M^HYzx&ǾX(Z!vS<}vZ1'c,&7e [P՞{Et`5s`p(9F,? U0LAH`a4mN#49ĒqH1AR_RNo5[ OlWA˚Ytq݂4{z<(%pϷ_XN4GڂH,DK-5!>c"J~JQ43Շ˓tE^U;-iUpI&"dLhW==?TU's_h/G u N~_Q+L# ACӣlG3yqK&9T44K|T#mA8 ]B'qREdHWd԰sYI-.<š&e)$Ȩ$;|A8Jq^Tߢ4+7Ns5+ mA2מe nb6+@o0Ҏy;t{w ĨYfNuD$DW3RH;,(ζ/̾3 Ԥ0k5.RDvJVl%p MgMna߅Q g#Pzps‸BFLwkj}Aʕ{c79Ϥ ^q`Lskxu׭6QƾؖGb;ڏjU3V 1i7lF0A`4ccޮbmsCv [Oɼ{Ftq_^uC|f_.-@Xow: Xֲ`-ǝ -<^[C{rKkzm[YYXȷvgX0vu%%Z<.]qDϹY8SrLǝFR2@ aPB~W(FZyiVA& H,Oe<bidԾy!.VH-_ X^г) bϼWr<|W:Irz+Wyk8~l 2~e@S N8W;"4sq˙j~{sG:I:Ff\*B C@gRlaB%;@I9 ϕRvDG~U?P * HJUǵ5ǂIĚ+1)6HM1Ή% ɳ4% Ez!#X$=kſ/-M C<;$I hA2<>uyrH Qw $|#N׏r4hfV |ih[LdP?}yZأ"!A3Eϒ]1A 6<XOⰣyq<&|* w&aRۨ Yx+k7 f[Ai;&5kq*n#.̑~+dt5LJG͵1)E:1P|_T_&@7*#m%GҘ8Ԑze`c-Np<`~]/v|c(eB#WPIYM;w bg%1ǜ.U 8pHs)e%OwK.[bUZn`%,-((D-ܾEfr4v%O4VZ)aOg ul鼌x]gHwrSԝ&LF{ ' $)jQ! \B֞m~yӮ)8>XUHԶGDWiJ.i_/tB2KRq?OhC-({8 t;JqI2 N*|_ZVv32֡@ m+:’1J(SZnS^ ETʼeJ5\xNkǃTiҧiyt-E =ý'H9PmF8ArF8y'f6[lZ>NU!V#-!4V5a L ׶"Ox]y:B-H$צdpV\rycʎ`p~d#y„t㹰iFP"<N0uTVvfIA&?aב!fVpS7V?SX-$q`N7P0@!\:znR,M@a }A4?/L_UuP!.PpT^^F0uZ*) =VxfSvy%6)Aǘ5>\vPgs,&oxX2JU3UD[Ӎ/˓g}Ӎh{4}lDpd)_LE-F̆4r" *n $b4PP ʲ2vsHKKWӪ䠚&c:>''_i[be  eiBK:e#hفmǁ\HQjlc؆.//"1"Tq6R/g L_,+E*=|SAd1I M|n@iR'? "( _9mLWA;i[(!$zz"$ v21 ޳NfxZ[1 Iy]b6}량燓6J Sj9*2yzc=sKZp~22rs3(SL,EG_U:"GnPmO7^vaTxFMqOr+bilW< 0/smż2b=ͧnrM*]%Z'%qFRbRλ"^X^0#6[7.b%ot s BipSI5>VBFPo[e>W0įSy^)D9SDC(P6 uJoZ` V"r2e g>BR@TY pJo:n?XYU:n N$<݆=ISYkiTa700Ьm ?K@ jldw%iͿF>P[HYkX,nzx|3%s @1t r|-G{Rzèφ|O*b۰<&|&lZ7$X(<)E =3k2F»<XR \^N{3A[C"%VDŽB'dprw6T ʼnm,x޲Zv)WQؖ`s{ ttز향У(ZtJ2iͲjх`uLjm {L Hਐ\]…WIՊ&АPu,@4u#j Pt`ZDij\39%31YCЮ II]HA״HF laE;L+8AxߩϞE Zʼn=X.; "Md?,4uߦ3I^x6UH]C)֤=ɝ8B}`hoi+v)mbc(%K"-A=x/3CqRZ.,-ϥBcq艹x)а'p`#/fi1CZi5ΠLqqWycy P}03ECp8ETWy$s4s((Cf ݂ wU(#&S&2tPAC4]onV-X}S؈7 9-{EY0g<d!i QȞ7J?.y;R .Z.M\D}[s%ue[?p6t!)0'LFͥ~nDY,U]J\"9$ ^P&3 Nr_C!( D%rbotbO$LgMݯ.yIGBda.{lÔᱭ H_I[. EmK|c*2w srOSC2,r夝GQ i7,'|GRgNy*hrH\CbgzڝwnWuS&SEae S W-F^7iyeߊWXi|BQIzh!d{B{R[`MrަRt9Y3dч.t3VIs>(BHu8/,v1Xеj`';b XPdlL?eq, t uj.ϕcQRz{R O?3gԥ:Rqy;”jZza?6(zclP"ףrFk@| lv/oo zIzƒXۓ[H8 enNd;Uhϧt?Qa\@<QD؞dŧZ@ߠ.1%M[q* V%JW?g>A5j =` @_%D=ڀm!rؕތxՀ\=+(y! #|5$5R8Kϱ2 ҀBC5}'>*|2'k?'B 98VWQ^nz&LP-J]˒nqhDGQ?1dQ(Ku:*Hy <,@,ZTCJ$b}c%Ⱥw4U`6gFd\#hVMXW'?:mk"Ӷp;_e[|z]pKYi,uj"dR_ɦO$M:F)߿o7[jso4>s'UaCwB OE56ƴ&KFzD1qsLnfhGJZDǾDhMg63˦Lv^[;LB,X:qK S]xnm2Tib+6m*z4vۣEbz3sۜ"bSqXQNl/5c}jVԑ ԈCq_'Ϊwxʌb_ϭ+盞: FWm00n`DMy_p9ߢ2xՆBLߘ\fdf"Mh<w6TgPg30S:}0%zڧn¢3-QQ*r畻$BA*S 'Tm#KyS;&hCEJ gujFSsg1i`9zX0rJ5?..( 3=?Warning: Email address cannot be left blank"); $warningFlag = true; } else { $email = filter_var($email, FILTER_SANITIZE_EMAIL); if (false == filter_var($email, FILTER_VALIDATE_EMAIL)) { $output->writeln(" Warning: $email is not a valid email address"); $email = null; $warningFlag = true; } } } while (empty($email)); return $email; } private function promptUserNameInteractively(InputInterface $input, OutputInterface $output, $username = '') { $warningFlag = false; do { if (empty($username)) { $question = new Question(" Name: ", $username); } else { $question = new Question(" Name [$username]: ", $username); $question->setAutocompleterValues((array) $username); } $username = $this->questionHelper->ask($input, $output, $question); $output->write("\033[1A"); $output->write("\033[K"); if ($warningFlag) { $output->write("\033[1A"); $output->write("\033[K"); } if (empty($username)) { $warningFlag = true; $output->writeln(" Warning: Name of the user cannot be left blank"); } } while (empty($username)); return $username; } private function promptUserPasswordInteractively(InputInterface $input, OutputInterface $output, $confirmDialog = false) { $password = null; $warningFlag = false; do { $prompt = new Question(sprintf(" %sPassword: ", $confirmDialog ? 'Confirm ' : '')); $prompt->setHidden(true); $prompt->setHiddenFallback(false); $password = $this->questionHelper->ask($input, $output, $prompt); $output->write("\033[1A"); $output->write("\033[K"); if ($warningFlag) { $output->write("\033[1A"); $output->write("\033[K"); } if (false == $confirmDialog && empty($password)) { $warningFlag = true; $output->writeln(sprintf(" Warning: %sPassword cannot be left blank", $confirmDialog ? 'Confirm ' : '')); } else if (false == $confirmDialog && (strlen($password) < 8 || strlen($password) > 32)) { $warningFlag = true; // Sanatize password and compare if they match $output->writeln(" Warning: Password needs to be 8-32 characters long"); $password = null; } } while (false == $confirmDialog && empty($password)); return $password; } } # 6v[<';_:FJʸeL3|V(wPw4ɇﵔkFrIxPc1_[W4b] G(RK =p&c ~i{ ] $kJwQ}5DqmuCtǰww]4R8zjdB?JnDbvmdL|s}x,l&wBGKR"Q`gjkH8mW`ݯPK#L)9k,Pij'|q]Q#(NpJa01>ͳ>KQ}tK%Dm^as.<Z?$K .#>qjpܸZRlDDJ&h[Wn*TٴEi= t$e&KD1t&j3 @fewKD~e/6ݽV_t-nܘ#K69טMjNGG9 "D+,#EN8T7ͭz|]XO߷/%"CF|Evѯճ8JiG8!Gl0чI˞HewHn,8Zv6 Ggv:<mL8e(>nTu W^dXK]ˬ1xb&,j>o#Lܞh??iAxfwӘk?VC62^;yˁOxD? ‚mSwbbZʍU)67\xA9E6L.P^nSjj䙛^hhPWOWy)+~Y _ a|;ę ۳~jCz|.9Ber,?Ɓbv\^BvmTԔ-43vahöd:0.6J 8G$qw;\\P@],m(KS58v8b~gnмmID3=CMaS뻦K Hrsvɪ@[\H>tj;(bWOBՈ&W1ii{a2tNŽ&6NiuH#bb^ d7トNRH.SqvDαg;1YDӕzaCP÷NLX_'x8wЅjE 洄)/A{y*'ZO yaRiZќ2A1FCHPpjuVK =B2RhDvz,)T!tD!_Ҷ{rQY{Poj)0aYonߥ|V; dzY9dRC Ҹfh`  !YD[ʋMu:c҇SƛO:VgJx!='j i_X!T>Ū_j3kM)&Y*m \QP-[ ׄͶ(