>Ic FddlZddlZddlZddlZddlZdZGddZy)Nchtjtt_tjS)z'Return a singleton _Telemetry instance.) _Telemetry _telemetry7/usr/lib/python3/dist-packages/DistUpgrade/telemetry.pygetr s$$ *    rc4eZdZdZdZdZdZdZdZdZ y)rNci|_i|_|j|_t j gdtj djdj|jd<|jdd|_ td5}|j|jd <dddy#1swYyxYw#t$rYywxYw) N) lsb_releasez-rz-sT)stdoutuniversal_newlinesrFromstartz/var/log/upgrade/telemetryz/var/log/installer/media-info InstallMedia)_metrics _stages_hist_get_current_uptime _start_time subprocessPopenPIPE communicatestrip add_stage _dest_pathopenreadlineFileNotFoundError)selffs r__init__z_Telemetry.__init__)s 335 * 0 0 ' #!%%0[]1!66;eg f w6 56 =!01  n- = = =    s0 CC:CC C C CCc(d} td5}t|jjd}ddd|S#1swY|SxYw#tt t f$r,}tjdt|zYd}~|Sd}~wwxYw)z6Get current uptime info. None if we couldn't fetch it.Nz /proc/uptimerz)Exception while fetching current uptime: ) rfloatreadsplitrOSError ValueErrorloggingwarningstr)r uptimer!es rrz_Telemetry._get_current_uptime8s $n% 4qvvx~~/23 4   4  "7J7 $ OOGF# $ $  $s3 A+AAA AAB%!B  Bc|j}|j|y||jt||jz <y)z(Record installer stage with current timeN)rrrint)r stage_namenows rrz_Telemetry.add_stageCsC&&(    #s{ 9C#cD$4$4456rc"||jd<y)zRecord updater typeTypeNr)r updater_types rset_updater_typez_Telemetry.set_updater_typeJs , frc"||jd<y)z*Record if the user had third party sourcesThirdPartySourcesNr4)r usings rset_using_third_party_sourcesz(_Telemetry.set_using_third_party_sourcesNs-2 )*rc|j|jd<tjj |j } tjj |stj|t|j d5}tj|j|dddtj|j tjtjztjztj zy#1swYkxYw#t"$r+}t%j&dt)|zYd}~yd}~wwxYw)z>*- J'doos+ ,q $--+ , HHT__\\DLL0\\"$(LL1 2 , ,  $ OOFF# $ $ $s2A D%!D/A)D%D"D%% E.!EE) __name__ __module__ __qualname__rr"rrr6r:rLrrrrr%s&J  D-3$rr)r)rCr>rFrr rrrrrPs%. !?$?$r