ELF5444 (4444444(4(*::L(  , < <HHH QtdRtd*:: /lib/ld-linux.so.2GNUyI1;V:=$>@P"QJ*m?clb~_+ \qAL3#}t7y06XZgC]U!n[BN%HzFx'Gf(EsYDpK5-Rj^O,T|4 .&/<dirSho)a{8wMve9kWu`24,, 5  0(:::;@@BCZR l!/@X1W dC~A@  .D7oh09p De)xg;?T 4: ,)hC{n?1B  P\0" '@<@4cl9lC2r8UB d_7p ,EXGD\pCn3(ql71bNh Bpo'f*ftCuCWp" !LtlR4//4@@'n=V4{]h}aF8q:,B@p8h tP|CC:0" :w" CeT8Ax0y0" l/7 |qC7 @ID FA"x0" .p[O_,6V:h@ Sl8,B;!DQ:hl$$4:8 W,@7' ?lY:icC4pCp?8 8@; librt.so.1clock_gettimeclock_getres_Jv_RegisterClasses__gmon_start__libpthread.so.0pthread_cond_waitpthread_cond_timedwaitpthread_attr_initpthread_rwlock_rdlockpthread_rwlock_initpthread_condattr_initpthread_condattr_setclockpthread_createpthread_rwlock_unlockacceptpthread_condattr_destroyreadpthread_attr_setstacksizesendmsgpthread_rwlock_wrlocksendtoforkpthread_cond_signalpthread_cond_initpthread_mutex_unlock__h_errno_location__res_statemsyncpthread_rwlock_trywrlockpthread_rwlock_tryrdlock__connect__closepthread_mutex_lock__errno_locationpthread_mutex_initpthread_attr_setdetachstaterecvmsgfcntlpwritelibnsl.so.1__nis_hashlibc.so.6strcpytextdomainwritev__nss_hosts_lookupgetgidgetgrnam_rstdout__fsetlockinggetdtablesizereaddir64epoll_waitstrerrorinet_ptonmemmove__nss_hostname_digits_dots__strtol_internalgetpidgetpagesizeqsortfscanf__getdelimmemcpyperrorgetpwuid_r__cxa_finalizedup2getuidmallocconfstrvsnprintfgethostbyname2_r__nss_lookup_function__dcgettextsocketsetgroups__strtoul_internalmempcpyfflushftruncatemmapfreeaddrinfoabortepoll_ctlchmod__nss_nextrawmemchrcallocfprintfkill__nss_group_lookupbindif_nametoindexchdirmremapferrorsetgidget_current_dir_nameopenlogin6addr_loopbackunlinkprogram_invocation_short_namestrcasecmprealloc__strdupepoll_createlistenexecv__res_initgethostbyaddr_rinet_atonmemsetopendir__assert_failpollgetgrouplistsyslogstrcmpargp_help__nss_disable_nscdgetpwnamgetpwnam_rfclosestrerror_r_libc_intl_domainnamesetlocalestderrmkstemp__res_maybe_init__nss_database_lookup_dl_mcount_wrapper_check__ctype_b_locgetsockoptgetgrgid_rgetaddrinfo__xstat__sysconfinet_ntopfopenargp_parse_IO_stdin_used_exit__libc_start_mainstrlenstrchrfputssetsid__libc_fatalargp_program_version_hookclosedirstrchrnulgetservbyname_rsetuid__fxstat64__nss_passwd_lookupfreegetsockname__progname__init_array_start__init_array_end__fini_array_start__fini_array_end_edata__bss_startdbgoutoldcwdserv2strdebug_levelold_giddbnamessecure_in_use__nss_hosts_databasepagesize_m1reload_countstat_userdbsrestart_timeserver_userparanoiaold_uidrestart_intervalstat_uidclient_queuedmax_nthreadsGLIBC_2.2GLIBC_2.1.2GLIBC_2.3GLIBC_2.2.2GLIBC_2.1.1GLIBC_2.1.3GLIBC_2.2.4GLIBC_2.3.2GLIBC_2.1GLIBC_PRIVATEGLIBC_2.0GLIBC_2.3.3                  ii  ri ii ri  qi  si  ti & ri 2 ii > c H ii ii V  ii > Jsi ` ii ii V ii > ri 2 ;;;;(;0;8;@;H;X;`;p;x;;;;;;;;;x?|??????????????????????@@@@@ @(@p@t@@@@ApAtAAAAAAAAAAAAAAAAAABBBB B;r;r;r;r;r;r;r;r <r<r<r<r<r?3?Z?[?j????= =$=(=,=0=4=8=<=@=D=H=L=P=T=X= \=!`="d=#h=$l=%p=&t='x=(|=)=*=+=,=-=.=/=1=2=5=6=7=8=9=;=<=>=?=@=B=C=D=E=G=H=J=K=L=M=N=O=P=Q>T>U>V >W>X>Y>\>] >_$>`(>a,>b0>c4>d8>g<>h@>kD>lH>mL>nP>oT>pX>q\>s`>ud>vh>wl>xp>yt>zx>{|>|>}>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??? ????? ?$?(?,?0?4?8?xPEEj PE jPVW$;uPPd^_~4PP|XZtLEPPWWNR;EtjPEPpPjjjlHX5BtjnjPY_Et4EPVj uE%= VEXPpNjuXj7WXtAEjj PBPbE89t9MQ@XWyXuWXf 0PjjPd|PQƅt$cPPVV?8W|PEVP`g`jjjjjjVjVjVjjj uP1%VFX9|ujVOZYVZ-V[XEEU jVjVjVEVZExjPQP_xjPWyV0Vj:MjPQMPC_jjPjPjjvPjPW<(jR\Hm&UWVS0["EK)wHt&e[^_]jPxPPjjU jj jR911ƃ4렋E 1듋tǃB1wjPxPPjjW1Nwƃj)`E@t)u Iu tgu EEEE؋E EEE E Eu؋EjVP uU8t}WEM9%PjjPxPPjjK봍EEEEEċEj PVX ǃu 8tV~ %PE UWVS}[~8E )E t.WM QUR ƃu8tލe[^_]|ue)[^_]Ít&'US[WP]XÍ&'UWVS [0t$jPE_@ZrEEt&EPVRU}ƃ <EU)PWEP t4U‰UE9EwtMɉύA)čT$ 9u}gtP xƍjPWVPZMQe[^_]ËEPE_U<)čD$E19roU0Q&ZtjPdjƍxPW]VPRZe[^_]É1&UjP@FZ9Yri|QiZlQrZ@/0FX@@F(9u݋EPCPPƍjPxPVP|Y8 tVQXZPXUtQjƍjF`PFXP DAPxƍO BTPRPP ƃu 8tЋGT;pgtWehR8WqjƍxQPXZt0DžDžVYPPEPPEPiƅ@PFPW ;Ftt0PmXdPhPPV螀vXjP‰FEVPW-@tduDžuPXU؃hRPjƍRPhPP/~ VP RZUY[t1 jPxPVPQ jPxPuVPQxjPWjVPyQBv[oWVPNQ tguhRPjƍ0(%j.RRP PE؋PoPP=x\juPQRVPPPPPPP*PWVQR+iPPPPP :9PWVQR0; PPPPPIPWVQR`JPPPPPIyPWVQRJIL  " )Nj18{H hPgXZ~P}! t€uҋDž)DžDžDžADžEEEEEEFPEЍ&8uh@PP @t؋txvPjPWQVPrMPPPPPkPWVQRr;GX@PPTWZMEPEPE jjQBUDž{hRQxƍxjPRVPtL 'PoWPRL UINj8`g;9jt;PPX_XEE PEPjjPx}ȋU؉}hUWVS[õE썃TEPmp^t~EP1҃ vB9t[4uUEɉtrABQtt_EP_u(e[^_]ÐTPhPPuPYe[^_]1zR뒋B,;(|1P`PPEPu݋,@,SUWVS([_0d R XB GG RjPP0PwWPVQ\@,#0Dž$($@ @$耉$((ujjj  hufDžf󥉽fjnRPh  jVoZYPjWR @hPhP; tDWVfZ@YQZ@L Q-Z@ e[^_]jPSjtdVQ$$(8x(+$$XGX0uN0$y$EPq0Vjr  $E܉B8$BLtjjP @t"$APtjjP @rPWƍjPxPPVPEF088 $B<hPpt0$G<PjhP0G_Xj4W&Y^88$p4jxPW VP?8hWVZYjPjjPjƒ0@Dh$B\J`B|zLBPPWPP )9v jh PPP h)ǃ$w,;xw4jPQVP=Q$xƍT0jPRVWP~=$@$q$r4j=1ȋlh9׉ Ƌh9xjPV4|?jPVRWP<8$fPPEWP<jPjƍpUx(jPQmPc<jjPjj PjEƒ$ y`AX@A|DhA\9A<$B,JLj4P$BP@Y^x7jPRVP;rPjƍW\7jPxPgVP\;PDj\x1jPW0VP%;P jf4PxX]PhP)P(0jPxPVP:t4x4jPQzVRPh:jUWVS<u[ÜVh Y_~EPj_ZVPqVPjPhPZt u,},,1))jaZ=@ǃp@pjP hpjWgjdl@u؋VPEjE@VE/@UDžDžIp 10u)ȋPjdQRj~cDžG;0jjP `8tڋ @9u1ҍpD≅~qF؍D0N;t;l8t 9 N;t H;u0ut9,c;O2EQEPEjERGjGl ; H@99EPVEjEPV#lN;8E܉;pPVjP*@l;w @@9N1ɐH9BtV6X@ 9ARXpPcDžDžfF@X@p 10u)PPPCjfzt'jjP T8tO…tEDžf>@9u΋1ҍpOD≅+Dž4 9@  ;)֋ Btl;~P 9XvJD9K@-J߃2ǃp PPFF9vJL9tO@uJ㐐UWVSp[} jXuP@O^Q@ZGP@O^Q@ZGP@^MQZƒ )čD$EPEPjwVPRQ@ЋȋDtE8t=t~LjPxPVP$?e[^]jjMQVMREU e[^]ÐUWVS [} UEB%EuMEP蕵谶PƋEPMQWURUEtSjEPEPPEPt}tU1E18v.P0"te[^_]Ã>"u1Ѓ}tf"0e[^_]ÍMEeuEE쉃,ǃEnUWVS [}  UEB%EuMEPe耵PƋEPMQWURUEtSjEPEPPEPظt}tU1E18v. 0"te[^_]Ã>"u1Ѓ}tf0e[^_]ÍME5uEE쉃 ,ǃEnUWVSl[ßjCXE } Qƶ@ZGP赶@^MQ褶Zƒ )čD$EPEPjGPPRVqw @1ҋt DuB)ċT$Dž1DžPZ@lj@u֋ȋЍ|80EQƅ)čL$GMW1tMA@GGG@DO ‹GG$WU G Bw,G(PP0P`M W1VPG} QWRP3$PPPEjP#@9uE*}9u;WIWVhJXYtt)Љ)󥉽ƅ}Gq(yQZG‰EPPjPEPPj4%URWPQRPj[4xW^v9^e[^_]11DžDžE@ƒ} t0tUHBDžDž농jVPխ @u t8tۋA0PWBHZYGBBB0IHBȹЋz󥋅B 0@PEPVвB( REPPjPGPVGP2 Pau_DžGUBDž15ff1U tE8t=t~jPxP^VPS菧e[^]jjMQVMREU e[^]ÐUWVS [R} UEB%EuMEPPƋEPMQWURUEtSjEPEPPEPXt}tU1E18v.蠦0"te[^_]Ã>"u1Ѓ}tfr0e[^_]ÍME5uEE쉃,ǃEnUWVS [" } UEB%EuMEP赤ХPƋEPMQWURUEtSjEPEPPEP(t}tU1E18v.p0"te[^_]Ã>"u1Ѓ}tfB0e[^_]ÍMEuE E쉃,ǃ EnUWVSX[j蓦XE u P_~@Dž7vAuDž)ċT$u N961G4u$u ЋV ЋuD8ƅQD)čD$ЋBJU1tuF@BBBBIDB ȋJ$ru B FB(F z0B,B4P8QRRVP1ƒt&E H Q@FPRϠ 9u⋅D>9JUQRP|E }AƉ;7BWV;ZYtvt)Hʋ0ƅuF@(V跢u YFP&WBEPPjP@PPR1%P_9e[^_]ËEƒ} Dž t+0j VP @u 蓠8tۋA8PWa9Y^FGGG8G G @H0¹W󥋍8APEPVG( P}WQjRGPVGP# PtXEDž qUBDž [1P軡Y@‰F9utUHBDžDž;G9uFAQ FV ffԋj!Ћq!PR謟 INQPP6Y^ƅV=1M PA"uE&tf뷍MEht1҃ǃ(EE(E쉃$迗jPטZ@YE$U 觕0UWVS EM uQEU [~RPEPEPEjPVEP衚$1Ht-0@,UEB%1҅}%!ƋE0t1v10"te[^_]Ðt&E 8t 貔0e[^_]É蟔0e[^_]ËE0E쉃,EPXsNjE PWEPMQVU REPU Et/jPEPPEPƗU /U :uɲ?"u7f;MEAF1ǃ0US[ǡURۗ4]XÍt&'US[Ò4t!PRhY%Z]Ít&'UWVSE E[9PEPhW谒t! t€tgҍm) tlِVWPPhVhtCPVؔP萑 e[^_]Ð臐WPPjge[^_]Ë8WV荔Y^e[^_]ÐUWVS[PEP謗E_uXMjQXEZUEELHE؋HPLj PWux Mj#Q._ZM@GI苗EЋ$Gt+@F@@GGfA u @GGDA uuOM@>UЋUWMDA E܊‹uMDF AEAt,u>DG u‹MDG @1PEP輎ZY>GuEPP_XEO79}}W[ExE䍃jPQۓURPUЋUWMDA 3uM܊*@R&E܋}@E܋u܊DG u@1PEPZY'Gu?|j* ȉSlZ7-0VՍxEԍjPQ͒URPEjj jPrU DD5@u,1PEP)ZYGuh D@uM1PEPZYGu&Ejj jP͏M DH T@1PEP耋ZYGuEjj jPfu D7,EjjjP֍=w @u:}11Q9u\R:GuQS:GuF@upEjj jPa1D9QU܊E:B?F:B0G:B!xjPVҋMU܋@QRWPUWVS[pǍ*tjw2Dž)DžDž} YjhjP轋G FOXG$ FɋG,FG(FGDFGHFtwAQ4FA0FЉVԋA8Qta}GXLhDhtB‹B|}BGXx$Ox$BuF@9kEP|UXz(tp}8UFB\1PʋpPPv A<wŋEVP\%j.WRPz렍&JBVWEP* ~'VWEP) VWEPJ VWEP VWEP VWEP: VWEP* VWUR {VWMQG hVWEPԼ UuhPPwUƍTz0jPxPyVWP$9t+}WXыRXjB q\)PRv }WXG$MAX@XP\QyXUE E9r1Ɉ]ÍvUEE @9Br1Ɉ]Í'UWVVVEЍqt!>EvMMBuwt)MXZ^_]ËEЃB@wι)MXZ^_]Ít&'UWVS[oEePwEdEP!uUBX_P XE%?u)čL$MVjQwxuvX tEF$V)č|$)ăD$}҉EEUċt|htE;A$M4+&PE@EtaMAXM;H$\MA\ЉxE> xtMPA\ EPE@EuuvXtE@Eċt};x2tU9Q$IM}u}PjEPEPEt}PjEPEP/t} u*MAX@ EP?wEPVwee[^_]Ë}UOd:nUdUE瀄EtuE>|9M}E4EEu}EEU@Xt;P EtB$U;UfuM~\}};Muu;Uvu9rU9U5}}܋tB@BB}E9}<tA$E9E*E9E}uE~ |uOMN\9MUwBX@ ȉEE;Eh9B9EnVREPpM ;y utx>}uGWЋUvXJ\t)ȋxF 9l}w(dtF@FFPhPPnvPhPPen}\t&ME1u}MD>\)IJt\E@Eu9uBBtdEmEt7EEve}GM}uY}}MuM܋;pE܃E9UM܋u;pwEM}149E؅u9E@EE9EvBBtU9UyMEE4EuveE@UEtM}ύ tx 91҉U%!ЊUځ9E9EsUu2EteUBEUuUuE9L UuύD$R\)EЋuȉp}̉ЋU}ЋU)ʉFV}uG F w u;MȉulhpuʉU;tuB$;E~}܋7FE9LlhUM~N9>FUX9XE̋t)E)NjE܃N~E܋MB$9Es }܋E7;FtU؋M;M.9Mztu;q Zt}E}9EUU?B}̃ u)릋UE‹uFuu9uvBBtEE1U}E4P Ё v QEPh[EPPsjURhYEPPZjjtO\B )PR!lOX trPj}PPjPhPPiEPhz|PPiURhy|P|PiEPh||PPiukVhw|QPiPhTPPfiPhSP\PGiPh-P4P(iPhPP iPhPPhPhP3PhPhi롍PhgPQPhPhoPPPhPhnP(P`ht1@tThtBEN 9EPuԋtNP A9uF\419MԋE@QEЃtttH B9r@uF\‰UԋrR9vQRVWEP`PURXtpQjRWEP$PURXttG9~RjQWEPPdURXtPW`YE܋EЃZY)čMMčT$UԋEP7UEP}WuVMQU؃H};}tɋUt FtURPTZYuMM1;9u}vM;<x@9uM ;MEME EMUƅ}EE UEEEEvjWVkE u^C8tE wrVhF_v9w֋Eԉ@B)vv;wu;H uE9AufAftfuƅ{A<t< lM aEV&UWVS[?PMEtE8*tgE tU :*tM M u+e[^_]Àz%M!‰U M t֐}Z}t%e[^_]Àx%U!‰U끉ʋuu˃ WE t E 8E}Et}}EMEE1ɋuVu}F;tuFɉut ;Q|EPEPEPEP҃Džt7}tEE@{EMEwMt UtvP@UUBUuMEE?uE+}E}eUDU)čD$҉Epƃ1҉EEtplhhƁt ˸̀ˋuFtU}EGlU}lphptLjƈtB}hEhM҉ƀt B;ATjj}GP7E EGPWV4E EPtQVB hE䈂ƂEPhMQUR2AuMFˆA;uu@E}xeETU1ɉCEP^-EPEPGZYE}zUu<UEUR9UQu׉E1҃lEpt fftUhuFE܍Ejj PE PCEE8U܉U'tx }}|EE…1ɄEM5PLhbPP4<}MAuEuUWVS[oJU@}EB u.Jt/e[^_]Ðt&uNэu uB u ~xouA u A} T$BAB֋Gf%B 빀zkB(xC9}uMe[^_]à L$MAB uF } AUGf%B E0t$uF FFPEP<^_Dždt}uNƒ K}?EDždP @P@@ @ EtMQ>dZE@ƅcEuuU؍M܍}ĉ40,9u[} fEEu}E }L:F fG}G A(A$A,6MDždEP:UɉX}dQy fE%yAFAFA EAfEf fA iF GfGEQ(@ A(L@BL@BL@ B MU6DždBG@EUUt{uBuEdtdP 0cannot open /proc/self/cmdline: %s; disabling paranoia modecannot change to old UID: %s; disabling paranoia modecannot change to old GID: %s; disabling paranoia modecannot change to old working directory: %s; disabling paranoia modere-exec failed: %s; disabling paranoia modeshort read while reading request: %skey length in request too long: %dshort read while reading request key: %shandle_request: request received (Version = %d) from PID %ldhandle_request: request received (Version = %d)cannot handle old request version %d; current version is %dprovide access to FD %d, for %sCannot run nscd in secure mode as unprivileged userFailed to run nscd as user '%s'invalid persistent database file "%s": %ssuggested size of table for database %s larger than the persistent database's tablecannot create read-only descriptor for "%s"; no mmapdatabase for %s corrupted or simultaneously used; remove %s manually if necessary and restartcannot create %s; no persistent database usedcannot create %s; no sharing possiblecannot write to database file %s: %scannot set socket to close on exec: %s; disabling paranoia modecannot change socket to nonblocking mode: %scannot set socket to close on exec: %scannot enable socket to accept connections: %scould only start %d threads; terminatingnscd_runHx8hFvfd_readynscd_initmain_loop_pollcache_addpwcache_addpwreaddpwbyuid%d%c%n%spwdcache.cfd != -1short write in %s: %sInvalid numeric uid "%s"!key_copy == (char *) rawmemchr (cp, '\0') + 1Haven't found "%s" in password cache!Reloading "%s" in password cache!*(db->data + he->key) != '\0' && *ep == '\0'getpwnam_rgetpwuid_rcache_addgrcache_addgrreaddgrbygidgrpcache.cInvalid numeric gid "%s"!Haven't found "%s" in group cache!Reloading "%s" in group cache!getgrnam_rgetgrgid_rcache_addhstcache_addhsthstcache.ccp == dataset->strdata + total - __builtin_offsetof (struct dataset, strdata)hst->h_addr_list[1] == ((void *)0)req->type == GETHOSTBYNAME || req->type == GETHOSTBYNAMEv6 || req->type == GETHOSTBYADDR || req->type == GETHOSTBYADDRv6Haven't found "%s" in hosts cache!Reloading "%s" in hosts cache!gethostbyaddr_rgethostbyname2_r%d: %s%s%d %sParse error: %spositive-time-to-livedatabase %s is not supported negative-time-to-livesuggested-sizeenable-cachenocheck-fileslogfiledebug-levelmax-threadsserver-userstat-usersharedreload-countunlimitedparanoiarestart-intervalUnknown option: %s %s %scannot get current working directory: %s; disabling paranoia modeNov 4 2005 23:05:59cannot write statistics: %snscd not running! write incompletecannot read statistics datanscd configuration: %15d server debug level %3ud %2uh %2um %2lus server runtime %2uh %2um %2lus server runtime %2um %2lus server runtime %2lus server runtime %15d current number of threads %15d maximum number of threads %15lu number of times clients had to wait %15s paranoia mode enabled %15lu restart internal %s cache: %15s cache is enabled %15s cache is persistent %15s cache is shared %15zu suggested size %15zu total data pool size %15zu used data pool size %15lu seconds time to live for positive entries %15lu seconds time to live for negative entries %15llu cache hits on positive entries %15llu cache hits on negative entries %15llu cache misses on positive entries %15llu cache misses on negative entries %15lu%% cache hit rate %15zu current number of cached values %15zu maximum number of cached values %15zu maximum chain length searched %15llu number of delays on rdlock %15llu number of delays on wrlock %15llu memory allocations failed %15s check /etc/%s for changes Only root or %s is allowed to use this option!cache_addprune_cache|||||{|k|[|yyyyyyK|;| (first)! "should never happen"dh->usableremove %s entry "%s"add new entry "%s" of type %s for %s to cache%snewp->key + newp->len <= table->head->first_freegcmempool_allocmem.ccnt < db->head->nentriescnt == db->head->nentries(db->head->gc_cycle & 1) == 1off_alloc == off_allocend(char *) runp->to >= db->datafreed %zu bytes in %s cache(db->head->gc_cycle & 1) == 0db->head->first_free % (1 << 3) == 0off_free <= db->head->first_freeoff_alloc <= db->head->first_freeoff_allocend <= db->head->first_freenext_data < &he_data[db->head->nentries](*next_data)->packet == off_alloc(*next_data)->key >= (*next_data)->packet(*next_data)->key + (*next_data)->len <= (*next_data)->packet + dh->allocsizenext_hash == &he[db->head->nentries]next_data == &he_data[db->head->nentries](char *) runp->to + runp->size <= db->data + db->head->first_free(char *) runp->from >= db->data(char *) runp->from + runp->size <= db->data + db->head->first_freeentry %zu in hash bucket %zu out of bounds: %u+%zu > %zu key of entry %zu in hash bucket %zu out of bounds: %u+%zu > %zu packet of entry %zu in hash bucket %zu out of bounds: %u+%zu > %zu full key of entry %zu in hash bucket %zu out of bounds: %u+%zu > %zu(db->head->first_free & ((1 << 3) - 1)) == 0no more memory for database '%s'NPTLmemory exhaustedaddhstaiXdns [!UNAVAIL=return] filesgethostbyname3_rgetcanonname_raicache.caddinitgroupsXaddinitgroupsXgetgrent_rsetgrentendgrentinitgroups_dyninitgrcache.ccompat [NOTFOUND=return] filesillegal status in internal_getgrouplist(tcpudpraw ``2 `` (rfc3484_sortgetaddrinfogaih_inet../sysdeps/posix/getaddrinfo.ca1->source_addr.ss_family == 2a2->source_addr.ss_family == 2a1->source_addr.ss_family == 10a2->source_addr.ss_family == 10canonname == ((void *)0)orig_name != ((void *)0)f  d$ tK,gX 6iA GSN $8  J ,, h l =t'D$0oo"oo