VULN_CHECK_I913V6 ?(fddlmZddlmZddlmZddlZGddejZGddejjZ y) )absolute_import)unicode_literals)_Nc"eZdZdZfdZxZS) RepoClosure repoclosurec^tt| |||y|jtyN)superr__init__register_commandRepoClosureCommand)selfbasecli __class__s > ++-77$))..0TWWDIIOO5SLLNKKM . rc d}|jjr&|j|jj}n|j}t|j D]}t dj t||jt dj t|||t||z }||D]}t dj |t|dkDrCtdj |t|}tjj|y)Nrzpackage: {} from {}z unresolved deps ({}):z {}zGRepoclosure ended with unresolved dependencies ({}) across {} packages.)r"arches_get_unresolvedsortedkeysprintformatstrreponamelenrdnf exceptionsError)r total_missing unresolvedpkgdepmsgs rrunzRepoClosureCommand.run8s  99  --dii.>.>?J--/J*//+,C '..s3xF G +223z#3GH I SC1 1M!#hooc*+' - z?Q Y``!3z?C ..&&s+ + rNc  i}t}|jjrH|jjj j d|jjj j d}|jjjD]}j|jjj j |jj|j|jjj j |jj}nd|jjj j|jjj j}|jjr |jjj j d}g}|jjD]~}tjj!|} |j#| j%|jjddd} | r|j| }n|j'||r:tj(j+t-ddj/|z|}|jj0r&|j3|jj0||j3||jj4j6rj3d j9|j9|D]s}t||<|j:D]U} t=| } | j?d s| j?d r1|jA| ||jA| Wutfd |D|jCD cic]\} }| tfd |D}} }|jCD cic] \} }|s | | c}} Scc}} wcc}} w)NT)empty)r3F) with_nevra with_provideswith_filenameszno package matched: %sz, )arch)latest_per_archz solvable:zrpmlib(c3HK|]}j|r|yw))providesN)filter).0x availables r z5RepoClosureCommand._get_unresolved..s"RAY5E5Eq5E5Qas""c3,K|] }|vs| ywr )rHrIunresolved_depss rrKz5RepoClosureCommand._get_unresolved..s'M1a_8L1s )"setr"newestrsackqueryrGr$ iter_enabledunionr&latestrJpkglistr5subjectSubject intersectionget_best_queryappendr6r7rjoinr'filtermr bestapplyrequiresr2 startswithadditems)rrCr9depsto_checkr# pkglist_qerrorsr:subjpkg_qreqreqnamekvunresolved_transitionrJrNs @@rr-z"RepoClosureCommand._get_unresolvedLs u* 99   ,,.55D5AIyy~~++-4444@H 446OODIINN$8$8$:$A$A477$A$S$Z$Z$\]NN499>>#7#7#9#@#@$''#@#R#Y#Y#[\7  ,,.88:Iyy~~++-779H 99   ,,.55D5AIFyy(({{**3/ --'' 46;E(ST ) 6IMM#&)nn**./$))F2CCEE H 99??   diioo  6     $  ' 99>>     d  3C!eJsO||c(%%k2**95 3##C($RRR.8-=-=-?!A-?TQ"#C'M1'M$M!M-? !A!6!D!>A!1!>DD!ADs5Q>* R5Rc |jdgddtd|jdgdtd|jd d d td  |jdgdtddy)Nz--archr[r,zBcheck packages of the given archs, can be specified multiple times)defaultactiondesthelpz--checkzSpecify repositories to check)rprqrsz-nz--newest store_truez+Check only the newest packages in the repos)rqrsz--pkgz#Check closure for this package onlyrV)rprqrsrr) add_argumentr)parsers r set_argparserz RepoClosureCommand.set_argparsersHb!"$>"?  @ Ir(!"#B!C  ED*\!"$+",  - GR!"#H!I!*  ,rr ) rrraliasesrsummaryr*r=r- staticmethodrwrMrrrr(s8GLMG ",(OEb , ,rr) __future__rrdnfpluginscorerdnf.clir5PluginrrCommandrrMrrrs9,''1#**1A,A,r