Tryag File Manager
Home
-
Turbo Force
Current Path :
/
proc
/
self
/
root
/
usr
/
lib
/
yum-plugins
/
Upload File :
New :
File
Dir
//proc/self/root/usr/lib/yum-plugins/security.pyo
mò Óó Oc�����������@���sx��d��k��Z��d��k�Z�d�k�l�Z�d�k�l�Z�d��k�Z�d�k��l�Z�d�k�Td��k �Z �d�Z�e�f�Z�d�„��Z �d�e��i�i�f�d�„��ƒ��YZ�d �„��Z�d �„��Z�d�„��Z�d�„��Z�d �„��Z�d�„��Z�d��d�„�Z�d�„��Z�d�„��Z�d�f��d�„��ƒ��YZ�d�e�f�d�„��ƒ��YZ�d�„��Z�d�„��Z�d�„��Z�d�f��d�„��ƒ��YZ �d�„��Z!�d�„��Z"�d�„��Z#�d�„��Z$�d�„��Z%�e&�d �j�o �d!�GHn�d��S("���N(���s���TYPE_INTERACTIVE(���s���UpdateMetadata(���s ���logginglevels(���t���*s���2.5c���������C���s=���t��i�i�|��d�|��d�|��d�f�|�d�|�d�|�d�f�ƒ�S(���s-��� Compare two "std." tuples, (n, a, e, v, r). i���i���i���N(���t���rpmUtilst ���miscutilst ���compareEVRt���tup1t���tup2(���R���R���(����(����t ���/usr/lib/yum-plugins/security.pyt���_rpm_tup_vercmp5���s�����!t���CliErrorc�����������B���s���t��Z�d��Z�d�d�„�Z�RS(���s3��� Command line interface related Exception. t����c���������C���s ���t��i�i�i�|��ƒ�|�|��_�d��S(���N(���t���yumt���Errorst���YumBaseErrort���__init__t���selft���args(���R���R���(����(����R���R ���@���s����(���t���__name__t ���__module__t���__doc__R ���(����(����(����R���R���:���s����c���������C���s_���t��ƒ��}�xO�|��D]G�}�|�i�p�q�n�y�|�i�|�ƒ�Wq�t�i�i�j �o �q�q�Xq�W|�S(���s3��� Generate the info. from the updateinfo.xml files. N( ���t���UpdateMetadatat���md_infot���repost���repot���enabledt���addR ���R���t���RepoMDError(���R���R���R���(����(����R���t���ysp_gen_metadataD���s����� � c���������C���s���|��d�j�o�g��Sn�|��S(���sj��� Sometimes refs == None, if so return the empty list here. So we don't have to check everywhere. N(���t���refst���None(���R���(����(����R���t���ysp__safe_refsQ���s����� c���������C���sI���xB�|��D]:�}�t�i�|�|�ƒ�o�|�Sn�|�d�|�j�o�|�Sq�q�Wd��S(���Nt ���update_id(���t���sec_cmdst���it���fnmatcht���pkgnamet���noticeR���(���R���R"���R#���R ���(����(����R���t���_match_sec_cmdX���s�����c���������C���sa���xZ�t��|�ƒ�D]L�}�|�d�|�j�o�q �n�|�d�|�j�o�q �n�t�|��|�|�d�<|�Sq �Wd�S(���s#��� Check if the given ID is a match. t���typet���idN(���R���R���t���reft���ref_typet���ref_idst���Truet���used_mapR���(���R+���R���R(���R)���R'���(����(����R���t���_has_id`���s����� �c���������C���s-��t��|��i�|�|�ƒ�}�|�o�t�|�d�|�<t�Snø�|��i�o.�|�d�|��i�j�o�t�|�d�|�d�<t�SnÀ�|��i �o%�t �|�|�d�d�|��i �ƒ�o�t�Sn‘�|��i�o%�t �|�|�d�d�|��i�ƒ�o�t�Snb�|��i�o�|�d�d�j�o�t�Sq)n;�|��i�p%�|��i �p�|��i�p�|��i�p�|��i�p�t�Sn�t �S( ���s;��� Do the package filtering for should_show and should_keep. t���cmdR���R&���t ���referencest���cvet���bugzillaR%���t���securityN(���R$���t���optsR���R"���R#���t���rcmdR*���R+���t���advisoryR/���R,���t���bzR1���t���False(���R2���R"���R#���R+���R3���(����(����R���t���ysp_should_filter_pkgk���s$�����'' 2c���������C���se���|��d�j�o�|�d�d�j�o�|�Sq*�n�x4�t�|�d�ƒ�D]"�}�|�d�|��j�o�q;�n�|�Sq;�Wd��S(���NR1���R%���R.���(���t���rnamet���mdR���R'���(���R8���R9���R'���(����(����R���t���ysp_has_info_md���s���� �c���������c���sw���|�d�}�xf�t�|�i�|�ƒ�ƒ�D]O�\�}�}�|�o�t�|�|�ƒ�o�q �n�t�|��|�|�|�ƒ�o�|�|�f�Vq �q �Wd�S(���s3��� Do we want to show this package in list-security. i����N(���t���pkgtupt���namet���reversedR���t���get_applicable_noticesR#���R8���R:���R7���R2���R+���(���R2���R;���R���R+���R8���R<���R#���(����(����R���t���ysp_should_show_pkgtupŠ���s����� �c���������C���s¶���h��d�h��<d�h��<d�h��<d�h��<}�x�|��i�D]�}�t�|�d�|�<q4�Wx�|��i�D]�}�t�|�d�|�<qV�Wx�|��i�D]�}�t�|�d�|�<qx�Wx�|��i�D]�}�t�|�d�|�<qš�W|�S(���NR0���R/���R&���R-���(���R+���R2���R���R ���R6���R4���R5���R/���(���R2���R+���R ���(����(����R���t���ysp_gen_used_map”���s����* � � � �c���������C���sÜ���x3�|��d�D]'�}�|��d�|�p�|�d�|�ƒ�q�q�Wx3�|��d�D]'�}�|��d�|�p�|�d�|�ƒ�qA�qA�Wx3�|��d�D]'�}�|��d�|�p�|�d�|�ƒ�qw�qw�Wx3�|��d�D]'�}�|��d�|�p�|�d�|�ƒ�q�q�Wd��S( ���NR-���s2���Argument "%s" not found applicable for this systemR&���s2���Advisory "%s" not found applicable for this systemR0���s,���BZ "%s" not found applicable for this systemR/���s-���CVE "%s" not found applicable for this system(���R+���R ���t���msg(���R+���RA���R ���(����(����R���t���ysp_chk_used_map ���s ��������t���SecurityListCommandc�����������B���sJ���t��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d��d�„�Z�d�„��Z�d�„��Z �RS(���Nc���������C���s ���d�d�g�S(���Ns ���list-securitys���list-sec(����(���R���(����(����R���t���getNames¯���s����c���������C���s���d�S(���Ns*���[security|bugzilla|cve] [PACKAGE-wildcard](����(���R���(����(����R���t���getUsage²���s����c���������C���s���d�S(���NsG���Returns security data for the packages listed, that affects your system(����(���R���(����(����R���t ���getSummaryµ���s����c���������C���s���d��S(���N(����(���R���t���baset���basecmdt���extcmds(����(����R���t���doCheck¸���s����c���������C���s–���|�ol�t�|�|�ƒ�o\�xx�t�|�d�ƒ�D]C�}�|�d�|�j�o�q(�n�|�d�t�|�d�ƒ�|�d�|�f�ƒ�q(�Wn �|�d�|�d�|�d�|�f�ƒ�d��S(���NR.���R%���s��� %s %-8s %sR&���s ���%s %-8s %sR���(���t���dispR:���R#���R���R'���RA���t���strt���pkg(���R���RA���RM���R#���RK���R'���(����(����R���t���show_pkg»���s�����-c���������C���s���d��S(���N(����(���R���(����(����R���t ���show_pkg_exitÆ���s����c������ ������so��|�i�|��_�t�|��i�i�ƒ��ƒ�} �t�i�d�ƒ�‰��‡��d�†��}�|�i �i�\�}�}�d��} �d��}�t�|�ƒ�d�j�oû�|�i�d�ƒ�} �t�o�nº�| �d�j�o �d�} �n£�| �d�j�o �d�} �nŒ�| �d�j�o �d�} �nu�| �d�j�o�nd�| �d �j�o �d �} �nM�| �d �j�o�n<�| �d�j�o �d�} �n%�| �d�j�o�n�| �g�|�}�d��} �| �}�| �o�| �d �j�o �d��}�qhn�|�|�_�t�|�ƒ�}�t�|�ƒ�}�x»�t�|�ƒ�D]�} �x¤�t�|�|�| �| �|�| �ƒ�D]†�\�}�}�h��}�|�\�|�d �<|�d�<|�d�<|�d�<|�d�<|�d�d�j�o�d�|�d�<n�d�|�d�|�d�<|��i�|�d�|�|�|�ƒ�q¹Wq–Wt �|�|�ƒ�|��i!�ƒ��d�|�d�g�f�S(���Ns���yum.verbose.mainc������������s���ˆ��i�t�i�|��ƒ�d��S(���N(���t���loggert���logt ���logginglevelst���INFO_2t���x(���RT���(���RP���(����R���RA���Í���s����i���i����t ���bugzillasR0���t���bzsR5���t���secR1���t���cvesR/���t���nt���at���et���vt���rt���0R ���t���epochs���%s:s ���%(n)s-%(epoch)s%(v)s-%(r)s.%(a)ss��� done(#���RG���R���R���R���t���listEnabledR���t���loggingt ���getLoggerRP���RA���t���pluginst���cmdlineR2���R���t ���filt_typet ���show_typet���lenRI���t���popR6���R���R@���R+���t���_get_name2oldpkgtupt���name2tupt���sortedR"���R?���R;���R#���t���dRN���RB���RO���RH���(���R���RG���RH���RI���Rd���R#���R;���RA���RP���R���Re���R+���Rj���R"���Rf���Rl���R2���(����(���RP���R���t ���doCommandÉ���sh���� � �) ( ���R���R���RD���RE���RF���RJ���R���RN���RO���Rm���(����(����(����R���RC���®���s��� t���SecurityInfoCommandc�����������B���s,���t��Z�h��Z�d�„��Z�d��d�„�Z�d�„��Z�RS(���Nc���������C���s ���d�d�g�S(���Ns ���info-securitys���info-sec(����(���R���(����(����R���RD��� ��s����c���������C���sG���|�d�|��i�j�o�d��Sn�t�|��i�|�d�<|�i�ƒ��}�|�|�ƒ�d��S(���NR���(���R#���R���t���show_pkg_info_doneR*���t���__str__t���objRA���(���R���RA���RM���R#���RK���Rq���(����(����R���RN�����s ����c���������C���s ���h��|��_�d��S(���N(���R���Ro���(���R���(����(����R���RO�����s����(���R���R���Ro���RD���R���RN���RO���(����(����(����R���Rn�����s��� c���������C���s1���|��i�i�d�j�o�|��i�i�d�ƒ�t�‚�n�d�S(���sd��� Verify that the program is being run by the root user. @param base: a YumBase object. i����s,���You need to be root to perform this command.N(���RG���t���conft���uidRP���t���criticalR���(���RG���(����(����R���t���yumcommands_checkRootUID��s�����c���������C���so���|��i�ƒ��p^�x[�|��i�i�ƒ��D]F�}�|�i�d�j�o0�|�i�d�j�o �d�}�|��i�i �|�ƒ�t �‚�q�q�Wn�d��S(���Nt���falseR ���s �� You have enabled checking of packages via GPG keys. This is a good thing. However, you do not have any GPG public keys installed. You need to download the keys for packages you wish to install and install them. You can do that by running the command: rpm --import public.gpg.key Alternatively you can specify the url to the key you would like to use for a repository in the 'gpgkey' option in a repository section and yum will install it for you. For more information contact your distribution or package provider. (���RG���t���gpgKeyCheckR���R`���R���t���gpgcheckt���gpgkeyRA���RP���Rt���R���(���RG���R���RA���(����(����R���t���yumcommands_checkGPGKey!��s���� � c���������C���sz���t��d�„��|��i�i�ƒ��ƒ�}�h��}�xR�|�D]J�}�|�d�|�j�o%�t�|�|�d�|�ƒ�d�j�o�q(�n�|�|�|�d�<q(�W|�S(���Nc���������C���s���|��d�S(���Ni���(���RT���(���RT���(����(����R���t���<lambda>9��s����i����(���t���mapRG���t���upt���getUpdatesTuplest���oupdatesRj���R;���R���(���RG���R;���R���Rj���(����(����R���Ri���8��s�����/t���SecurityUpdateCommandc�����������B���s5���t��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�RS(���Nc���������C���s���d�g�S(���Ns���update-minimal(����(���R���(����(����R���RD���C��s����c���������C���s���d�S(���Ns���[PACKAGE-wildcard](����(���R���(����(����R���RE���F��s����c���������C���s���d�S(���Nsh���Works like update, but goes to the 'newest' package match which fixes a problem that affects your system(����(���R���(����(����R���RF���I��s����c���������C���s���t��|�ƒ�t�|�ƒ�d��S(���N(���Ru���RG���Rz���(���R���RG���RH���RI���(����(����R���RJ���L��s���� c���������C���s©��t��|�i�i�ƒ��ƒ�} �|�i�i�d�}�g��|�_�t �|�ƒ�} �|�i�p�|�i�p�|�i �p�|�i�} �t�d�„��|�i�i�ƒ��ƒ�}�xÞ�t�|�ƒ�D]Ð�}�| �i�|�ƒ�}�| �o�|�i�ƒ��n�x£�|�D]›�\�}�}�|�d�}�|�o�t�|�|�|�ƒ�o�q»�n�| �o�t�|�|�|�| �ƒ�o�q»�n�|�i�d�|�d�d�|�d�d�|�d�d�|�d �d �|�d�ƒ�Pq»�WqŠ�Wt �|�i!�ƒ�d�j�o$�d�t �|�i!�ƒ�}�d�|�g�f�Sn�d�d �g�f�Sd��S(���Ni����c���������C���s���|��d�S(���Ni���(���RT���(���RT���(����(����R���R{���a��s����R<���t���archi���R_���i���t���versioni���t���releasei���s%���%d packages marked for minimal Updates%���No Packages marked for minimal Update(#���R���RG���R���R`���R���Rc���Rd���R2���R���R@���R+���R1���R4���R5���R/���t���ndataR|���R}���R~���R���Rk���t ���oldpkgtupR>���t���datat���reverseR;���R#���R<���RI���R$���R7���t���updateRg���t���tsInfoRA���(���R���RG���RH���RI���R…���R���R;���RA���R#���R���R+���R†���R<���R„���R2���(����(����R���Rm���P��s2���� ( �� $ (���R���R���RD���RE���RF���RJ���Rm���(����(����(����R���R€���B��s ��� c���������C���sa��|��i�ƒ��}�|�p�d�Sn�|��i�t�ƒ��ƒ�|��i�t�ƒ��ƒ�|��i�t�ƒ��ƒ�g��|�i�_�g��|�i�_ �g��|�i�_ �t�|�i�_�d�„��}�d�„��}�d�„��}�d�„��}�|�i�d�d�d�d�|�d �d �d�t�d�d �ƒ|�i�d�d�d�d�d�d�|�d �d�d�g��d�d�ƒ|�i�d�d�d�d�|�d �d�d�g��d�d�d�d�ƒ|�i�d�d�d�d�|�d �d�d�g��d�d�d�d�ƒd�S(���sÞ��� Yum Plugin Config Hook: Setup the option parser with the '--advisory', '--bz', '--cve', and '--security' command line options. And the 'list-security', 'info-security', and 'update-minimal' commands. Nc���������C���s���t��|�i�_�d��S(���N(���R*���t���parsert���valuesR1���(���t���optt���keyt���valRŠ���(����(����R���t���osec‹��s����c���������C���s���|�i�i�i�|�ƒ�d��S(���N(���RŠ���R‹���R/���t���appendRŽ���(���RŒ���R���RŽ���RŠ���(����(����R���t���ocveŽ��s����c���������C���s���|�i�i�i�t�|�ƒ�ƒ�d��S(���N(���RŠ���R‹���R5���R���RL���RŽ���(���RŒ���R���RŽ���RŠ���(����(����R���t���obz��s����c���������C���s���|�i�i�i�|�ƒ�d��S(���N(���RŠ���R‹���R4���R���RŽ���(���RŒ���R���RŽ���RŠ���(����(����R���t���oadv’��s����s ���--securityt���actiont���callbackt���destR1���t���defaultt���helps"���Include security relevant packagess���--cveR%���t���stringR/���s,���Include packages needed to fix the given CVEs���--bzR5���t���ints+���Include packages needed to fix the given BZs ���--advisoryR4���s1���Include packages needed to fix the given advisory(���t���conduitt���getOptParserRŠ���t���registerCommandRC���Rn���R€���R‹���R4���R/���R5���R6���R1���R���R‘���R’���R“���t ���add_option(���R›���RŠ���R“���R’���R‘���R���(����(����R���t���config_hookx��s6����� c���������C���sL���|�d�}�x;�|�i�|�ƒ�D]*�\�}�}�t�|��|�|�|�ƒ�o�t�Sq�q�Wt �S(���sA��� Do we want to keep this package to satisfy the security limits. i����N( ���R;���R<���R���R>���R#���R7���R2���R+���R*���R6���(���R2���R;���R���R+���R#���R<���(����(����R���t���ysp_should_keep_pkg¬��s����� �c���������C���sr��|��i�ƒ��\�}�}�|�i�p�|�i�p�|�i�p�|�i�}�d�}�t�|�ƒ�d�j�o€�|�d�d�j�o-�|�d�d�j�o�h��d�|�<d�t�<}�n�|�d�d�j�o-�|�d�d�j�o�h��d�|�<d�t�<}�qÓ�n�t�|�ƒ�o"|�d�d �j�o)�|�h��d�t�<d�t �<d �t�<f�Sn�|�d�d�j�o�h��d�|�<d�t�<}�n�|�d�d�d �g�j�o�h��d�|�<d�t �<}�n�|�d�d�j�p�|�d�d�j�o �|�h��d�t�<d�t�<f�Sn�|�d�d�j�p�|�d�d�j�o �|�h��d�t�<d�t�<f�Sqn�|�o)�|�o�|��i�d�d�ƒ�n�|�|�f�Sn�|�p�|��i�d�d�ƒ�n�|�h��d�t�<d�t �<d �t�<f�S(���s4��� Stuff we need to do in both list and update modes. i���i����t���listi���t���updatest���skipt���list_cmdt���infos���update-minimalRA���s���check-updateRˆ���t���upgrades���list-secs ���list-securitys���info-secs ���info-securitys!���Skipping security plugin, no datas'���Skipping security plugin, other commandN(���R›���t ���getCmdLineR2���R���R1���R4���R5���R/���R„���R���t���retRg���R*���R6���R¥���t���error(���R›���R���R¨���R„���R2���(����(����R���t���ysp_check_func_enter´��s6�����("" )" "$c��� ���������sq��t��ˆ��ƒ�\�}�}�|�d�o�d�Sn�|�d�p�d�Sn�ˆ��i�d�d�ƒ�t�ˆ��i�ƒ��i�ƒ��ƒ�} �‡��d�†��}�g��|�_ �t �|�ƒ�}�ˆ��i�i �d�d�ƒ�}�|�i�}�t�ˆ��i�ƒ�} �d �}�d �}�xd�|�D]\�}�|�d �7}�|�i�}�|�| �j�p�t�|�| �|�| �|�ƒ�o�|�|�ƒ�qÁ�n�|�d �7}�qÁ�Wt�|�‡��d�†��ƒ�|�o�ˆ��i�d�d�|�|�f�ƒ�n�ˆ��i�d�d �|�ƒ�d�S(���sk��� Yum Plugin Exclude Hook: Check and remove packages that don't align with the security config. R£���NR¤���i���s0���Limiting package lists to security relevant onesc������������s.���ˆ��i�d�d�|��|��i�f�ƒ�ˆ��i�|��ƒ�d�S(���s7��� Deletes a package from all trees that yum knows about i���s'��� --> %s from %s excluded (non-security)N(���R›���R¥���RM���t���repoidt ���delPackage(���RM���(���R›���(����R���t���ysp_del_pkgê��s�����t ���pkgnarrowR¢���i����i���c������������s���ˆ��i�d�|��ƒ�S(���Ni���(���R›���R©���RT���(���RT���(���R›���(����R���R{��� ��s����s&���Needed %d of %d packages, for securitys.���No packages needed, for security, %d available(���Rª���R›���R2���R¥���R���t���getReposR`���R���R���R���R@���R+���t���_baset���doPackageListst���updsR¢���t���pkgsRi���Rj���t���tott���cntRM���R<���R ���RB���( ���R›���R¥���Rµ���R´���R<���R²���R���R+���R³���R���Rj���R2���RM���(����(���R›���R���t���exclude_hookÙ��s8����� � ( c������������s+��t��ˆ��ƒ�\�}�}�|�d�o�d�Sn�|�d�o�d�Sn�ˆ��i�d�d�ƒ�t�ˆ��i�ƒ��i�ƒ��ƒ�}�‡��‡�d�†��}�d�}�d�}�g��|�_�t�|�ƒ�}�ˆ��i�ƒ��‰�ˆ�i�ƒ��}�t�ƒ��}�t�t�t�g�ƒ�} �t�ƒ��}�x2�|�D]*�}�|�i�| �j�o�|�i�|�i�ƒ�qÔ�qÔ�Wt�ˆ��i�ƒ�} �x•�|�D]�}�|�i�| �j�o�|�d�7}�n�|�i�i�}�|�| �j�p�t �|�| �|�|�|�ƒ�o�qn�|�i�| �j�o�|�d�7}�n�|�i�|�i�ƒ�qW|�}�t"�} �xí�| �oå�t$�} �xØ�|�D]Ð�}�|�i�|�j�o]�x·�|�i%�D]K�\�}�}�|�|�j�o2�|�|�j�o�|�d�7}�n�|�i�|�ƒ�t"�} �qìqìWqÌxZ�|�i%�D]O�\�}�}�|�|�j�o6�|�|�j�o�|�d�7}�n�|�i�|�i�ƒ�t"�} �PqIqIWqÌWq¸Wx,�|�D]$�}�|�i�|�j�o�|�|�ƒ�q¬q¬Wt(�|�‡��d �†��ƒ�|�o%�ˆ��i�d�d �|�|�|�|�f�ƒ�n�ˆ��i�d�d�|�ƒ�d�S(���sn��� Yum Plugin PreResolve Hook: Check and remove packages that don't align with the security config. R£���NR¤���i���s+���Limiting packages to security relevant onesc������������s7���ˆ��i�d�d�|��i�|��i�i�f�ƒ�ˆ�i�|��i�ƒ�d�S(���s)��� Deletes a package within a transaction. i���s'��� --> %s from %s excluded (non-security)N(���R›���R¥���t���tspkgt���poR«���t���tsinfot���removeR;���(���R·���(���R›���R¹���(����R���R��� ��s�����#i����i���c������������s���ˆ��i�d�|��ƒ�S(���Ni���(���R›���R©���RT���(���RT���(���R›���(����R���R{���^��s����s=���Needed %d (+%d related) of %d packages (so far), for securitys9���No packages needed, for security, of %d packages (so far)()���Rª���R›���R2���R¥���R���R¯���R`���R���R���R´���Rµ���R���R@���R+���t ���getTsInfoR¹���t ���getMemberst���tspkgst���sett ���keep_pkgst���TS_INSTALL_STATESt���TS_ERASEt���count_statest ���count_pkgsR·���t���output_stateR���R¸���Ri���R°���Rj���R<���R ���t���scntR*���t���mini_depsolve_againR6���t ���relatedtot���rpkgt���reasonRB���(���R›���R���R´���Rµ���RÃ���R½���R���R·���R¹���RÂ���RÆ���R+���RÉ���Rj���R¥���R<���RÈ���RÅ���R¿���R2���(����(���R›���R¹���R���t���preresolve_hook��s€����� ��(�� � � �%t���__main__s8���This is a plugin that is supposed to run from inside YUM('���R ���R!���t���yum.pluginst���TYPE_INTERACTIVEt ���yum.update_mdR���Ra���RR���t ���yum.constantst���rpmUtils.miscutilsR���t���requires_api_versiont���plugin_typeR���R���R���R���R���R���R$���R,���R7���R:���R���R?���R@���RB���RC���Rn���Ru���Rz���Ri���R€���RŸ���R ���Rª���R¶���RÊ���R���(���R:���R¶���RÑ���Ri���RÍ���Ru���R���R€���R���RR���RÊ���R7���Rª���R@���R���R���R,���R ���Rz���R!���RC���R?���Ra���R$���R���R ���RB���R���RŸ���Rn���RÒ���(����(����R���t���?'���sB��� Y 6 4 % 6 V