ó
    ioøgpå  ã                   ó°   • S r SSKJr  SSKJr   SSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKJr  SrSrSr " S	 S
\5      rg! \ a    SSKr N@f = f)z!PCP Python Utils Config Routines é    )Údeepcopy)ÚOrderedDictN)ÚpmapiÚxxxé   Fc                   óR  • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS3S jrS rS rS rS rS4S jrS rS rS rS/ 4S jrS rS rS rS  r  " S! S"\!5      r"S# r#S$ r$\%S%4S& jr&S' r'S( r(\%S%4S) jr)S* r*S+ r+S, r,S- r-S. r.S/ r/S3S0 jr0S3S1 jr1S2r2g)5ÚpmConfigé,   zConfig reader and validator c                 ó  • SU l         SU l        Xl        / U l        / U l        / U l        / U l        / U l        [        5       U l	        SU l
        S U l        / U l        0 U l        / U l        [        5       U l        / U l        g )N)z-?z--helpz-Vz	--version)ÚlabelÚ	instancesÚunitÚtypeÚwidthÚ	precisionÚlimitÚformular   )ÚarghelpÚ
metricspecÚutilÚpmidsÚdescsÚinstsÚtextsÚlabelsr   Ú
res_labelsÚ_roundÚ_init_tsÚ_pred_indomÚ	_re_cacheÚ_tmpÚ_conf_metricsÚ_prev_insts)Úselfr   s     Ú./usr/lib/python3/dist-packages/pcp/pmconfig.pyÚ__init__ÚpmConfig.__init__.   sŠ   € à:ˆŒðEˆŒð Œ	ð ˆŒ
ØˆŒ
ØˆŒ
ØˆŒ
ØˆŒÜ%›-ˆŒð ˆŒØˆŒð ˆÔð ˆŒð ˆŒ	ô )›]ˆÔð ˆÕó    c                 ó”   ^ • U 4S jnS H*  n [        [        U5      n[        R                  " X15        M,     g! [         a     M<  f = f)zSet default signal handler c                 óf   >• TR                   R                  5         [        R                  " S5        g)zDefault signal handler r   N)r   ÚfinalizeÚsysÚexit)Ú_signumÚ_framer$   s     €r%   ÚhandlerÚ,pmConfig.set_signal_handler.<locals>.handlerV   s   ø€ à�I‰I×ÑÔ Ü�HŠH�Q�Kr(   )ÚSIGHUPÚSIGTERMN)ÚgetattrÚsignalÚ	Exception)r$   r0   ÚsigÚsignums   `   r%   Úset_signal_handlerÚpmConfig.set_signal_handlerT   sE   ø€ õ	ó 'ˆCðÜ ¤¨Ó-�Ü—’˜fÖ.ò 'øô ó Úðús   Ž&9¹
AÁAc                 ó$   • U R                  U5      $ )zSet default config file )Úset_config_path)r$   Údefault_configs     r%   Úset_config_fileÚpmConfig.set_config_fileb   s   € à×#Ñ# NÓ3Ð3r(   c                 óª  • Sn[         R                  R                  S5      n[        R                  R                  S5      nU HŸ  nUR                  SU5      nUR                  SU5      n[         R                  " U[         R                  5      (       d  MS  [         R                  R                  U5      (       d&  [         R                  R                  U5      (       d  M�  Un  O   [        [        R                  SS 5      nU GH8  nXpR                  ;   a    gUS;   d  UR                  S5      (       d  M3   US;   a  [!        U5      nOUR                  SS	S5      n[         R                  " U[         R                  5      (       aH  [         R                  R                  U5      (       d‘  [         R                  R                  U5      (       dj  [         R                  R#                  U5      (       d  S
nO/[         R                  " U[         R                  5      (       d  SnOSn[%        SU< SU< S35      eGM8  GM;     U$ ! [&         a       U$ f = f)zSet default config path NÚ~ÚPCP_SYSCONF_DIRz$HOMEz$PCP_SYSCONF_DIRr   )ú-cz--configrC   Ú zNo such file or directoryzPermission deniedzNot a regular filez#Failed to read configuration from 'ú':
Ú.)ÚosÚpathÚ
expanduserr   Ú	pmContextÚpmGetConfigÚreplaceÚaccessÚR_OKÚisfileÚisdirÚiterr,   Úargvr   Ú
startswithÚnextÚexistsÚIOErrorÚStopIteration)	r$   r=   ÚconfigÚusrdirÚsysdirÚconfÚargsÚargÚerrs	            r%   r<   ÚpmConfig.set_config_pathf   s¶  € àˆÜ—‘×#Ñ# CÓ(ˆÜ—‘×,Ñ,Ð->Ó?ˆÛ"ˆDØ—<‘< ¨Ó0ˆDØ—<‘<Ð 2°FÓ;ˆDÜ�yŠy˜œrŸw™w×'Ó'Ü—‘—‘˜t×$Ñ$¬¯©¯©°d×(;Ó(;Ø�Ùñ #ô ”C—H‘H˜Q˜R�LÓ!ˆÜˆCØ—l‘lÓ"ÙØÐ(Ó(¨C¯N©N¸4×,@Ó,@ðØÐ0Ó0Ü!% d£™à!$§¡¨T°2°qÓ!9˜ÜŸ9š9 V¬R¯W©W×5Ñ5ÜŸG™GŸN™N¨6×2Ñ2´b·g±g·m±mÀF×6KÑ6KÜ!Ÿw™wŸ~™~¨f×5Ñ5Ø"=™CÜ!#§¢¨6´2·7±7×!;Ñ!;Ø"5™Cà"6˜CÝ%ÓX^Ó`cÐ&dÓeÐeò 7LÒ2ñ ð* ˆøô %ó Ùàˆðús   Ä8DIÉ
IÉIc                 óÒ  • / nU R                   R                  (       GaH  [        R                  R	                  U R                   R                  5      (       a'  UR                  U R                   R                  5        U$ [        [        R                  " U R                   R                  5      5       H²  n[        R                  R                  U R                   R                  U5      nUR                  S5      (       d  MO  [        R                  " U[        R                  5      (       d  M{  [        R                  R	                  U5      (       d  M¡  UR                  U5        M´     U$ )z&Helper to get individual config files z.conf)r   rX   rG   rH   rO   ÚappendÚsortedÚlistdirÚjoinÚendswithrM   rN   )r$   Ú
conf_filesÚfÚfns       r%   Ú_get_conf_filesÚpmConfig._get_conf_files�   sâ   € àˆ
Ø�9‰9××ÐÜ�w‰w�~‰~˜dŸi™i×.Ñ.×/Ñ/Ø×!Ñ! $§)¡)×"2Ñ"2Ô3ð Ðô	  ¤§
¢
¨4¯9©9×+;Ñ+;Ó <Ö=�AÜŸ™Ÿ™ d§i¡i×&6Ñ&6¸Ó:�BØ—{‘{ 7×+Ó+´·	²	¸"¼b¿g¹g×0FÓ0FÌ2Ï7É7Ï>É>ÐZ\×K]ÓK]Ø"×)Ñ)¨"Ö-ñ >ð Ðr(   c                 óX  • [        U5      nUS:X  aB  UR                  S5      (       a  UR                  S5      (       a  USS nX R                  l        gUS;   a  SnUS;   a  SnUS	:X  a  X R                  l        gUS
:X  ad  [        U5      R                  S5      S:w  a  [        U5      U R                  l        g[        U5      R                  SS5      U R                  l        gUS:X  aY  U R                  R                  R                  U5        U R                  R                  R                  5       U R                  l        gUS:X  aY  U R                  R                  R                  U5        U R                  R                  R                  5       U R                  l        gUS:X  a*  US:X  a  SU R                  l        gSU R                  l        gUS:X  a*  US:X  a  SU R                  l        gSU R                  l        gUS:X  a*  [        U5      R%                  S5      U R                  l        g [)        U R                  U[+        U5      5        g! [,         aJ    UR                  S5      (       a  UR                  S5      (       a  USS n[)        U R                  X5         gf = f)zSet options read from file ÚcolxrowÚ"r   éÿÿÿÿN)ÚtrueÚTrueÚyÚyesÚYes)ÚfalseÚFalseÚnÚnoÚNor   Ú	speclocalÚderivedÚ;Ú,ÚsamplesÚintervalr   ÚrawÚtype_preferr   )ÚstrrS   re   r   rl   ry   Úfindrz   rL   ÚoptsÚpmSetOptionSamplesÚpmGetOptionSamplesr}   ÚpmSetOptionIntervalÚpmGetOptionIntervalr~   r   r€   Úsplitr   ÚsetattrÚintÚ
ValueError)r$   ÚnameÚvalues      r%   Úset_attrÚpmConfig.set_attrš   s  € ä�E“
ˆØ�9Óð ×Ñ ×$Ñ$¨¯©¸×)<Ñ)<Ø˜a ˜�Ø %�I‰IÔØØÐ7Ó7ØˆEØÐ7Ó7ØˆEØ�;ÓØ"'�I‰IÕØ�YÓÜ�5‹z�‰˜sÓ# rÓ)Ü$'¨£J�—	‘	Õ!ä$'¨£J×$6Ñ$6°s¸CÓ$@�—	‘	Õ!Ø�YÓØ�I‰I�N‰N×-Ñ-¨eÔ4Ø $§	¡	§¡× AÑ AÓ CˆD�I‰IÕØ�ZÓØ�I‰I�N‰N×.Ñ.¨uÔ5Ø!%§¡§¡×!CÑ!CÓ!EˆD�I‰IÕØ�V‹^Ø˜‹~Ø!"�—	‘	•à!"�—	‘	•Ø�]Ó"Ø˜‹~Ø()�—	‘	Õ%à()�—	‘	Õ%Ø�[Ó Ü"% e£*×"2Ñ"2°3Ó"7ˆD�I‰IÕð0Ü˜Ÿ	™	 4¬¨U«Õ4øÜó 0Ø×#Ñ# C×(Ñ(¨U¯^©^¸C×-@Ñ-@Ø! ! B˜K�EÜ˜Ÿ	™	 4Ö/ð0ús   È4 I ÉAJ)Ê(J)c                 ó’  • UR                  U5      (       d  gUR                  U5       H›  nX0R                  R                  ;   a*  UR	                  X#5      (       d  [        SU< SU< S35      eX0R                  R                  ;   a"  U R                  X1R	                  X#5      5        M�  US:X  d  M‰  [        SU< SU< S35      e   g)z/Read options from a configuration file section NzNo value set for option ú in [Ú]ÚoptionszUnknown option )Úhas_sectionr“   r   ÚkeysÚgetr‹   rŽ   )r$   rX   ÚsectionÚopts       r%   Úread_section_optionsÚpmConfig.read_section_optionsÉ   s�   € à×!Ñ! '×*Ñ*ØØ—>‘> 'Ö*ˆCØ—i‘i—n‘nÓ$¨V¯Z©Z¸×-EÑ-EÝ ËËgÐ!VÓWÐWØ—i‘i—n‘nÓ$Ø—‘˜c§:¡:¨gÓ#;Ö<Ø˜IÕ%Ý ÃÃWÐ!MÓNÐNò +r(   c                 ó  • [         R                  S   S:¼  a-  [         R                  S   S:¼  a  [        R                  " 5       nO[        R                  " 5       n[        Ul        U R                  5        H’  n UR                  U5        SnU R                  X5        [        [         R                  SS 5       HJ  nUR                  S5      (       d  M  USS UR                  5       ;   d  M4  USS nU R                  X5        ML     M”     g! [        R                   a™  n[        US5      (       a  [	        UR                  5      OUR                   S   S   n[         R"                  R%                  S	U< S
U< S[	        UR&                  5      < S35        [         R(                  " S5         SnAGM?  SnAf[*         aJ  n[         R"                  R%                  S	U< SU< S35        [         R(                  " S5         SnAGM‘  SnAff = f)z%Read options from configuration file r   é   r   é   r“   NÚ:Úlinenoú#Failed to read configuration file 'ú', line ú:
Ú
rE   ú.
)r,   Úversion_infoÚConfigParserÚSafeConfigParserr�   Úoptionxformri   Úreadr™   rQ   rR   rS   ÚsectionsÚErrorÚhasattrrŸ   ÚerrorsÚstderrÚwriteÚmessager-   r‹   )r$   rX   r[   r—   r]   ÚerrorrŸ   s          r%   Úread_optionsÚpmConfig.read_optionsÕ   s�  € ô ×Ñ˜AÑ !Ó#¬×(8Ñ(8¸Ñ(;¸qÓ(@Ü!×.Ò.Ó0‰Fä!×2Ò2Ó4ˆFÜ ˆÔØ×(Ñ(Ö*ˆDðØ—‘˜DÔ!Ø#�Ø×)Ñ)¨&Ô:Ü¤§¡¨¨ Ö-�CØ—~‘~ c×*Ó*¨s°1°2¨w¸&¿/¹/Ó:KÕ/KØ"% a b '˜Ø×1Ñ1°&ÖBó .ò +øô  ×%Ñ%ó Ü.5°e¸X×.FÑ.Fœ˜UŸ\™\Ô*ÈEÏLÉLÐYZÉOÐ\]ÑL^�Ü—
‘
× Ò Û$(«&´#°e·m±mÖ2Dð"Fô Gä—’˜—“ûÜó Ü—
‘
× Ò ÓUYÓ[`Ð!aÔbÜ—’˜—“ûðús2   Á9ADÃDÃ-DÄHÄ BF4Æ4HÇ>HÈHc                 ó:  • [         R                  R                  [         R                  R                  5        [         R                  R	                  [
        R                  5      (       a  [         R                  " 5       e[         R                  R                  5       $ )zRead command line options )	r   Úc_apiÚpmSetOptionFlagsÚPM_OPTFLAG_DONEÚpmGetOptionsFromListr,   rR   Ú
pmUsageErrÚpmGetOperands©r$   s    r%   Úread_cmd_lineÚpmConfig.read_cmd_lineï   sY   € ä�‰×$Ñ$¤U§[¡[×%@Ñ%@ÔAÜ�;‰;×+Ñ+¬C¯H©H×5Ñ5Ü×"Ò"Ó$Ð$Ü�{‰{×(Ñ(Ó*Ð*r(   c                 óH  • / n[         R                  " U/5      n[        U5      S    Hv  nUR                  S5      (       d  UR                  S5      (       a  USS nUR	                  S5      (       d  UR	                  S5      (       a  USS nUR                  U5        Mx     U$ )z%Parse user-supplied instances string r   rm   Ú'r   Nrn   )ÚcsvÚreaderÚlistrS   re   ra   )r$   r   r   rÁ   Úinsts        r%   Úparse_instancesÚpmConfig.parse_instancesö   sŒ   € àˆÜ—’˜Y˜KÓ(ˆÜ˜“L ”OˆDØ�‰˜s×#Ñ# t§¡°s×';Ñ';Ø˜A˜B�x�Ø�}‰}˜S×!Ñ! T§]¡]°3×%7Ñ%7Ø˜C˜R�y�Ø�L‰L˜Öñ $ð ˆr(   c                 óh  • / nUR                  S5      S:  a  US-   U4$ SnUR                  S5      S   nU(       a#  [        U5      S:”  a  US   S:X  d	  US   S:X  a  SnUR                  S5      (       d  UR                  S5      (       a‚  UR                  S5      S   R                  S5      S   nUS   nUSUR	                  U5      S-    nU(       a  U R                  USS	 5      nOU R                  U5      nUR                  US
5      nO
U(       a  U/nUR                  S5      S:  a  US-  nX4$ )z!Parse instances from metric spec r|   r�   z,,r   r¿   rm   r   Nrn   rD   )Úcountrˆ   ÚlenÚ	partitionÚrfindrÄ   rL   )r$   Úspecr   ÚquotedÚsÚinststrÚqs          r%   Úparse_metric_spec_instancesÚ$pmConfig.parse_metric_spec_instances  s)  € àˆØ�:‰:�c‹?˜QÓØ˜$‘; Ð%Ð%ð ˆØ�J‰J�s‹O˜AÑˆÞ”�Q“˜!“  1¡¨£°°!±¸³ØˆFØ�:‰:�c�?‰?˜dŸj™j¨Ÿo™oØ—n‘n SÓ)¨!Ñ,×6Ñ6°sÓ;¸AÑ>ˆGØ˜‘
ˆAØÐ1˜wŸ}™}¨QÓ/°Ñ1Ð2ˆGÞØ×,Ñ,¨W°Q°r¨]Ó;‘à×,Ñ,¨WÓ5�Ø—<‘< ¨Ó,‰DæØ˜�Ø�:‰:�c‹?˜QÓØ�D‰LˆDØˆ{Ðr(   c                 óÜ   • U/X'   [        S[        U R                  5      5       HD  n[        X   5      U::  d  M  US:X  a  X   R                  / 5        M1  X   R                  S5        MF     g)zParse new verbose metric r   r�   N)ÚrangerÈ   r   ra   )r$   ÚmetricsÚkeyr�   Úindexs        r%   Úparse_new_verbose_metricÚ!pmConfig.parse_new_verbose_metric  s[   € à�wˆ‰Ü˜1œc $§/¡/Ó2Ö3ˆEÜ�7‘<Ó  EÕ)Ø˜A“:Ø‘L×'Ñ'¨Ö+à‘L×'Ñ'¨Ö-ò 4r(   c                 ó
  • UR                  S5      (       a  UR                  S5      (       a  USS nUS:X  ae  U R                  R                  c   SX   S   -   S-   U-   U R                  l        gU R                  =R                  SX   S   -   S-   U-   -  sl        gU R                  R                  U5      S:X  a%  U/X   U R                  R                  U5      S-   '   gXAU   U R                  R                  U5      S-   '   g)	z%Parse additional verbose metric info rm   r   rn   r   Nr{   r   Ú=)rS   re   r   rz   r   rÖ   )r$   rÔ   rÕ   rË   r�   s        r%   Úparse_verbose_metric_infoÚ"pmConfig.parse_verbose_metric_info(  sè   € à×Ñ˜C× Ñ  U§^¡^°C×%8Ñ%8Ø˜!˜B�KˆEØ�9ÓØ�y‰y× Ñ Ñ(Ø$'¨'©,°q©/Ñ$9¸CÑ$?À%Ñ$G�—	‘	Õ!à—	‘	×!Ò! S¨7©<¸©?Ñ%:¸SÑ%@À5Ñ%HÑHÖ!à�‰×$Ñ$ TÓ*¨aÓ/Ø?D¸g�‘˜TŸ_™_×2Ñ2°4Ó8¸Ñ:Ò;à>C˜‘˜TŸ_™_×2Ñ2°4Ó8¸Ñ:Ò;r(   c                 ó  • SnSU;   d(  SU;   a$  UR                  S5      S   U R                  ;  a  SnSU;   a   SU;   a  UR                  S5      S   S:X  a  SnU(       a4  U R                  US-   U-   5      u  pVUR                  S5      X'   XaU   S'   g	SU;  d"  UR                  S5      S   U R                  ;  a  U R	                  XU5        g	UR                  S5      u  p%X!;  a  [        SU-  5      eU R                  XXS5        g	)
zParse metric information Fr|   rF   r   Tr   r�   zUndeclared metric key %sN)Úrsplitr   rÐ   rˆ   r×   r‹   rÛ   )r$   rÔ   rÕ   r�   ÚcompactrË   r   s          r%   Úparse_metric_infoÚpmConfig.parse_metric_info7  sú   € ð ˆØ�%‹<˜C 3›J¨3¯:©:°c«?¸1Ñ+=ÀTÇ_Á_Ó+TØˆGà�%‹<˜S C›Z¨C¯J©J°s«O¸AÑ,>À)Ó,KØˆGÞà×:Ñ:¸3À¹9ÀuÑ;LÓM‰KˆDØŸ:™: c›?ˆG‰LØ#�C‰L˜ŠOð ˜#‹~ §¡¨C£°Ñ!3¸4¿?¹?Ó!Jà×-Ñ-¨g¸EÕBð  ŸJ™J s›O‘	�ØÓ%Ü$Ð%?À#Ñ%EÓFÐFØ×.Ñ.¨w¸TÕIr(   c                 óV  ^ ^• T R                   R                  R                  5       mT(       d;  U(       d4  [        R                  R                  S5        [        R                  " 5       eT(       d,  U(       a%  T R                   R                  R                  S5      mUU 4S jn[        5       n[        5       nU" 5       n[        5       n[        R                  S   S:¼  aB  [        R                  S   S:¼  a+  [        R                  " 5       n[        R                  " 5       nO*[        R                  " 5       n[        R                  " 5       n[        Ul        [        Ul        T R!                  5        GH:  n	 UR#                  U	5        T R                   R0                  S:X  Ga_  UR3                  S5      (       GaH  [        5       nUR5                  S5       GH  nUT R                   R6                  ;   aW  [        R                  R                  S5        [        R                  R                  SU	-  5        [        R.                  " S5        UR9                  SU5      (       d]  [        R                  R                  S5        [        R                  R                  SU	< SU< S35        [        R.                  " S5         T R;                  XÍUR9                  SU5      5        GM     U H  nXÎ   SS S   nXÎ   SS X?'   M     UR?                  5        H–  nUR3                  U5      (       a  URA                  U5        URC                  U5        X–U'   URE                  U5       H)  u  nnURG                  UUURI                  SS5      5        M+     US;  d  M…  URA                  U5        M˜     GM=     U GHW  nUU   b  M  UR3                  U5      (       d  M$  [        5       nUR5                  U5       Hô  nUR9                  UU5      (       df  UU   n	[        R                  R                  S5        [        R                  R                  SU	< SU< SU< S35        [        R.                  " S5        UT R                   R6                  ;   d5  ['        T R                   S5      (       a  UT R                   RJ                  ;   a  MÑ   T R;                  XÍUR9                  UU5      5        Mö     U H  nXÎ   SS S   nXÎ   SS XO'   M     XEU'   GMZ     U HC  nUU   b  M  [        R                  R                  SU-  5        [        R.                  " S5        ME     T R                   R0                  S:X  a$  U H  nX>   T R                   RL                  U'   M      U Hi  n[O        X^   [P        5      (       a  X^   T R                   RL                  U'   M7  X^   (       d  MB  X^    H  nUU   T R                   RL                  U'   M!     Mk     T R                   RL                  (       d5  [        R                  R                  S5        [        R.                  " S5        [S        T R                   RL                  5      T l*        g! [        R$                   a˜  n
['        U
S5      (       a  [        U
R(                  5      OU
R*                  S   S   n[        R                  R                  S	U	< S
U< S[        U
R,                  5      < S35        [        R.                  " S5         Sn
A
GN™Sn
A
ff = f! [<         ar  n
[        R                  R                  S5        [        R                  R                  S[        U
5      U	-  -   S-   5        [        R.                  " S5         Sn
A
GMË  Sn
A
ff = f! [<         aw  n
UU   n	[        R                  R                  S5        [        R                  R                  SU	-  [        U
5      -   S-   5        [        R.                  " S5         Sn
A
GM2  Sn
A
ff = f)z Construct and prepare metricset zNo metrics specified.
rD   c                  óÐ   >• [        5       n T HT  nUR                  S5      (       a	  SXSS '   M"  TR                  U5      u  p#UR                  S5      nX4S'   USS XS   '   MV     U $ )z"Helper to read command line items rž   Nr   r|   r�   r   )r   rS   rÐ   rˆ   )ÚtempmetÚmetricrË   r   ÚmrÔ   r$   s        €€r%   Úread_cmd_line_itemsÚ5pmConfig.prepare_metrics.<locals>.read_cmd_line_itemsZ  sq   ø€ ä!“mˆGÛ!�Ø×$Ñ$ S×)Ñ)Ø*.�G 1 2˜JÓ'à"&×"BÑ"BÀ6Ó"J‘K�DØŸ
™
 3›�AØ �a‘DØ$% a b E�G˜a™D“Mñ "ð ˆNr(   r   rœ   r   r�   rŸ   r    r¡   r¢   r£   NÚglobalz"Failed to read configuration file z)'%s':
Section [global] contains options.
r¿   z':
No value set for z in [global].
z'%s':
r¤   Ú%z%%)r“   ré   r‘   z].
Úkeys_ignorez&Metricset definition ':%s' not found.
)+r   rƒ   rº   r,   r®   r¯   r   r¹   ÚcontextÚpmGetChildrenr   r¥   r¦   r§   r�   r¨   ri   r©   r«   r¬   rŸ   r­   r°   r-   Úglobalsr”   r“   r•   r–   rà   r‹   rª   Úremove_sectionÚadd_sectionÚitemsÚsetrL   rë   rÔ   Ú
isinstancerÂ   r   r"   )r$   Úpmnsrç   ÚglobmetÚconfmetÚcmdlmetÚsourcesrX   Úall_setsr[   r±   rŸ   ÚparsemetrÕ   rå   rŒ   r—   r�   rË   ræ   rÔ   s   `                   @r%   Úprepare_metricsÚpmConfig.prepare_metricsQ  s+  ù€ à—)‘)—.‘.×.Ñ.Ó0ˆÞžtÜ�J‰J×ÑÐ6Ô7Ü×"Ò"Ó$Ð$Þž4Ø—i‘i×'Ñ'×5Ñ5°bÓ9ˆGö	ô “-ˆÜ“-ˆÙ%Ó'ˆÜ“-ˆô ×Ñ˜AÑ !Ó#¬×(8Ñ(8¸Ñ(;¸qÓ(@Ü!×.Ò.Ó0ˆFÜ#×0Ò0Ó2‰Hä!×2Ò2Ó4ˆFÜ#×4Ò4Ó6ˆHÜ"ˆÔÜ ˆÔØ×(Ñ(×*ˆDðØ—‘˜DÔ!ð �y‰y× Ñ  AÔ%Ø×%Ñ% h×/Ò/Ü*›}�HØ%Ÿ~™~¨h×7˜Ø $§)¡)§.¡.Ó0ÜŸJ™J×,Ñ,Ð-QÔRÜŸJ™J×,Ñ,Ð-ZÐ]aÑ-aÔbÜŸHšH QœKØ%Ÿz™z¨(°C×8Ñ8ÜŸJ™J×,Ñ,Ð-QÔRÜŸJ™J×,Ò,Ó\`ÓbeÐ-fÔgÜŸHšH QœKð(Ø ×2Ñ2°8À&Ç*Á*ÈXÐWZÓB[×\ñ  8ó #+˜Ø'Ñ/°°Ð3°AÑ6˜Ø(0Ñ(8¸¸Ð(<˜›ñ #+ð
 "Ÿ?™?Ö,�Ø×'Ñ'¨×0Ñ0Ø×+Ñ+¨GÔ4Ø×$Ñ$ WÔ-Ø#'˜Ñ Ø"(§,¡,¨wÖ"7‘J�C˜Ø—L‘L ¨#¨u¯}©}¸SÀ$Ó/GÖHñ #8àÐ"7Õ7Ø×)Ñ)¨'Ö2ô -ñC +ôX ˆDØ�t‰}Ó$Ø×'Ñ'¨×-Ó-Ü*›}�HØ'×/Ñ/°Ö5˜Ø'Ÿ|™|¨D°#×6Ñ6Ø#*¨4¡=˜DÜŸJ™J×,Ñ,Ð-QÔRÜŸJ™J×,Ò,ÓX\Ó^aÓcgÐ-hÔiÜŸHšH QœKØ $§)¡)§.¡.Ó0Ü# D§I¡I¨}×=Ñ=À#ÈÏÉ×I^ÑI^ÓB^Ù$ð(Ø ×2Ñ2°8À(Ç,Á,ÈtÐUXÓBYÖZñ  6ó  #+˜Ø'Ñ/°°Ð3°AÑ6˜Ø(0Ñ(8¸¸Ð(<˜›ñ #+ð %,˜D”Mñ/ ó4 ˆDØ�t‰}Ó$Ü—
‘
× Ñ Ð!JÈTÑ!QÔRÜ—’˜–ñ ð �9‰9×Ñ Ó!Û!�Ø,3©O�—	‘	×!Ñ! &Ó)ñ "ãˆFÜ˜'™/¬4×0Ñ0Ø,3©O�—	‘	×!Ñ! &Ó)à—?‘?Ø$œ_˜Ø/6°q©z˜Ÿ	™	×)Ñ)¨!Ó,ó -ñ ð �y‰y× × Ü�J‰J×ÑÐ6Ô7Ü�HŠH�QŒKä% d§i¡i×&7Ñ&7Ó8ˆÕøôq  ×%Ñ%ó Ü.5°e¸X×.FÑ.Fœ˜UŸ\™\Ô*ÈEÏLÉLÐYZÉOÐ\]ÑL^�Ü—
‘
× Ò Û$(«&´#°e·m±mÖ2Dð"Fô Gä—’˜—’ûð	ûô*  *ó (ÜŸJ™J×,Ñ,Ð-QÔRÜŸJ™J×,Ñ,¨Y¼¸U»ÀdÑ9JÑ-JÈUÑ-RÔSÜŸHšH QŸK›Kûð(ûôF  *ó (Ø#*¨4¡=˜DÜŸJ™J×,Ñ,Ð-QÔRÜŸJ™J×,Ñ,¨Y¸Ñ-=ÄÀEÃ
Ñ-JÈUÑ-RÔSÜŸHšH QŸK›Kûð	(úsK   Å6Y9Ê>"\(Ó"^'Ù9\%ÚB\ Ü \%Ü(
^$Ü2A&^Þ^$Þ'
`(Þ1A+`#à#`(c                 ór   • [        U R                  S5      (       a  U R                  R                  (       a  gg)zCheck if help texts requested Úinclude_textsTF)r¬   r   rþ   r»   s    r%   Úprovide_textsÚpmConfig.provide_textsÔ  ó%   € ä�4—9‘9˜o×.Ñ.°4·9±9×3J×3JØØr(   c                 ór   • [        U R                  S5      (       a  U R                  R                  (       a  gg)zCheck if labels needed Úinclude_labelsTF)r¬   r   r  r»   s    r%   Úprovide_labelsÚpmConfig.provide_labelsÚ  ó&   € ä�4—9‘9Ð.×/Ñ/°D·I±I×4L×4LØØr(   c                 óÎ   • / nUR                  5        HN  u  p4[        U[        5      (       a"  UR                  U R	                  U5      5        M<  UR                  X445        MP     U$ )zHelper to flatten dict to list )rñ   ró   ÚdictÚextendÚ_dict_to_flat_listra   )r$   Údrñ   ÚkÚvs        r%   r
  ÚpmConfig._dict_to_flat_listà  sR   € àˆØ—G‘G–I‰DˆAÜ˜!œT×"Ñ"Ø—‘˜T×4Ñ4°QÓ7Ö8à—‘˜a˜VÖ$ñ	 ð
 ˆr(   c                 óH   • UR                  5       nUR                  U5        U$ )zHelper to merge label dicts )ÚcopyÚupdate)r$   Úd1Úd2Úd3s       r%   Úmerge_labelsÚpmConfig.merge_labelsê  s   € à�W‰W‹YˆØ
�	‰	�"ŒØˆ	r(   NTc                 ó  • U(       a  U R                   U   nOIU R                  [        U R                  R                  R                  5       5      R                  U5         nUS[        R                  R                  4;   a  US   nOVU(       a  X%S   ;  a  0 OUS   U   nOUS   (       d  0 OUS   U   nU(       d  UnU(       d  gOUS   nU R                  X‡5      nSSR                  S U R                  U5       5       5      -   S-   $ )	zReturn labels as string Nr   r   z{}Ú{r|   c              3   ó<   #   • U  H  u  pS U< SU< S 3v •  M     g7f)r¿   z':'N© )Ú.0r  r  s      r%   Ú	<genexpr>Ú*pmConfig.get_labels_str.<locals>.<genexpr>  s   é € ÐaÒA`±v¸¸1«Q³Õ2ÒA`ùs   ‚Ú})r   r   rÂ   r   rÔ   r•   rÖ   r   rµ   Ú
PM_IN_NULLr  rd   r
  )	r$   rå   rÃ   ÚcurrÚcombineÚrefr   Úinst_labelsÚmetric_labelss	            r%   Úget_labels_strÚpmConfig.get_labels_strð  sî   € æØ—/‘/ &Ñ)‰Cà—+‘+œd 4§9¡9×#4Ñ#4×#9Ñ#9Ó#;Ó<×BÑBÀ6ÓJÑKˆCØ�Dœ%Ÿ+™+×0Ñ0Ð1Ó1Ø˜‘V‰FæØ$(°A±Ó$6™b¸CÀ¹FÀ4¹L‘à(+¨A¯™b°C¸±F¸4±L�ÞØ$�ÞØð ð !$ A¡�Ø×*Ñ*¨=ÓF�Ø�S—X‘XÑaÀ×AXÑAXÐY_ÔA`ÓaÓaÑaÐdgÑgÐgr(   c                 ór   • [        U R                  S5      (       a  U R                  R                  (       a  gg)zCheck if doing live filtering Úlive_filterTF)r¬   r   r(  r»   s    r%   Údo_live_filteringÚpmConfig.do_live_filtering  s%   € ä�4—9‘9˜m×,Ñ,°·±×1F×1FØØr(   c                 ór   • [        U R                  S5      (       a  U R                  R                  (       a  gg)z Check if doing invert filtering Úinvert_filterTF)r¬   r   r,  r»   s    r%   Údo_invert_filteringÚpmConfig.do_invert_filtering  r  r(   c                 ó  • U R                   R                  R                  [        R                  R
                  :X  a%  U R                   R                  R                  U5      $ U R                   R                  R                  U5      $ )zGet instance domain for metric )r   rì   r   r   rµ   ÚPM_CONTEXT_ARCHIVEÚpmGetInDomArchiveÚ
pmGetInDom)r$   Údescs     r%   Úget_metric_indomÚpmConfig.get_metric_indom  sZ   € à�9‰9×Ñ×!Ñ!¤U§[¡[×%CÑ%CÓCØ—9‘9×$Ñ$×6Ñ6°tÓ<Ð<Ø�y‰y× Ñ ×+Ñ+¨DÓ1Ð1r(   c                 óD  • U[         R                  R                  :X  a  U(       a  0 $ / $ U(       a%  U R                  R                  R                  U5      $ / nU R                  R                  R                  U5      nU H  nUR                  Xe;   a  XV   O0 5        M     U$ )zGet instance labels )r   rµ   ÚPM_INDOM_NULLr   rì   ÚpmGetInstancesLabelsra   )r$   Úindomr   r   r#  Úindom_labelsÚis          r%   Úget_inst_labelsÚpmConfig.get_inst_labels  s…   € à”E—K‘K×-Ñ-Ó-Þ�2Ð% 2Ð%ÞØ—9‘9×$Ñ$×9Ñ9¸%Ó@Ð@ØˆØ—y‘y×(Ñ(×=Ñ=¸eÓDˆÛˆAØ×Ñ°!Ó2C˜|šÈÖLñ àÐr(   c                 óê   • UR                  S5      (       a  USS nU$ UR                  S5      (       a  USS nUR                  S5      (       a  USS n[        R                  R	                  U5      nU$ )zGet process basename Ú(r   rn   Ú-Nrž   )rS   re   rG   rH   Úbasename)r$   Úprocs     r%   Úget_proc_basenameÚpmConfig.get_proc_basename$  sr   € à�?‰?˜3×Ñà˜˜"�:ˆDð ˆð �‰˜s×#Ñ#Ø˜A˜B�x�Ø�}‰}˜S×!Ñ!Ø˜C˜R�y�Ü—7‘7×#Ñ# DÓ)ˆDØˆr(   c           
      ó´  •  U R                   R                  R                  U5      S   nX R                  ;   a  gU R                   R                  R	                  U5      S   nUR
                  R                  [        R                  R                  :X  a  [        R                  R                  /S/4nO9U R                  U5      nUS   (       d  [        R                  R                  /S/4nUR
                  R                  [        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                   [        R                  R"                  [        R                  R$                  [        R                  R&                  4;  a.  [        R(                  " [        R                  R*                  5      eU R,                  (       d  U R                   R.                  OU R,                  n[1        U R                   S5      (       a)  U R                   R2                  (       a  US   S   (       d  gU(       Ga¦  US   S   (       Ga˜  U R5                  5       (       Gd‚  / / /nU GHa  nSnSn	 UR7                  5       (       a¿  Sn	US   S   R9                  5       S   R7                  5       (       a‘  [;        US   5       H  u  p«UR9                  5       S   nUR7                  5       (       d  M/  [=        U5      [=        U5      :X  d  MI  US   R?                  US   U
   5        US   R?                  US   U
   5        Sn  O   URA                  S	S5      RA                  S
S5      RA                  SS5      RC                  5       (       a®  Sn	SUS   S   ;   a   US   S   R9                  5       S   R7                  5       (       at  [;        US   5       Hb  u  p«XpRE                  UR9                  5       S   5      :X  d  M,  US   R?                  US   U
   5        US   R?                  US   U
   5        SnMd     U(       dŠ  Sn	[F        RH                  " SU-   S-   5      n[;        US   5       HV  u  p«[F        RJ                  " XÛ5      (       d  M"  US   R?                  US   U
   5        US   R?                  US   U
   5        MX     AGMa  GMd     US   (       d  g[W        U5      nU R                  R?                  U5        U RX                  R?                  U5        U RZ                  R?                  U5        U R]                  5       (       GaQ  Su  nnnn U R                   R                  R_                  U[        R                  R`                  5      nU R                   R                  R_                  U[        R                  Rb                  5      nUR
                  R                  [        R                  R                  :w  a|  U R                   R                  Re                  U[        R                  R`                  5      nU R                   R                  Re                  U[        R                  Rb                  5      nU Rj                  R?                  UUUU/5        0 n/ n0 nU Rm                  5       (       au   U R                   R                  Ro                  U5      nU Rq                  UR
                  R                  SUS   5      nU Rq                  UR
                  R                  5      nU Rr                  R?                  UU/5        UU/U Rt                  U'   g! [L         aM  n[N        RP                  RS                  U	< SU< SU< S35        [N        RT                  " S5         SnAGME  SnAff = f! [        R(                   a7  nURf                  S   [        R                  Rh                  :w  a  e  SnAGN~SnAff = f! [L         a     Nãf = f! [        R(                   aŒ  n[1        U R                   S5      (       a   U R                   Rv                  (       a   SnAg[N        RP                  RS                  SU< S[y        U5      < S35        [N        RT                  " S5         SnAgSnAff = f)z/Validate individual metric and get its details r   NÚ	omit_flatr   FrD   zInvalid instanceTrF   Ú_r@  zInvalid processÚ zInvalid regexú\Aú\Zz 'ú': r¤   )NNNNÚignore_incompatúInvalid metric ú (ú).
)=r   rì   ÚpmLookupNamer   ÚpmLookupDescsÚcontentsr9  r   rµ   r7  r  r4  r   Ú
PM_TYPE_32ÚPM_TYPE_U32Ú
PM_TYPE_64ÚPM_TYPE_U64ÚPM_TYPE_FLOATÚPM_TYPE_DOUBLEÚPM_TYPE_STRINGÚpmErrÚPM_ERR_TYPEr!   r   r¬   rF  r)  Úisdigitrˆ   Ú	enumeraterŠ   ra   rL   ÚisalnumrC  ÚreÚcompileÚmatchr6   r,   r®   r¯   r-   Útupler   r   rÿ   ÚpmLookupTextÚPM_TEXT_ONELINEÚPM_TEXT_HELPÚpmLookupInDomTextr\   ÚPM_ERR_TEXTr   r  ÚpmLookupLabelsr<  r   r   rL  r�   )r$   rå   Úpmidr3  rÃ   r   ÚfoundÚrÚhitÚmsgr;  rÍ   ÚspÚcrr±   ÚlineÚfullÚdomlÚdomhr$  r#  Ú	ri_labelss                         r%   Úcheck_metricÚpmConfig.check_metric2  s‘  € ð]	Ø—9‘9×$Ñ$×1Ñ1°&Ó9¸!Ñ<ˆDØ—z‘zÓ!àØ—9‘9×$Ñ$×2Ñ2°4Ó8¸Ñ;ˆDØ�}‰}×"Ñ"¤e§k¡k×&?Ñ&?Ó?ÜŸ™×/Ñ/Ð0°4°&Ð9‘à×,Ñ,¨TÓ2�Ø˜A—wÜ"Ÿ[™[×3Ñ3Ð4°t°fÐ=�Dà�}‰}×!Ñ!¬%¯+©+×*@Ñ*@Ü*/¯+©+×*AÑ*AÜ*/¯+©+×*@Ñ*@Ü*/¯+©+×*AÑ*AÜ*/¯+©+×*CÑ*CÜ*/¯+©+×*DÑ*DÜ*/¯+©+×*DÑ*Dð*Fó Fô —k’k¤%§+¡+×"9Ñ"9Ó:Ð:Ø37·9·9˜Ÿ	™	×+Ò+À$Ç)Á)ˆIÜ�t—y‘y +×.Ñ.°4·9±9×3F×3FÈtÐTUÉwÐWXÏzØß˜T !™W QŸZ˜Z°×0FÑ0F×0HÒ0HØ˜R˜�Ü"�AØ�CØ�Cð$ØŸ9™9Ÿ;™;Ø"4˜CØ# A™w q™z×/Ñ/Ó1°!Ñ4×<Ñ<×>Ñ>Ü,5°d¸1±gÖ,>¡D AØ)*¯©«°1© BØ')§z¡z§|£|¼¸A»Ä#ÀbÃ'Õ8IØ(-¨a©¯©¸¸Q¹À¹
Ô(CØ(-¨a©¯©¸¸Q¹À¹
Ô(CØ.2¨Ù(-ñ -?ð Ÿ9™9 S¨"Ó-×5Ñ5°c¸2Ó>×FÑFÀsÈBÓO×WÑW×YÑYØ"3˜CØ" d¨1¡g¨a¡jÓ0°T¸!±W¸Q±Z×5EÑ5EÓ5GÈÑ5J×5RÑ5R×5TÑ5TÜ,5°d¸1±gÖ,>¡D AØ'(×,BÑ,BÀ1Ç7Á7Ã9ÈQÁ<Ó,PÕ'PØ(-¨a©¯©¸¸Q¹À¹
Ô(CØ(-¨a©¯©¸¸Q¹À¹
Ô(CØ.2ªñ	 -?ö
  #Ø"1˜CÜ!#§¢¨E°A©I¸Ñ,=Ó!>˜BÜ(1°$°q±'Ö(:¡ Ü#%§8¢8¨B§?£?Ø$)¨!¡H§O¡O°D¸±G¸A±JÔ$?Ø$)¨!¡H§O¡O°D¸±G¸A±JÖ$?ñ );ó !#ò  #ñ- #ðB ˜Q—xØÜ˜U“|�Ø�J‰J×Ñ˜dÔ#Ø�J‰J×Ñ˜dÔ#Ø�J‰J×Ñ˜dÔ#Ø×!Ñ!×#Ò#Ø)?Ñ&��d˜D $ðØŸ9™9×,Ñ,×9Ñ9¸$ÄÇÁ×@[Ñ@[Ó\�DØŸ9™9×,Ñ,×9Ñ9¸$ÄÇÁ×@XÑ@XÓY�DØ—}‘}×*Ñ*¬e¯k©k×.GÑ.GÓGØ#Ÿy™y×0Ñ0×BÑBÀ4ÌÏÉ×IdÑIdÓe˜Ø#Ÿy™y×0Ñ0×BÑBÀ4ÌÏÉ×IaÑIaÓb˜ð —
‘
×!Ñ! 4¨¨t°TÐ":Ô;ØˆMØˆKØˆIØ×"Ñ"×$Ñ$ðØ$(§I¡I×$5Ñ$5×$DÑ$DÀTÓ$J�MØ"&×"6Ñ"6°t·}±}×7JÑ7JÈEÐSWÐXYÑSZÓ"[�KØ $× 4Ñ 4°T·]±]×5HÑ5HÓ I�Ið �K‰K×Ñ ¨{Ð;Ô<Ø'4°iÐ&@ˆD�O‰O˜FÒ#øôA %ó $ÜŸ
™
×(Ñ(»SÃ!ÃUÐ)KÔLÜŸš Ÿ›ûð$ûô" —{‘{ó Ø—z‘z !‘}¬¯©×(?Ñ(?Ó?Øõ @ûðûô !ó Ùðûô �{‰{ó 	Ü�t—y‘yÐ"3×4Ñ4¸¿¹×9R×9RÜÜ�J‰J×Ò»FÄCÈÆJÐOÔPÜ�HŠH�Q�K‰Kûð		úsÇ   ‚7`7 ºH`7 É:`7 ÊA<]?Ì]?Ì/C/]?Ð"B]?Ò19]?Ó*`7 Ó=A9`7 Õ7D*_ Ú!:`7 ÛA4`' Ý.`7 Ý?
_Þ	A_ß
`7 ß_ß`7 ß`$ß-,`à`7 à`$à$`7 à'
`4à1`7 à3`4à4`7 à7cá6câAcãcc                 ór   • [        U R                  S5      (       a  U R                  R                  (       a  gg)z%Check if unknown metrics are ignored Úignore_unknownTF)r¬   r   rx  r»   s    r%   Úignore_unknown_metricsÚpmConfig.ignore_unknown_metrics“  r  r(   c                 ó  • SU;   ax  UR                  SS5      R                  SS5      nUR                  SS5      R                  SS	5      nUR                  S
S
5      R                  SS5      nUR                  SS5      nU$ )zFormat a metric text label z / ÚnanosecÚnsÚmicrosecÚusÚmillisecÚmsÚsecrÍ   ÚminÚhourÚhÚ/)rL   )r$   r   s     r%   Úformat_metric_labelÚpmConfig.format_metric_label™  sw   € ð �E‹>Ø—M‘M )¨TÓ2×:Ñ:¸:ÀtÓLˆEØ—M‘M *¨dÓ3×;Ñ;¸EÀ3ÓGˆEØ—M‘M %¨Ó/×7Ñ7¸ÀÓDˆEØ—M‘M %¨Ó-ˆEØˆr(   c                   ó$   • \ rS rSrSrS rS rSrg)ÚpmConfig.pmfg_items_to_indomi£  zBHelper to provide consistent interface with pmfg items and indoms c                 ó   • Xl         g)z"Initialize an instance with items N©Ú_items)r$   rñ   s     r%   r&   Ú%pmConfig.pmfg_items_to_indom.__init__¥  s   € à�Kr(   c                 ó   • U R                   $ )zRetrieve the items rŒ  r»   s    r%   Ú__call__Ú%pmConfig.pmfg_items_to_indom.__call__©  s   € à—;‘;Ðr(   rŒ  N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   r�  Ú__static_attributes__r  r(   r%   Úpmfg_items_to_indomrŠ  £  s   † ÙQò	 õ	r(   r˜  c                 ó^   • [        [        R                  " U[        U5      -  5      5      U-  $ )z7Round an integer value up to the nearest upper integer )rŠ   ÚmathÚceilÚfloat)r$   r�   Úuppers      r%   Úinteger_roundupÚpmConfig.integer_roundup­  s$   € ä”4—9’9˜U¤U¨5£\Ñ1Ó2Ó3°eÑ;Ð;r(   c                 óº  • SnSn [        U R                  S5      (       aK  U R                  R                  (       a0  Sn[        U R                  R                  5      U R                  l        [        U R                  S5      (       aK  U R                  R                  (       a0  Sn[        U R                  R                  5      U R                  l        [        U R                  S5      (       aK  U R                  R
                  (       a0  Sn[        U R                  R
                  5      U R                  l        Sn[        U R                  S5      (       ap  U R                  R                  (       aU  Sn[        U R                  R                  5      U R                  l        U R                  R                  S:  a  [        U5      e[        U R                  S	5      (       ap  U R                  R                  (       aU  S	n[        U R                  R                  5      U R                  l        U R                  R                  S:  a  [        U5      e[        U R                  S
5      (       ap  U R                  R                  (       aU  S
n[        U R                  R                  5      U R                  l	        U R                  R                  S:  a  [        U5      e[        U R                  S5      (       ap  U R                  R                  (       aU  Sn[        U R                  R                  5      U R                  l
        U R                  R                  S:  a  [        U5      e[        U R                  S5      (       a�  U R                  R                  (       aq  SnU R                  R                  S:w  aT  [        U R                  R                  5      U R                  l        U R                  R                  S:  a  [        U5      egggg! [         aA    [        R                  R                  SU< SU< S35        [        R                  " S5         gf = f)z Validate common utility options zInteger expectedÚunknownÚrankÚlimit_filterÚlimit_filter_forcezNon-negative integer expectedr   r   Úwidth_forcer   Úprecision_forceÚrepeat_headerÚautozError while reading option ú: r¤   r   N)r¬   r   r¢  rŠ   r£  r¤  r   r‹   r¥  r   r¦  r§  r,   r®   r¯   r-   )r$   r^   Úattrs      r%   Úvalidate_common_optionsÚ pmConfig.validate_common_options±  sØ  € à ˆØˆð'	Ü�t—y‘y &×)Ñ)¨d¯i©i¯n¯nØ�Ü!$ T§Y¡Y§^¡^Ó!4�—	‘	”Ü�t—y‘y .×1Ñ1°d·i±i×6L×6LØ%�Ü),¨T¯Y©Y×-CÑ-CÓ)D�—	‘	Ô&Ü�t—y‘yÐ"6×7Ñ7¸D¿I¹I×<X×<XØ+�Ü/2°4·9±9×3OÑ3OÓ/P�—	‘	Ô,Ø1ˆCÜ�t—y‘y '×*Ñ*¨t¯y©y¯¯Ø�Ü"% d§i¡i§o¡oÓ"6�—	‘	”Ø—9‘9—?‘? QÓ&Ü$ S›/Ð)Ü�t—y‘y -×0Ñ0°T·Y±Y×5J×5JØ$�Ü(+¨D¯I©I×,AÑ,AÓ(B�—	‘	Ô%Ø—9‘9×(Ñ(¨1Ó,Ü$ S›/Ð)Ü�t—y‘y +×.Ñ.°4·9±9×3F×3FØ"�Ü&)¨$¯)©)×*=Ñ*=Ó&>�—	‘	Ô#Ø—9‘9×&Ñ&¨Ó*Ü$ S›/Ð)Ü�t—y‘yÐ"3×4Ñ4¸¿¹×9R×9RØ(�Ü,/°·	±	×0IÑ0IÓ,J�—	‘	Ô)Ø—9‘9×,Ñ,¨qÓ0Ü$ S›/Ð)Ü�t—y‘y /×2Ñ2°t·y±y×7N×7NØ&�Ø—9‘9×*Ñ*¨fÓ4Ü.1°$·)±)×2IÑ2IÓ.J�D—I‘IÔ+Ø—y‘y×.Ñ.°Ó2Ü(¨›oÐ-ð 3ð 5ð 8OÐ2øô ó 	Ü�J‰J×ÒÃtËSÐQÔRÜ�HŠH�QŽKð	ús   †PP ÐAQÑQr   c           
      ó;  ^ ^#• [        T R                  S5      (       d$  [        T R                  5      T R                  l        [        T R                  S5      (       a~  T R                  R
                  (       ac  T R                  R
                  R                  S5       H:  nUT R                  R                  ;  d  M  S/ /T R                  R                  U'   M<     T R                  R                  (       Ga  [        ST R                  R                  R                  S5      5       Hä  nUR                  S5      (       d  UR                  S5      (       a(   T R                  R                  R                  U5        MW  SnSn UR                  SS5      u  p‡T R                  R                  R'                  UR)                  5       5        U(       a:  [        R                  R!                  SU-  5        [        R$                  " S5        Mä  Mæ     [        T R                  S5      (       a  T R                  R8                  (       du  T R                  R                  m#[;        5       T R                  l        U#U 4S jn
[=        T#5       H0  nUT l         T R                  R                  RA                  Xº5        M2     T R                  R                  m#[;        5       T R                  l        T# H�  n [E        T RF                  5      nT#U   S   T l        T R                  R                  RA                  UT RH                  5        [E        T RF                  5      U:X  a  Mq  T#U   T R                  R                  U'   M�     T RJ                  (       d�  T RC                  5       (       dz  [        R                  R!                  S5        T R                  RL                  (       a*  [O        S5        [O        T R                  RL                  5        [        R$                  " S5        U(       + n[;        5       n[Q        T R                  R                  5       GHÊ  u  nn[S        SS5       Hƒ  n[E        T R                  R                  U   5      U::  d  M+  US:X  a*  T R                  R                  U   RU                  / 5        M[  T R                  R                  U   RU                  S5        M…     T R                  R                  U   S   (       dY  SnUR                  S5       H  nUUS   S-   -  nM     USS UR                  S5      S   -   T R                  R                  U   S'   T R                  R                  U   S   (       d|  T R                  RL                  (       aa  T RJ                  U   S   S   [        R,                  RV                  :w  a0  T R                  RL                  T R                  R                  U   S'   T RJ                  U   S   S   [        R,                  RV                  :X  a  / T R                  R                  U   S'   U(       a+  T RY                  [E        T RJ                  U   S   5      S5      n[        T R                  S5      (       aR  T R                  R                  U   S    (       d1  T R                  RZ                  T R                  R                  U   S '   OYT R                  R                  U   S    S!:X  a  ST R                  R                  U   S '   OST R                  R                  U   S '   [        T R                  S"5      (       a  T R                  R\                  S:X  dU  T R                  R                  U   S    S!:X  d5  [        T R                  S#5      (       a6  T R                  R^                  S$:X  a  ST R                  R                  U   S '   S% nS& nS' nT R`                  U   Rb                  Rd                  nU" U5      (       Ga5  [        T R                  S(5      (       aL  T R                  Rf                  (       a1  T R                  Rf                  T R                  R                  U   S)'   OÎ[        T R                  S*5      (       am  T R                  Rh                  (       aR  T R                  R                  U   S)   (       d1  T R                  Rh                  T R                  R                  U   S)'   OFT R                  R                  U   S)   (       d%  [#        U5      T R                  R                  U   S)'   U" U5      (       Ga5  [        T R                  S+5      (       aL  T R                  Rj                  (       a1  T R                  Rj                  T R                  R                  U   S)'   OÎ[        T R                  S,5      (       am  T R                  Rl                  (       aR  T R                  R                  U   S)   (       d1  T R                  Rl                  T R                  R                  U   S)'   OFT R                  R                  U   S)   (       d%  [#        U5      T R                  R                  U   S)'   U" U5      (       Ga5  [        T R                  S-5      (       aL  T R                  Rn                  (       a1  T R                  Rn                  T R                  R                  U   S)'   OÎ[        T R                  S.5      (       am  T R                  Rp                  (       aR  T R                  R                  U   S)   (       d1  T R                  Rp                  T R                  R                  U   S)'   OFT R                  R                  U   S)   (       d%  [#        U5      T R                  R                  U   S)'   T R                  R                  U   S)   (       d%  [#        U5      T R                  R                  U   S)'   [        T R                  S#5      (       a?  T R                  R^                  S$:X  a%  [#        U5      T R                  R                  U   S)'    T R                  R                  U   S)   nT R                  R                  Rs                  T R                  R                  U   S)   5      u  nnT R                  R                  U   S    S:X  a  T R`                  U   Rb                  R\                  [        R,                  Rt                  :w  a@  T R`                  U   Rv                  [        R,                  Rx                  :X  a  SU;  a  US/-  nT R{                  U5      nUUU4T R                  R                  U   S)'   [        R,                  R|                  n[#        W5      [#        T R`                  U   Rb                  Rd                  5      :X  a#  T R`                  U   Rb                  R\                  nT R                  R                  U   S    S:X  aY  T R`                  U   Rb                  Rv                  [        R,                  Rx                  :X  a  [        R,                  R|                  nT R`                  U   Rb                  R\                  [        R,                  Rt                  :X  a#  T R`                  U   Rb                  R\                  nT R                  R                  U   S1   (       ag   [        T R                  R                  U   S1   5      T R                  R                  U   S1'   T R                  R                  U   S1   S:  a  [4        eOh[        T R                  S35      (       a1  T R                  R€                  T R                  R                  U   S1'   OST R                  R                  U   S1'   [        T R                  S45      (       aG  T R                  R‚                  b0  T R                  R‚                  T R                  R                  U   S1'   T R                  R                  U   S1   (       d?  [E        T R                  R                  U   S   5      T R                  R                  U   S1'   T R                  R                  U   S1   [E        [„        5      :  a)  [E        [„        5      T R                  R                  U   S1'   T R                  R                  U   S5   (       aA   [        T R                  R                  U   S5   5      T R                  R                  U   S6'   Oh[        T R                  S75      (       a1  T R                  R†                  T R                  R                  U   S6'   OS T R                  R                  U   S6'   [        T R                  S85      (       aG  T R                  Rˆ                  b0  T R                  Rˆ                  T R                  R                  U   S6'   ST R                  R                  U   S5'   T R                  R                  U   S9   (       aA   [        T R                  R                  U   S9   5      T R                  R                  U   S9'   OK[        T R                  S;5      (       a0  T R                  RŠ                  T R                  R                  U   S9'   [        T R                  S<5      (       aK  T R                  RŒ                  (       a0  T R                  RŒ                  T R                  R                  U   S9'   T R`                  U   Rb                  R\                  [        R,                  Rt                  :X  a  ST R                  R                  U   S9'    / n[�        SU5      nT R                  R                  U   S)   S   nU(       Gaa  T R                  R                  U   S   (       Ga?  Sn/ n[S        S[E        T RJ                  U   S   5      5       H~  n T R                  R�                  R“                  UUUT RJ                  U   S   U   5      n URU                  T RJ                  U   S   U   T RJ                  U   S   U   U 45        US-  nM€     US:”  ab  [—        U5       HS  n!T RJ                  U   S   U!	 T RJ                  U   S   U!	 T R™                  5       (       d  M@  T Rš                  U   S   U!	 MU     T R�                  U5      T R                  R                  U   S5'   OBT R                  R�                  RŸ                  UUUU5      T R                  R                  U   S5'   T R¡                  5       (       an   / T R¢                  U'   T R                  R                  U   S    H;  n"T R¢                  U   RU                  [¤        R¦                  " S=U"-   S>-   5      5        M=     GMÊ  GMÍ     [—        U5       H�  nT RF                  Xû   	 T R`                  Xû   	 T RJ                  Xû   	 T R«                  5       (       a  T R¬                  Xû   	 T R™                  5       (       a  T Rš                  Xû   	 T R                  R                  U	 M‘     AT R                  R                  (       dj  T RC                  5       (       d   [        R                  R!                  SB5        O[        R                  R!                  SC5        [        R$                  " S5        [        T R                  S5      (       a-  T R                  R
                  (       a  T R¯                  5         ggg! [        R                   ar  n[        R                  R!                  S	5        [        R                  R!                  S
U< S[#        U5      < S35        [        R$                  " S5         SnAGMâ  SnAff = f! [        R                   Ga  nUR*                  S   [        R,                  R.                  :w  a  UR1                  5       n SnAGN� T R                  R                  R3                  WR)                  5       UR)                  5       5         SnAU(       d  GM‘  [        R                  R!                  SU-  5        [        R$                  " S5        GMÌ  ! [        R                   a  n	U	R1                  5       n Sn	A	 SnAGNWSn	A	ff = fSnAf[4         a  nSn SnAGNtSnAf[6         a  nSn SnAGN‰SnAff = f! U(       a9  [        R                  R!                  SU-  5        [        R$                  " S5        f f = f! [        R                   Ga  nUR*                  S   [        R,                  R.                  :w  a  e Sn T R                  R                  R'                  U5        Ot! [        R                   a]  n	U	R*                  S   [        R,                  R.                  :w  a  e T RC                  5       (       a  UT R                  ;   a  Sn Sn	A	OSn	A	ff = fU(       d,  [        T#U   5      T R                  R                  U'    SnAGM+   SnAGM2  SnAff = f! [        R                   aS  n[        R                  R!                  SU< S[#        U5      < S35        [        R$                  " S5         SnAGM7  SnAff = f! [        R                   ak  n[        R                  R!                  [#        U5      < S0T R                  R                  U   S)   < S35        [        R$                  " S5         SnAGNùSnAff = f! [6         a<    [        R                  R!                  S2U-  5        [        R$                  " S5         GNf = f! [6         a<    [        R                  R!                  S2U-  5        [        R$                  " S5         G
Nlf = f! [6         a<    [        R                  R!                  S:U-  5        [        R$                  " S5         G	NŠf = f! [        R                   aI  nUR*                  S   [        R,                  R”                  :X  a  e URU                  U5         SnAGM¤  SnAff = f! [6         aJ  n[        R                  R!                  S?W"< S@U< S35        [        R$                  " S5         SnAGMê  SnAff = f! [6         a@    [        T R                  SA5      (       a#  T R                  R¨                  (       a  UXû'    GM:  e f = f)DzValidate the metricset Ú	leaf_onlyÚ	predicater|   rD   Nr{   r†  rF   z*Failed to load derived metric definitions zfrom file 'rE   r¤   r   rÚ   r   z'Failed to register derived metric:
%s.
z+Invalid syntax (expected metric=expression)zUnidentified errorc                 ó  >• U TR                   :w  aK  U TR                  R                  ;  a0  [        TTR                      5      TR                  R                  U '   gg[        TU    5      TR                  R                  U '   g)z'Helper to support non-leaf metricspecs N)r!   r   rÔ   r   )rå   rÔ   r$   s    €€r%   Úmetric_base_checkÚ4pmConfig.validate_metrics.<locals>.metric_base_check  sg   ø€ à˜TŸY™YÓ&Ø T§Y¡Y×%6Ñ%6Ó6Ü4<¸WÀTÇYÁYÑ=OÓ4P˜Ÿ	™	×)Ñ)¨&Ò1ð 7ô 19¸À¹Ó0I�D—I‘I×%Ñ% fÒ-r(   FTrM  rN  rO  zNo matching instances found.
z
Requested global instances:é   éþÿÿÿrn   iè  r€   rœ   r   r   ÚoutputÚarchivec                 óf   • U R                   S:X  a!  U R                  S:X  a  U R                  S:X  a  gg)zTest count dimension r   r   TF)ÚdimCountÚdimSpaceÚdimTime©r   s    r%   Úis_countÚ+pmConfig.validate_metrics.<locals>.is_countv  ó,   € à—=‘= AÓ%Ø—=‘= AÓ%Ø—<‘< 1Ó$ØØr(   c                 óf   • U R                   S:X  a!  U R                  S:X  a  U R                  S:X  a  gg)zTest space dimension r   r   TF)r¹  r¸  rº  r»  s    r%   Úis_spaceÚ+pmConfig.validate_metrics.<locals>.is_space~  r¾  r(   c                 óf   • U R                   S:X  a!  U R                  S:X  a  U R                  S:X  a  gg)zTest time dimension r   r   TF)rº  r¸  r¹  r»  s    r%   Úis_timeÚ*pmConfig.validate_metrics.<locals>.is_time†  s,   € à—<‘< 1Ó$Ø—=‘= AÓ%Ø—=‘= AÓ%ØØr(   Úcount_scale_forcer�   Úcount_scaleÚspace_scale_forceÚspace_scaleÚtime_scale_forceÚ
time_scalez / sr©  é   z"Non-negative integer expected: %s
r   r¥  é   é   r   r¦  é   zInteger expected: %s
r£  r¤  rI  rJ  zInvalid regex 'rK  rL  zNo compatible metrics found.
zNot one known metric found.
)Xr¬   r   r   r"   rÔ   r¯  rˆ   rz   ÚfilterrS   rì   ÚpmLoadDerivedConfigr   rZ  r,   r®   r¯   r�   r-   rP  Ústripr\   rµ   ÚPM_ERR_NAMEr°   ÚpmRegisterDerivedr‹   r6   r®  r   rÂ   r!   ÚpmTraversePMNSry  rÈ   r   ru  r   r   Úprintr]  rÓ   ra   r  rž  r€   r   rµ  r   rR  ÚunitsrÅ  rÆ  rÇ  rÈ  rÉ  rÊ  ÚpmParseUnitsStrrY  ÚsemÚPM_SEM_COUNTERr‡  rX  rŠ   r   r¥  ÚTRUNCr   r¦  r£  r¤  ÚmaxÚpmfgÚextend_itemÚPM_ERR_CONVÚreversedr  r   r˜  Úextend_indomr)  r    r_  r`  rL  rÿ   r   Úvalidate_predicate)$r$   Ú
curr_instsÚ	max_instsr¯  rz   r±   r^   ÚexprrŒ   Úerror2r±  rå   ÚignoreÚlÚdynamic_instsÚincompat_metricsr;  rÖ   ræ   r¼  rÀ  rÃ  r   r   ÚpmunitÚmultÚmtyperñ   ÚscaleÚmitemsÚvanishedÚjÚitemr  rk  rÔ   s$   `                                  @r%   Úvalidate_metricsÚpmConfig.validate_metricsÞ  s¬  ù€ ô �t—y‘y +×.Ñ.Ü (¨×);Ñ);Ó <ˆD�I‰IÔä�4—9‘9˜k×*Ñ*¨t¯y©y×/B×/BØ!ŸY™Y×0Ñ0×6Ñ6°sÖ;�	Ø D§I¡I×$5Ñ$5Õ5Ø46¸°8�D—I‘I×%Ñ% iÓ0ñ <ð �9‰9××ÐÜ! $¨¯	©	×(9Ñ(9×(?Ñ(?ÀÓ(DÖE�Ø×%Ñ% c×*Ñ*¨g×.@Ñ.@À×.EÑ.Eð$ØŸ	™	×)Ñ)×=Ñ=¸gÖFð �CØ�Dð(Ø%,§]¡]°3¸Ó%:™
˜ØŸ	™	×)Ñ)×6Ñ6°t·z±z³|ÔDö ÜŸJ™J×,Ñ,Ð-XÐ[^Ñ-^Ô_ÜŸHšH QžKñ ñ9 Fô@ �t—y‘y +×.Ñ.°d·i±i×6I×6Ià—i‘i×'Ñ'ˆGÜ +£ˆD�I‰IÔöJô ˜wž-�Ø"�”	ðNØ—I‘I×%Ñ%×4Ñ4°VÖOñ (ð& —)‘)×#Ñ#ˆÜ'›Mˆ�	‰	ÔãˆFðÜ˜Ÿ
™
“O�Ø# F™O¨AÑ.�”	Ø—	‘	×!Ñ!×0Ñ0°¸×9JÑ9JÔKÜ�t—z‘z“? aÓ'áà07¸±�D—I‘I×%Ñ% fÓ-ñ ð �z�z $×"=Ñ"=×"?Ñ"?Ü�J‰J×ÑÐ=Ô>à�y‰y×"×"ÜÐ5Ô6Ü�d—i‘i×)Ñ)Ô*Ü�HŠH�QŒKð &œˆô '›=ÐÜ" 4§9¡9×#4Ñ#4×5‰IˆAˆvä˜q !ž�Ü�t—y‘y×(Ñ(¨Ñ0Ó1°UÕ:Ø “zØŸ	™	×)Ñ)¨&Ñ1×8Ñ8¸Ö<àŸ	™	×)Ñ)¨&Ñ1×8Ñ8¸Ö>ñ %ð —9‘9×$Ñ$ VÑ,¨Q×/à�ØŸ™ cÖ*�AØ˜A˜a™D 3™JÑ&’Dñ +à/3°C°R¨y¸6¿<¹<ÈÓ;LÈRÑ;PÑ/P�—	‘	×!Ñ! &Ñ)¨!Ñ,ð —9‘9×$Ñ$ VÑ,¨Q×/°D·I±I×4G×4GØ—:‘:˜a‘= Ñ# AÑ&¬%¯+©+×*@Ñ*@Ó@Ø37·9±9×3FÑ3F�D—I‘I×%Ñ% fÑ-¨aÑ0Ø�z‰z˜!‰}˜QÑ Ñ"¤e§k¡k×&<Ñ&<Ó<Ø/1�—	‘	×!Ñ! &Ñ)¨!Ñ,æØ ×0Ñ0´°T·Z±ZÀ±]À1Ñ5EÓ1FÈÓM�	ô �t—y‘y -×0Ñ0¸¿¹×9JÑ9JÈ6Ñ9RÐST×9UØ/3¯y©y×/DÑ/D�—	‘	×!Ñ! &Ñ)¨!Ò,Ø—‘×"Ñ" 6Ñ*¨1Ñ-°Ó6Ø/0�—	‘	×!Ñ! &Ñ)¨!Ò,à/0�—	‘	×!Ñ! &Ñ)¨!Ñ,ô ˜Ÿ	™	 6×*Ñ*¨t¯y©y¯~©~ÀÓ/BØ�y‰y× Ñ  Ñ(¨Ñ+¨uÓ4Ü˜Ÿ	™	 8×,Ñ,°·±×1AÑ1AÀYÓ1NØ/0�—	‘	×!Ñ! &Ñ)¨!Ñ,òòòð —:‘:˜a‘=×)Ñ)×/Ñ/ˆDÙ˜�~Š~Ü˜4Ÿ9™9Ð&9×:Ñ:¸t¿y¹y×?Z×?ZØ37·9±9×3NÑ3N�D—I‘I×%Ñ% fÑ-¨aÒ0Ü˜TŸY™Y¨×6Ñ6¸4¿9¹9×;P×;PØ—y‘y×(Ñ(¨Ñ0°×3Ø37·9±9×3HÑ3H�D—I‘I×%Ñ% fÑ-¨aÒ0ØŸ™×*Ñ*¨6Ñ2°1×5Ü36°t³9�D—I‘I×%Ñ% fÑ-¨aÑ0Ù˜�~Š~Ü˜4Ÿ9™9Ð&9×:Ñ:¸t¿y¹y×?Z×?ZØ37·9±9×3NÑ3N�D—I‘I×%Ñ% fÑ-¨aÒ0Ü˜TŸY™Y¨×6Ñ6¸4¿9¹9×;P×;PØ—y‘y×(Ñ(¨Ñ0°×3Ø37·9±9×3HÑ3H�D—I‘I×%Ñ% fÑ-¨aÒ0ØŸ™×*Ñ*¨6Ñ2°1×5Ü36°t³9�D—I‘I×%Ñ% fÑ-¨aÑ0Ù�t�}Š}Ü˜4Ÿ9™9Ð&8×9Ñ9¸d¿i¹i×>X×>XØ37·9±9×3MÑ3M�D—I‘I×%Ñ% fÑ-¨aÒ0Ü˜TŸY™Y¨×5Ñ5¸$¿)¹)×:N×:NØ—y‘y×(Ñ(¨Ñ0°×3Ø37·9±9×3GÑ3G�D—I‘I×%Ñ% fÑ-¨aÒ0ØŸ™×*Ñ*¨6Ñ2°1×5Ü36°t³9�D—I‘I×%Ñ% fÑ-¨aÑ0Ø—9‘9×$Ñ$ VÑ,¨Q×/Ü/2°4«y�—	‘	×!Ñ! &Ñ)¨!Ñ,ô �t—y‘y (×+Ñ+°·	±	×0@Ñ0@ÀIÓ0MÜ/2°4«y�—	‘	×!Ñ! &Ñ)¨!Ñ,ðØŸ	™	×)Ñ)¨&Ñ1°!Ñ4�Ø!%§¡×!2Ñ!2×!BÑ!BÀ4Ç9Á9×CTÑCTÐU[ÑC\Ð]^ÑC_Ó!`‘�˜Ø—9‘9×$Ñ$ VÑ,¨QÑ/°1Ó4Ø—:‘:˜a‘=×)Ñ)×.Ñ.´%·+±+×2LÑ2LÓLØ—:‘:˜a‘=×$Ñ$¬¯©×(BÑ(BÓBØ˜eÓ#Ø˜V‘O�EØ×0Ñ0°Ó7�Ø05°v¸tÐ/D�—	‘	×!Ñ! &Ñ)¨!Ñ,ô —K‘K×.Ñ.ˆEä�6‹{œc $§*¡*¨Q¡-×"8Ñ"8×">Ñ">Ó?Ó?ØŸ
™
 1™×.Ñ.×3Ñ3�à�y‰y× Ñ  Ñ(¨Ñ+¨qÓ0Ø�z‰z˜!‰}×%Ñ%×)Ñ)¬U¯[©[×-GÑ-GÓGÜŸ™×2Ñ2�à�z‰z˜!‰}×%Ñ%×*Ñ*¬e¯k©k×.HÑ.HÓHØŸ
™
 1™×.Ñ.×3Ñ3�ð �y‰y× Ñ  Ñ(¨×+ð Ü36°t·y±y×7HÑ7HÈÑ7PÐQRÑ7SÓ3T�D—I‘I×%Ñ% fÑ-¨aÑ0Ø—y‘y×(Ñ(¨Ñ0°Ñ3°aÓ7Ü(Ð(ð 8ô
 ˜Ÿ™ G×,Ñ,Ø/3¯y©y¯©�—	‘	×!Ñ! &Ñ)¨!Ò,à/0�—	‘	×!Ñ! &Ñ)¨!Ñ,Ü�t—y‘y -×0Ñ0°T·Y±Y×5JÑ5JÑ5VØ/3¯y©y×/DÑ/D�—	‘	×!Ñ! &Ñ)¨!Ñ,Ø—9‘9×$Ñ$ VÑ,¨Q×/Ü/2°4·9±9×3DÑ3DÀVÑ3LÈQÑ3OÓ/P�—	‘	×!Ñ! &Ñ)¨!Ñ,Ø�y‰y× Ñ  Ñ(¨Ñ+¬c´%«jÓ8Ü/2´5«z�—	‘	×!Ñ! &Ñ)¨!Ñ,ð �y‰y× Ñ  Ñ(¨×+ð Ü36°t·y±y×7HÑ7HÈÑ7PÐQRÑ7SÓ3T�D—I‘I×%Ñ% fÑ-¨aÒ0ô ˜Ÿ™ K×0Ñ0Ø/3¯y©y×/BÑ/B�—	‘	×!Ñ! &Ñ)¨!Ò,à/0�—	‘	×!Ñ! &Ñ)¨!Ñ,Ü�t—y‘yÐ"3×4Ñ4¸¿¹×9RÑ9RÑ9^Ø/3¯y©y×/HÑ/H�—	‘	×!Ñ! &Ñ)¨!Ñ,Ø+/ˆD�I‰I×Ñ˜fÑ% aÑ(ð �y‰y× Ñ  Ñ(¨×+ð Ü36°t·y±y×7HÑ7HÈÑ7PÐQRÑ7SÓ3T�D—I‘I×%Ñ% fÑ-¨aÒ0ô ˜Ÿ™ N×3Ñ3Ø/3¯y©y×/EÑ/E�—	‘	×!Ñ! &Ñ)¨!Ñ,Ü�t—y‘yÐ"6×7Ñ7¸D¿I¹I×<X×<XØ/3¯y©y×/KÑ/K�—	‘	×!Ñ! &Ñ)¨!Ñ,Ø�z‰z˜!‰}×%Ñ%×*Ñ*¬e¯k©k×.HÑ.HÓHØ/3�—	‘	×!Ñ! &Ñ)¨!Ñ,ð)Ø�Ü  9Ó-�	ØŸ	™	×)Ñ)¨&Ñ1°!Ñ4°QÑ7�ß $§)¡)×"3Ñ"3°FÑ";¸A×">Ð">Ø�FØ!�HÜ" 1¤c¨$¯*©*°Q©-¸Ñ*:Ó&;Ö<˜ð/Ø#'§9¡9§>¡>×#=Ñ#=¸fÀeÈUÐTX×T^ÑT^Ð_`ÑTaÐbcÑTdÐefÑTgÓ#h˜DØ!ŸL™L¨$¯*©*°Q©-¸Ñ*:¸1Ñ*=¸t¿z¹zÈ!¹}ÈQÑ?OÐPQÑ?RÐTXÐ)YÔZØ" a™KšFñ	 =ð  “zÜ!)¨(Ö!3˜AØ $§
¡
¨1¡¨aÑ 0°Ð 3Ø $§
¡
¨1¡¨aÑ 0°Ð 3Ø#×2Ñ2×4Ó4Ø$(§K¡K°¡N°1Ñ$5°aÒ$8ñ	 "4ð
 48×3KÑ3KÈEÓ3R�D—I‘I×%Ñ% fÑ-¨aÒ0ð Ÿ	™	Ÿ™×3Ñ3°F¸EÀ5È)ÓTð —I‘I×%Ñ% fÑ-¨aÑ0ð ×)Ñ)×+Ñ+ð$Ø13˜Ÿ™ vÑ.Ø!%§¡×!2Ñ!2°6Ñ!:¸1Ô!=˜AØ ŸN™N¨6Ñ2×9Ñ9¼"¿*º*ÀUÈQÁYÐQVÑEVÓ:WÖXô ">ò ,ñ_ 6ô~ Ð/Ö0ˆFØ—
‘
Ð+Ñ3Ð4Ø—
‘
Ð+Ñ3Ð4Ø—
‘
Ð+Ñ3Ð4Ø×!Ñ!×#Ñ#Ø—J‘JÐ/Ñ7Ð8Ø×"Ñ"×$Ñ$Ø—K‘KÐ 0Ñ 8Ð9Ø—	‘	×!Ñ! &Ò)ñ 1ð ð �y‰y× × Ø×.Ñ.×0Ñ0Ü—
‘
× Ñ Ð!AÕBä—
‘
× Ñ Ð!@ÔAÜ�HŠH�QŒKä�4—9‘9˜k×*Ñ*¨t¯y©y×/B×/BØ×#Ñ#Õ%ð 0CÐ*øô_
 !Ÿ;™;ó $ÜŸ
™
×(Ñ(Ð)UÔVÜŸ
™
×(Ò(ÃWÌcÐRWÎjÐ)YÔZÜŸš Ÿ›ûð$ûô !Ÿ;™;ô 7Ø Ÿ:™: a™=¬E¯K©K×,CÑ,CÓCØ"'§-¡-£/žCð7Ø $§	¡	× 1Ñ 1× CÑ CÀDÇJÁJÃLÐRV×R\ÑR\ÓR^Ô _Û (÷ ™3ÜŸJ™J×,Ñ,Ð-XÐ[^Ñ-^Ô_ÜŸHšH QŸKøô $)§;¡;ó 7Ø&,§n¡nÓ&6§¢ûð7þä%ó LØKžûÜ$ó 3Ø2žûð3ûö ÜŸJ™J×,Ñ,Ð-XÐ[^Ñ-^Ô_ÜŸHšH Q�Kð ûô, —{‘{ô NØ—z‘z !‘}¬¯©×(?Ñ(?Ó?Øà"�Fð*ØŸ	™	×)Ñ)×6Ñ6°vÕ>øÜ Ÿ;™;ó *Ø!Ÿ;™; q™>¬U¯[©[×-DÑ-DÓDØ!Ø×6Ñ6×8Ñ8¸VÀt×GYÑGYÓ=YØ%)˜Fÿøð	*úö
 "Ü4<¸WÀV¹_Ó4M˜Ÿ	™	×)Ñ)¨&×1Ð1ö "ûðNûô8 —;‘;ó Ü—
‘
× Ò ÃÌÈEÎ
Ð!SÔTÜ—’˜—“ûðûôD —;‘;ó Ü—
‘
× Ñ ´°E¶
¸D¿I¹I×<MÑ<MÈfÑ<UÐVWÔ<XÐ!YÔZÜ—’˜—’ûðûô. !ó  Ü—J‘J×$Ñ$Ð%JÈVÑ%SÔTÜ—H’H˜Q—Kð ûô& !ó  Ü—J‘J×$Ñ$Ð%JÈVÑ%SÔTÜ—H’H˜Q—Kð ûô !ó  Ü—J‘J×$Ñ$Ð%=ÀÑ%FÔGÜ—H’H˜Q—Kð ûô.  %Ÿ{™{ó /Ø$Ÿz™z¨!™}´·±×0GÑ0GÓGØ %Ø$ŸO™O¨A×.Ó.ûð/ûô* %ó $ÜŸ
™
×(Ò(ËË5Ð)QÔRÜŸš Ÿ›ûð$ûô ó Ü˜4Ÿ9™9Ð&7×8Ñ8¸T¿Y¹Y×=V×=Và/0Ð$Õ,àðúsD  Å%A^ÆAA`Ê%AfË.A+Aj?ÍAj?ñ=D-Al)üA%An+ÁD%?Ao4ÁI-?Ap=ÁN:BAt=ÁP>A:ArÁR8AAt=ÁTBAt=ÁV(A*As&Á^A`Á^A&A`Á`A`Á`AeÁ`%;Ad(Áa AeÁa'AAc2Áb)AeÁc2Ad%ÁdAd ÁdAd(ÁdAeÁd Ad%Ád%Ad(Ád(AeÁd5Ad=Ád7AeÁd=AeÁe
AeÁeAeÁeAeÁeAeÁeAAfÁfAj<Áf4.Aj7Ág#%Ah	ÁhAj7Áh	Ai:ÁhAAi5Ái0Aj7Ái5Ai:Ái:/Aj7Áj7Aj<Áj?Al&ÁkAAl!Ál!Al&Ál)An(Ál=A An#Án#An(Án+AAo1Áo0Ao1Áo4AAp:Áp9Ap:Áp=AArÁrArÁrAs#Ár=AsÁsAt=ÁsAs#Ás#At=Ás&
At:Ás0>At5Át.At=Át5At:Át:At=Át=AAvÁvAvc                 ó@  • U R                   R                  R                  5       (       Ga¥  U R                   R                  R                  5       c  SnO-[	        U R                   R                  R                  5       5      n[	        U R                   R                  R                  5       5      U-
  U R                   l        U R                   R                  R                  5       (       Ga!  U R                   R                  R                  5       U R                   l        [        SU R                   R                  5      U R                   l        [	        U R                   R                  5      U R                   R                  S-
  -  U R                   l
        U R                   R                  R                  [        U R                   R                  5      5        U R                   R                  R                  5       U R                   l
        GO,U R                   R                  R                  5       U R                   l
        U R                   R                  (       d%  [        R                  " S5      U R                   l
         [!        U R                   R                  [	        U R                   R                  5      -  S-   5      U R                   l        OfU R                   R                  R                  5       U R                   l        U R                   R                  R                  5       U R                   l
        [	        U R                   R                  5      S::  a6  [$        R&                  R)                  S5        [$        R*                  " S5        gg! ["         a     Nff = f)zFinalize util options Nr   r�   r   z$Interval must be greater than zero.
)r   rƒ   ÚpmGetOptionFinishOptargÚpmGetOptionOriginrœ  ÚpmGetOptionFinishÚruntimer…   r}   rÛ  r~   r†   r�   r‡   r   ÚtimevalrŠ   r6   r,   r®   r¯   r-   )r$   Úorigins     r%   Úfinalize_optionsÚpmConfig.finalize_optionsA  s?  € ð �9‰9�>‰>×1Ñ1×3Ò3Ø�y‰y�~‰~×/Ñ/Ó1Ñ9Ø‘ä˜tŸy™yŸ~™~×?Ñ?ÓAÓB�Ü % d§i¡i§n¡n×&FÑ&FÓ&HÓ IÈFÑ RˆD�I‰IÔØ�y‰y�~‰~×0Ñ0×2Ò2Ø$(§I¡I§N¡N×$EÑ$EÓ$G�—	‘	Ô!Ü$'¨¨4¯9©9×+<Ñ+<Ó$=�—	‘	Ô!Ü%*¨4¯9©9×+<Ñ+<Ó%=ÀÇÁ×ARÑARÐUVÑAVÑ%W�—	‘	Ô"Ø—	‘	—‘×2Ñ2´3°t·y±y×7IÑ7IÓ3JÔKØ%)§Y¡Y§^¡^×%GÑ%GÓ%I�—	‘	Ö"à%)§Y¡Y§^¡^×%GÑ%GÓ%I�—	‘	Ô"Ø—y‘y×)×)Ü).¯ª°qÓ)9�D—I‘IÔ&ðÜ(+¨D¯I©I×,=Ñ,=ÄÀdÇiÁi×FXÑFXÓ@YÑ,YÐ\]Ñ,]Ó(^�D—I‘IÕ%ð !%§	¡	§¡× AÑ AÓ CˆD�I‰IÔØ!%§¡§¡×!CÑ!CÓ!EˆD�I‰IÔä�—‘×#Ñ#Ó$¨Ó)Ü�J‰J×ÑÐDÔEÜ�HŠH�Q�Kð *øô !ó Ùðús   É>AN Î
NÎNc                 ó  • [        5       U R                  l        / U l        / U l        / U l        / U l        / U l        [        5       U l        U R                  R                  R                  5         SU R                  l        g)zClear metricset N)r   r   rÔ   r   r   r   r   r   r   rÜ  ÚclearÚpmfg_tsr»   s    r%   Úclear_metricsÚpmConfig.clear_metrics`  s\   € ä'›Mˆ�	‰	ÔØˆŒ
ØˆŒ
ØˆŒ
ØˆŒ
ØˆŒÜ%›-ˆŒØ�	‰	�‰×ÑÔØ ˆ�	‰	Õr(   c                 ó¬   • U R                  5         U R                  R                  R                  5       U R                  l        U R                  X5        g)zUpdate metricset N)r   r   rÜ  Úextend_timestamprÿ  rò  )r$   râ  rã  s      r%   Úupdate_metricsÚpmConfig.update_metricsl  s9   € à×ÑÔØ ŸI™IŸN™N×;Ñ;Ó=ˆ�	‰	ÔØ×Ñ˜jÕ4r(   c                 óf   • [        U R                  S5      (       a  U R                  R                  $ g)zIAction to take when namespace change occurs:
ignore=0, abort=1, update=2 Únames_changer   )r¬   r   r  r»   s    r%   Únames_change_actionÚpmConfig.names_change_actionr  s(   € ô �4—9‘9˜n×-Ñ-Ø—9‘9×)Ñ)Ð)Ør(   c                 ó   •  U R                   R                  R                  5       nU R                   R                  (       df  U R                   R                  5       R                  S5      nU R                   R                  R                  5       n[        U5      [        U5      :”  a  gU[        R                  R                  -  (       a  U R!                  5       nUS:X  a  gUS	:X  a  gg! [        R                   a‘  nUR
                  S   [        R                  R                  :X  a   SnAgUR
                  S   [        R                  R                  :X  a/  [        R                  " [        R                  R                  S5      eUeSnAff = f)
z1Sample using fetchgroup and handle special cases r   Nrn   z+
No metrics or instances to report present.z%sr´  r   éýÿÿÿr�   )r   rÜ  Úfetchr   rZ  r\   rµ   Ú
PM_ERR_EOLÚPM_ERR_TOOSMALLÚinterpolrÿ  Ústrftimerƒ   r÷  rœ  ÚPMCD_NAMES_CHANGEr  )r$   Ústater±   ÚsampleÚfinishÚactions         r%   r  ÚpmConfig.fetchy  s!  € ð	Ø—I‘I—N‘N×(Ñ(Ó*ˆEð �y‰y×!×!Ø—Y‘Y×&Ñ&Ó(×1Ñ1°$Ó7ˆFØ—Y‘Y—^‘^×5Ñ5Ó7ˆFÜ�V‹}œu V›}Ó,Øð ”5—;‘;×0Ñ0×0Ø×-Ñ-Ó/ˆFØ˜‹{ØØ˜1“Øð øô1 �{‰{ó 	Ø�z‰z˜!‰}¤§¡× 6Ñ 6Ó6ÜØ�z‰z˜!‰}¤§¡× ;Ñ ;Ó;Ü—k’k¤%§+¡+×"=Ñ"=Ø"PóRð RàˆKûð	ús   ‚$C( Ã(FÃ<+FÄ,AFÆFc                 óš  • U =R                   S-  sl         U R                  (       d7  [        U R                  R	                  5       R                  S5      5      U l        U R                  [        U R                  R                  5      U R                   -  -   nU[        R                  " 5       -
  nUS:”  a  [        R                  " U5        gg)zPause before next sampling r   z%s.%fr   N)	r   r   rœ  r   rÿ  r  r~   ÚtimeÚsleep)r$   Úwakeupr  s      r%   ÚpauseÚpmConfig.pause—  s‰   € à�Š�qÑ�à�}�}Ü! $§)¡)×"3Ñ"3Ó"5×">Ñ">¸wÓ"GÓHˆDŒMà—‘¤ t§y¡y×'9Ñ'9Ó!:¸T¿[¹[Ñ!HÑHˆàœŸš›Ñ$ˆà�1‹9Ü�JŠJ�uÕð r(   c                 ó  • U R                   U   (       d  gU R                  R                  U   S    H¡  nUR                  SS5      R                  SS5      R                  SS5      R	                  5       (       d  MJ  SU;   d  MR  UR                  5       S   R                  5       (       d  Mz  X0R                  UR                  5       S   5      :X  d  M¡    g   U R                   U    H   n[        R                  " XB5      (       d  M     g   g	)
z.Filter instance name against metric instances Tr   rF   rD   rG  r@  rH  r   F)
r    r   rÔ   rL   r^  rˆ   r\  rC  r_  ra  )r$   rå   rŒ   rk  ro  s        r%   Úfilter_instanceÚpmConfig.filter_instance¥  sÌ   € à�~‰~˜f×%Øà—‘×"Ñ" 6Ñ*¨1Ô-ˆAØ�y‰y˜˜bÓ!×)Ñ)¨#¨rÓ2×:Ñ:¸3ÀÓC×KÑK×MÓMØ˜$•; 4§:¡:£<°¡?×#:Ñ#:×#<Ó#<Ø×2Ñ2°4·:±:³<À±?ÓCÕCÙ#ñ	 .ð —.‘. Ô(ˆBÜ�xŠx˜×!Ó!Ùñ )ð r(   c                 óÜ   • U R                   R                  (       d  U$ [        U R                   R                  5      n[        U R                   R                  S:„  5      n[	        US US9SU $ )zRank instances r   c                 ó   • U S   $ )Nr�   r  )r�   s    r%   Ú<lambda>ÚpmConfig.rank.<locals>.<lambda>¼  s   € °5¸²8r(   )rÕ   ÚreverseN)r   r¢  ÚabsÚboolrb   )r$   r   r¢  Úrevss       r%   r¢  ÚpmConfig.rank¶  sS   € à�y‰y�~�~ØÐÜ�4—9‘9—>‘>Ó"ˆÜ�D—I‘I—N‘N QÑ&Ó'ˆÜ�iÑ%;ÀTÑJÈ5ÈDÐQÐQr(   c                 ó¬  • U R                   R                  R                  S5       GHª  nXR                   R                  ;  a8  [        R
                  R                  SU-  5        [        R                  " S5        [        U R                   R                  R                  5       5      R                  U5      nU R                  R                  U R                  U   R                  R                  5        U R                   U   S   S   ["        R$                  R&                  :X  a5  [        R
                  R                  S5        [        R                  " S5        U R                  U   R                  R(                  ["        R$                  R*                  :X  d  GMu  [        R
                  R                  S5        [        R                  " S5        GM­     g)z,Validate predicate filter reference metrics r|   z"Predicate metric %s filtered out.
r   r   z&Predicate metric must have instances.
z)Predicate metric values must be numeric.
N)r   r¯  rˆ   rÔ   r,   r®   r¯   r-   rÂ   r•   rÖ   r   ra   r   rR  r9  r   r   rµ   r  r   rY  )r$   r¯  r;  s      r%   rá  ÚpmConfig.validate_predicate¾  s*  € àŸ™×,Ñ,×2Ñ2°3×7ˆIØ§	¡	× 1Ñ 1Ó1Ü—
‘
× Ñ Ð!FÈÑ!RÔSÜ—’˜”ä�T—Y‘Y×&Ñ&×+Ñ+Ó-Ó.×4Ñ4°YÓ?ˆAØ×Ñ×#Ñ# D§J¡J¨q¡M×$:Ñ$:×$@Ñ$@ÔAà�z‰z˜!‰}˜QÑ Ñ"¤e§k¡k×&<Ñ&<Ó<Ü—
‘
× Ñ Ð!JÔKÜ—’˜”à�z‰z˜!‰}×%Ñ%×*Ñ*¬e¯k©k×.HÑ.HÖHÜ—
‘
× Ñ Ð!MÔNÜ—’˜—ò 8r(   c                 ó$   • U R                  U5      $ )z-Deprecated, use get_ranked_results() instead )Úget_ranked_results)r$   Ú
valid_onlys     r%   Úget_sorted_resultsÚpmConfig.get_sorted_resultsÑ  s   € à×&Ñ& zÓ2Ð2r(   c           
      óô  ^^^• [        5       n[        U R                  S5      (       aA  U R                  R                  (       a&  U R                  R                  R	                  S5      nOSnU R                  5       =(       a    U R                  5       (       + n[        U R                  R                  5       GH5  u  pV/ X&'    U R                  R                  U   S   " 5        Hí  u  pxn	 U[        R                  R                  :w  a	  U(       d  M.  U(       a6  U[        R                  R                  :w  a  U R                  Xh5      (       d  Mk  U	" 5       n
U R                  R                  U   S   (       aE  Xc;  a@  U R                  R                  U   S   nUS:”  a  X«:  a  MÁ  US:  a  U
[        U5      :”  a  MØ  X&   R                  XxU
45        Mï     U(       d  GM'  X&   (       a  GM3  X&	 GM8     U R!                  5       (       Ga‰  U Vs/ s H&  obU   (       d  M  U[#        [%        X&   6 5      S   4PM(     nnU R&                  U:w  GaE  U R(                  n[        5       U l        XÀl        U GH  nSnXm;   a_  XÖ   S   nXÖ   S   R+                  5       mX&   (       a  [#        [%        X&   6 5      S   O0 n[-        U4S	 jU 5       5      (       a  XÖ   S   nOn[#        U R                  R                  R+                  5       5      R/                  U5      nU R                  R0                  R3                  U R4                  U   5      nUc2  U R7                  U R8                  W   R:                  R<                  5      nXþ/U R(                  U'   GM      U(       d  U$ U(       Gaá  0 m[        U5       HY  u  nnU R?                  UU   5      UU'   U R@                  U   mTT;  a  / TT'   TT   RC                  UU4S
 jUU    5       5        M[     U GHo  nXc;   a™  U R                  R                  U   S   (       av  U R                  R                  U   S   nUS:”  a#  X&    Vs/ s H  nUS   U:¼  d  M  UPM     snX&'   O1US:  a+  X&    Vs/ s H  nUS   [        U5      ::  d  M  UPM     snX&'   M¢  [#        U R                  R                  R+                  5       5      R/                  U5      nU R8                  U   R:                  R<                  U R@                  ;  a  U R?                  X&   5      X&'   GM'  U R8                  U   R:                  R<                  nX&    Vs/ s H  nUS   TU   ;   d  M  UPM     snX&'   GMr     OT[        U R                  S5      (       a9  U R                  R>                  (       a  U H  nU R?                  X&   5      X&'   M     U R                  5       (       aQ  U R                  5       (       a<  U H6  nX&    Vs/ s H!  nU R                  UUS   5      (       d  M  UPM#     snX&'   M8     U$ ! [         a     GMi  f = f! [         a     GN‰f = fs  snf s  snf s  snf s  snf s  snf )z Get filtered and ranked results r¯  r|   r  rÌ  rÎ  r   Nr   c              3   ó,   >#   • U  H	  oT;   v •  M     g 7f)Nr  )r  rÃ   Ú
prev_instss     €r%   r  Ú.pmConfig.get_ranked_results.<locals>.<genexpr>  s   øé € ÐIºj°d zÖ1ºjùs   ƒc              3   óH   >#   • U  H  oS    TT   ;  d  M  US    v •  M     g7f)r   Nr  )r  ÚxÚpÚ
pred_instss     €€r%   r  r3    s)   øé € Ð$cÒ3E¨aÈ1ÉÐU_Ð`aÑUbÑIb£T Q q¦TÒ3Eùs   ƒ"–"r�   r¢  )"r   r¬   r   r¯  rˆ   r)  r-  r]  rÔ   r   rµ   r  r  r%  ra   r6   r  rÂ   Úzipr#   r   r•   ÚallrÖ   rì   rh  r   r<  r   rR  r9  r¢  r   r	  )r$   r-  ÚresultsÚ
predicatesÚearly_live_filterr;  rå   rÃ   rŒ   Úvalr�   r   r   Úprev_labelsrt  r$  râ  r¯  r5  Ú
inst_indexr6  r7  r2  s                       @@@r%   r,  ÚpmConfig.get_ranked_resultsÕ  sy  ú€ ä“-ˆÜ�4—9‘9˜k×*Ñ*¨t¯y©y×/B×/BØŸ™×,Ñ,×2Ñ2°3Ó7‰JàˆJØ ×2Ñ2Ó4×W¸T×=UÑ=UÓ=WÔ9WÐÜ" 4§9¡9×#4Ñ#4×5‰IˆAØ ˆG‰OðØ'+§y¡y×'8Ñ'8¸Ñ'@ÀÒ'CÖ'E‘O�D ðà¤5§;¡;×#9Ñ#9Ó9Æ$Ù$Þ,°¼¿¹×9OÑ9OÓ1OØ#×3Ñ3°F×AÑAÙ$Ù #£˜ØŸ9™9×,Ñ,¨VÑ4°Q×7Ø%Ó7Ø(,¯	©	×(9Ñ(9¸&Ñ(AÀ!Ñ(D Ø#(¨1£9°³Ù$,Ø%*¨Q£Y°5¼3¸u»:Ó3EÙ$,Ø™×.Ñ.°¸EÐ/BÖCñ! (F÷, ‰z '§/¢/Ø“Oñ5 6ð8 ×Ñ× Ò ÙLSÓgÊGÀ&Ð_eÕWfÓ=�fœd¤3¨©Ð#8Ó9¸!Ñ<Ó=ÉGˆEÐgØ×Ñ 5Ô(Ø"Ÿo™o�Ü"-£-�”Ø#(Ô Ü%�FØ $�IØÓ,Ø(3Ñ(;¸AÑ(>˜Ø%0Ñ%8¸Ñ%;×%@Ñ%@Ó%B˜
ØGNÇ¤T¬#¨w©Ð*?Ó%@ÀÒ%CÐ\^˜
ÜÔI¹jÓI×IÑIØ(3Ñ(;¸AÑ(>˜Iøä  §¡×!2Ñ!2×!7Ñ!7Ó!9Ó:×@Ñ@ÀÓH˜Ø(,¯	©	×(9Ñ(9×(HÑ(HÈÏÉÐTUÉÓ(W˜Ø Ñ(Ø$(×$8Ñ$8¸¿¹ÀA¹×9OÑ9O×9UÑ9UÓ$V˜	Ø/<Ð.H�D—O‘O FÔ+ñ &ö ØˆNçØˆJÜ )¨*Ö 5‘��9Ø%)§Y¡Y¨w°yÑ/AÓ%B�˜	Ñ"Ø×$Ñ$ QÑ'�Ø˜JÓ&Ø$&�J˜q‘MØ˜1‘×$Ñ$Õ$c°7¸9Ò3EÓ$cÖcñ !6ô "�ØÓ'ð —y‘y×(Ñ(¨Ñ0°×3Ø $§	¡	× 1Ñ 1°&Ñ 9¸!Ñ <˜Ø  1›9Ø:Aº/Ó.[º/°QÈQÈqÉTÐUZÉ]¯q¹/Ñ.[˜GšOØ" Q›YØ:Aº/Ó.`º/°QÈQÈqÉTÔUXÐY^ÓU_ÑM_¯q¹/Ñ.`˜G™OÙÜ˜Ÿ™×*Ñ*×/Ñ/Ó1Ó2×8Ñ8¸Ó@�Ø—:‘:˜a‘=×)Ñ)×/Ñ/°t×7GÑ7GÓGØ&*§i¡i°±Ó&@�G‘OÚØ!ŸZ™Z¨™]×3Ñ3×9Ñ9�
Ø.5ªoÓ"`ªo¨ÀÀ1ÁÈÐT^ÑI_ÑA_§1©oÑ"`�”ò# "ô& �t—y‘y &×)Ñ)¨d¯i©i¯n¯nÛ%�FØ&*§i¡i°±Ó&@�G“Oñ &ð ×!Ñ!×#Ñ#¨×(@Ñ(@×(BÑ(BÛ!�Ø.5ªoÓ"dªo¨À×AUÑAUÐV\Ð^_Ð`aÑ^b×Ac§1©oÑ"d�“ñ "ð ˆøôG %ó Ûðûäó Úðüò hùòN /\ùâ.`ùò #aùò #es£   Ã'YÃ*%X>ÄYÄ;X>ÅYÅAX>Æ"YÆ$X>Æ9YÆ;X>ÇYÈY!ÈY!ÑY&Ñ0Y&ÒY+Ò"Y+ÕY0Õ1Y0ØY5Ø-Y5Ø>
YÙYÙYÙYÙ
YÙY)r"   r   r   r#   r    r   r!   r   r   r   r   r   r   r   r   r   )F)NTT)3r’  r“  r”  r•  r–  r&   r9   r>   r<   ri   rŽ   r™   r²   r¼   rÄ   rÐ   r×   rÛ   rà   rû   rÿ   r  r
  r  r%  r)  r-  r4  r<  rC  ru  ry  r‡  Úobjectr˜  rž  r«  Ú
CURR_INSTSrò  rû  r   r  r  r  r  r  r¢  rá  r.  r,  r—  r  r(   r%   r	   r	   ,   s  † Ù'ò$òLò4ò%òNò-0ò^
Oòò4+ò
òò8.òDòJô4A9òFòòòôhò,òò2ð +/°bô 
òò_òBòô˜fô ò<ò+ðZ +5Àô a&òFò>
!ð )3¸aô 5òòò<òò"Ròô&3÷_r(   r	   )r–  r  r   Úcollectionsr   Úconfigparserr¦   ÚImportErrorr5   r  rš  rÀ   r,   rG   r_  Úpcpr   rÚ  ÚVERSIONrB  rA  r	   r  r(   r%   Ú<module>rH     se   ðñ* )å Ý #ðÛ'ó Û Û Û 
Û 
Û 	Û 	å ð 	€Ø
€Ø€
ôHˆvõ Høð# ó Ýðús   �A Á
AÁA