™N Æ#ĸ;cs kZkZkZkZkZdZdZdZ dZ dZ  dZ  dZ  dZ dZ dZdZeed „Z"d „Z0d „Z3d „Z7d „Z:d„Z?d„ZCd„ZGd„ZKd„ZdS(iiiiiiiiicsŅd}|oL|t@o d}n d}|dtdƒ|d@|f}n|o!|dtdƒ|f}n||}|p|o|dtdƒ}n|SdS(Nss;1s %c[3%d%smiis%c[4%dms%c[0m(sosfgcolorskBRIGHTsbrightschrsbgcolorsstr(sstrsfgcolorsbgcolorsosbrights./log.pys ansicolors    ( ! csą"#tiƒ}%d}'|dtidti|ƒƒd})g}*x)|d*r}+|it |ƒƒqZW,|t i |dƒd}.t i i|ƒdS(Nss[s%m/%d %Ts] is s (stimestslog_linesstrftimes localtimeslsargssargsappendsstrsstringsjoinssyssstderrswrite(sargsstslog_lineslsargs./log.pys_log"s *  cs01tt|ƒdS(N(sapplys_logsargs(sargss./log.pyswarn0scs:34tdgt|ƒdgƒ}5tt|ƒdS(Nss(stupleslistsargssapplys_log(sargss./log.pyswarnred3s#cs+78tdjo8tt|ƒndS(Ni(s_gDebugsapplys_logsargs(sargss./log.pyslog7scsN:;tdjo7<tdgt|ƒdgƒ}=tt|ƒndS(Niss(s_gDebugstupleslistsargssapplys_log(sargss./log.pyslogred:s#cs+?@tdjo@tt|ƒndS(Ni(s_gDebugsapplys_logsargs(sargss./log.pysdebug?scsCDEdadS(Ni(s_gDebug(s./log.pys debugfullCscsGHIdadS(Ni(s_gDebug(s./log.pysdebugonGscsKLMdadS(Ni(s_gDebug(s./log.pysdebugoffKsN(sosssysstimesstringssockets_gDebugs _gFileDebugskBLACKskREDskGREENskYELLOWskBLUEskMAGENTAskCYANskWHITEskBRIGHTsNones ansicolors_logswarnswarnredslogslogredsdebugs debugfullsdebugonsdebugoff(s./log.pys?s*$