<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1791982081">
  <project timestamp="1791982081">
    <file name="/workspace/src/extensions/MediaModeration/maintenance/debugPhotoDNA.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\DebugPhotoDNA" namespace="global">
        <metrics complexity="13" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="89" ncloc="80" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/maintenance/dev/PopulateImageTables.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\Dev\PopulateImageTables" namespace="global">
        <metrics complexity="17" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="151" ncloc="131" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/maintenance/importExistingFilesToScanTable.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\ImportExistingFilesToScanTable" namespace="global">
        <metrics complexity="36" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="184" elements="194" coveredelements="194"/>
      </class>
      <line num="40" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="41" type="stmt" count="25"/>
      <line num="42" type="stmt" count="25"/>
      <line num="43" type="stmt" count="25"/>
      <line num="44" type="stmt" count="25"/>
      <line num="45" type="stmt" count="25"/>
      <line num="46" type="stmt" count="25"/>
      <line num="47" type="stmt" count="25"/>
      <line num="48" type="stmt" count="25"/>
      <line num="49" type="stmt" count="25"/>
      <line num="50" type="stmt" count="25"/>
      <line num="51" type="stmt" count="25"/>
      <line num="52" type="stmt" count="25"/>
      <line num="53" type="stmt" count="25"/>
      <line num="54" type="stmt" count="25"/>
      <line num="55" type="stmt" count="25"/>
      <line num="56" type="stmt" count="25"/>
      <line num="57" type="stmt" count="25"/>
      <line num="58" type="stmt" count="25"/>
      <line num="59" type="stmt" count="25"/>
      <line num="60" type="stmt" count="25"/>
      <line num="61" type="stmt" count="25"/>
      <line num="62" type="stmt" count="25"/>
      <line num="63" type="stmt" count="25"/>
      <line num="64" type="stmt" count="25"/>
      <line num="65" type="stmt" count="25"/>
      <line num="66" type="stmt" count="25"/>
      <line num="67" type="stmt" count="25"/>
      <line num="68" type="stmt" count="25"/>
      <line num="69" type="stmt" count="25"/>
      <line num="70" type="stmt" count="25"/>
      <line num="71" type="stmt" count="25"/>
      <line num="75" type="method" name="getUpdateKey" visibility="protected" complexity="1" crap="1" count="25"/>
      <line num="76" type="stmt" count="25"/>
      <line num="80" type="method" name="doDBUpdates" visibility="protected" complexity="11" crap="11" count="24"/>
      <line num="81" type="stmt" count="24"/>
      <line num="82" type="stmt" count="24"/>
      <line num="83" type="stmt" count="24"/>
      <line num="84" type="stmt" count="24"/>
      <line num="85" type="stmt" count="24"/>
      <line num="86" type="stmt" count="24"/>
      <line num="88" type="stmt" count="24"/>
      <line num="89" type="stmt" count="24"/>
      <line num="90" type="stmt" count="9"/>
      <line num="91" type="stmt" count="9"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <line num="96" type="stmt" count="2"/>
      <line num="100" type="stmt" count="9"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="111" type="stmt" count="23"/>
      <line num="112" type="stmt" count="21"/>
      <line num="113" type="stmt" count="21"/>
      <line num="115" type="stmt" count="21"/>
      <line num="116" type="stmt" count="8"/>
      <line num="117" type="stmt" count="8"/>
      <line num="118" type="stmt" count="8"/>
      <line num="121" type="stmt" count="21"/>
      <line num="122" type="stmt" count="21"/>
      <line num="123" type="stmt" count="21"/>
      <line num="124" type="stmt" count="21"/>
      <line num="125" type="stmt" count="21"/>
      <line num="127" type="stmt" count="21"/>
      <line num="128" type="stmt" count="21"/>
      <line num="129" type="stmt" count="10"/>
      <line num="131" type="stmt" count="21"/>
      <line num="132" type="stmt" count="21"/>
      <line num="133" type="stmt" count="21"/>
      <line num="134" type="stmt" count="21"/>
      <line num="135" type="stmt" count="21"/>
      <line num="136" type="stmt" count="21"/>
      <line num="137" type="stmt" count="21"/>
      <line num="138" type="stmt" count="21"/>
      <line num="139" type="stmt" count="21"/>
      <line num="141" type="stmt" count="21"/>
      <line num="142" type="stmt" count="21"/>
      <line num="146" type="stmt" count="1"/>
      <line num="148" type="stmt" count="20"/>
      <line num="149" type="stmt" count="8"/>
      <line num="151" type="stmt" count="12"/>
      <line num="152" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="12"/>
      <line num="155" type="stmt" count="12"/>
      <line num="156" type="stmt" count="12"/>
      <line num="157" type="stmt" count="12"/>
      <line num="159" type="stmt" count="20"/>
      <line num="174" type="method" name="generateDBUpdatesReturnValue" visibility="protected" complexity="3" crap="3" count="21"/>
      <line num="178" type="stmt" count="21"/>
      <line num="179" type="stmt" count="21"/>
      <line num="180" type="stmt" count="21"/>
      <line num="181" type="stmt" count="21"/>
      <line num="182" type="stmt" count="21"/>
      <line num="193" type="method" name="getTablesToProcess" visibility="protected" complexity="4" crap="4" count="23"/>
      <line num="194" type="stmt" count="23"/>
      <line num="195" type="stmt" count="23"/>
      <line num="196" type="stmt" count="1"/>
      <line num="198" type="stmt" count="22"/>
      <line num="199" type="stmt" count="22"/>
      <line num="200" type="stmt" count="1"/>
      <line num="203" type="stmt" count="21"/>
      <line num="215" type="method" name="getEstimatedNumberOfBatchesForTable" visibility="protected" complexity="4" crap="4" count="21"/>
      <line num="217" type="stmt" count="21"/>
      <line num="218" type="stmt" count="21"/>
      <line num="219" type="stmt" count="21"/>
      <line num="220" type="stmt" count="21"/>
      <line num="221" type="stmt" count="8"/>
      <line num="222" type="stmt" count="8"/>
      <line num="223" type="stmt" count="8"/>
      <line num="224" type="stmt" count="8"/>
      <line num="225" type="stmt" count="8"/>
      <line num="227" type="stmt" count="21"/>
      <line num="228" type="stmt" count="21"/>
      <line num="229" type="stmt" count="21"/>
      <line num="231" type="stmt" count="21"/>
      <line num="232" type="stmt" count="7"/>
      <line num="238" type="stmt" count="18"/>
      <line num="239" type="stmt" count="18"/>
      <line num="240" type="stmt" count="18"/>
      <line num="244" type="stmt" count="2"/>
      <line num="246" type="stmt" count="18"/>
      <line num="261" type="method" name="getTemporaryBatchSize" visibility="protected" complexity="2" crap="2" count="10"/>
      <line num="264" type="stmt" count="10"/>
      <line num="265" type="stmt" count="10"/>
      <line num="266" type="stmt" count="10"/>
      <line num="267" type="stmt" count="10"/>
      <line num="268" type="stmt" count="10"/>
      <line num="269" type="stmt" count="10"/>
      <line num="272" type="stmt" count="10"/>
      <line num="273" type="stmt" count="2"/>
      <line num="274" type="stmt" count="2"/>
      <line num="275" type="stmt" count="2"/>
      <line num="276" type="stmt" count="2"/>
      <line num="277" type="stmt" count="2"/>
      <line num="278" type="stmt" count="2"/>
      <line num="280" type="stmt" count="8"/>
      <line num="295" type="method" name="getFileSelectQueryBuilder" visibility="protected" complexity="3" crap="3" count="21"/>
      <line num="299" type="stmt" count="21"/>
      <line num="300" type="stmt" count="21"/>
      <line num="301" type="stmt" count="21"/>
      <line num="302" type="stmt" count="21"/>
      <line num="306" type="stmt" count="10"/>
      <line num="307" type="stmt" count="10"/>
      <line num="308" type="stmt" count="10"/>
      <line num="309" type="stmt" count="10"/>
      <line num="310" type="stmt" count="10"/>
      <line num="314" type="stmt" count="21"/>
      <line num="315" type="stmt" count="10"/>
      <line num="316" type="stmt" count="10"/>
      <line num="317" type="stmt" count="10"/>
      <line num="320" type="stmt" count="21"/>
      <line num="321" type="stmt" count="21"/>
      <line num="322" type="stmt" count="21"/>
      <line num="323" type="stmt" count="21"/>
      <line num="334" type="method" name="getRowsForBatch" visibility="protected" complexity="3" crap="3" count="21"/>
      <line num="336" type="stmt" count="21"/>
      <line num="337" type="stmt" count="21"/>
      <line num="338" type="stmt" count="21"/>
      <line num="340" type="stmt" count="21"/>
      <line num="341" type="stmt" count="21"/>
      <line num="342" type="stmt" count="21"/>
      <line num="343" type="stmt" count="21"/>
      <line num="348" type="stmt" count="21"/>
      <line num="349" type="stmt" count="18"/>
      <line num="350" type="stmt" count="18"/>
      <line num="351" type="stmt" count="18"/>
      <line num="355" type="stmt" count="10"/>
      <line num="356" type="stmt" count="10"/>
      <line num="357" type="stmt" count="10"/>
      <line num="358" type="stmt" count="10"/>
      <line num="359" type="stmt" count="10"/>
      <line num="360" type="stmt" count="10"/>
      <line num="361" type="stmt" count="10"/>
      <line num="362" type="stmt" count="10"/>
      <line num="363" type="stmt" count="10"/>
      <line num="364" type="stmt" count="10"/>
      <line num="367" type="stmt" count="18"/>
      <line num="369" type="stmt" count="18"/>
      <line num="371" type="stmt" count="21"/>
      <line num="383" type="method" name="performBatch" visibility="protected" complexity="4" crap="4" count="21"/>
      <line num="384" type="stmt" count="21"/>
      <line num="385" type="stmt" count="21"/>
      <line num="386" type="stmt" count="21"/>
      <line num="387" type="stmt" count="21"/>
      <line num="389" type="stmt" count="18"/>
      <line num="397" type="stmt" count="18"/>
      <line num="398" type="stmt" count="18"/>
      <line num="400" type="stmt" count="18"/>
      <line num="406" type="stmt" count="21"/>
      <line num="407" type="stmt" count="21"/>
      <line num="408" type="stmt" count="21"/>
      <line num="409" type="stmt" count="21"/>
      <metrics loc="417" ncloc="291" classes="1" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="184" elements="194" coveredelements="194"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/maintenance/resendMatchEmails.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\ResendMatchEmails" namespace="global">
        <metrics complexity="17" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="83" elements="89" coveredelements="89"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="39" type="stmt" count="7"/>
      <line num="41" type="stmt" count="7"/>
      <line num="42" type="stmt" count="7"/>
      <line num="43" type="stmt" count="7"/>
      <line num="44" type="stmt" count="7"/>
      <line num="45" type="stmt" count="7"/>
      <line num="47" type="stmt" count="7"/>
      <line num="48" type="stmt" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="50" type="stmt" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="52" type="stmt" count="7"/>
      <line num="53" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="58" type="stmt" count="7"/>
      <line num="59" type="stmt" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="61" type="stmt" count="7"/>
      <line num="62" type="stmt" count="7"/>
      <line num="63" type="stmt" count="7"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="7"/>
      <line num="66" type="stmt" count="7"/>
      <line num="67" type="stmt" count="7"/>
      <line num="70" type="method" name="execute" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="76" type="stmt" count="3"/>
      <line num="77" type="stmt" count="3"/>
      <line num="78" type="stmt" count="3"/>
      <line num="79" type="stmt" count="3"/>
      <line num="81" type="stmt" count="3"/>
      <line num="82" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="99" type="method" name="outputInformationBasedOnStatus" visibility="protected" complexity="4" crap="4" count="3"/>
      <line num="100" type="stmt" count="3"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="122" type="method" name="getSelectQueryBuilder" visibility="protected" complexity="2" crap="2" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="125" type="stmt" count="4"/>
      <line num="126" type="stmt" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="132" type="stmt" count="4"/>
      <line num="133" type="stmt" count="4"/>
      <line num="134" type="stmt" count="4"/>
      <line num="135" type="stmt" count="4"/>
      <line num="136" type="stmt" count="4"/>
      <line num="137" type="stmt" count="4"/>
      <line num="139" type="stmt" count="4"/>
      <line num="142" type="method" name="initServices" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="143" type="stmt" count="3"/>
      <line num="144" type="stmt" count="3"/>
      <line num="145" type="stmt" count="3"/>
      <line num="146" type="stmt" count="3"/>
      <line num="155" type="method" name="parseTimestamps" visibility="protected" complexity="7" crap="7" count="6"/>
      <line num="156" type="stmt" count="6"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="1"/>
      <line num="160" type="stmt" count="5"/>
      <line num="166" type="stmt" count="3"/>
      <line num="167" type="stmt" count="2"/>
      <line num="170" type="stmt" count="1"/>
      <line num="173" type="stmt" count="1"/>
      <line num="174" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="179" type="stmt" count="4"/>
      <line num="180" type="stmt" count="4"/>
      <line num="181" type="stmt" count="4"/>
      <line num="182" type="stmt" count="4"/>
      <line num="183" type="stmt" count="1"/>
      <line num="186" type="stmt" count="3"/>
      <metrics loc="194" ncloc="150" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="83" elements="89" coveredelements="89"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/maintenance/scanFilesInScanTable.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\ScanFilesInScanTable" namespace="global">
        <metrics complexity="33" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="179" coveredstatements="179" elements="187" coveredelements="187"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="42"/>
      <line num="42" type="stmt" count="42"/>
      <line num="44" type="stmt" count="42"/>
      <line num="45" type="stmt" count="42"/>
      <line num="47" type="stmt" count="42"/>
      <line num="48" type="stmt" count="42"/>
      <line num="49" type="stmt" count="42"/>
      <line num="50" type="stmt" count="42"/>
      <line num="51" type="stmt" count="42"/>
      <line num="52" type="stmt" count="42"/>
      <line num="53" type="stmt" count="42"/>
      <line num="54" type="stmt" count="42"/>
      <line num="55" type="stmt" count="42"/>
      <line num="56" type="stmt" count="42"/>
      <line num="57" type="stmt" count="42"/>
      <line num="58" type="stmt" count="42"/>
      <line num="59" type="stmt" count="42"/>
      <line num="60" type="stmt" count="42"/>
      <line num="61" type="stmt" count="42"/>
      <line num="62" type="stmt" count="42"/>
      <line num="63" type="stmt" count="42"/>
      <line num="64" type="stmt" count="42"/>
      <line num="65" type="stmt" count="42"/>
      <line num="66" type="stmt" count="42"/>
      <line num="67" type="stmt" count="42"/>
      <line num="68" type="stmt" count="42"/>
      <line num="69" type="stmt" count="42"/>
      <line num="70" type="stmt" count="42"/>
      <line num="71" type="stmt" count="42"/>
      <line num="72" type="stmt" count="42"/>
      <line num="73" type="stmt" count="42"/>
      <line num="74" type="stmt" count="42"/>
      <line num="75" type="stmt" count="42"/>
      <line num="76" type="stmt" count="42"/>
      <line num="77" type="stmt" count="42"/>
      <line num="78" type="stmt" count="42"/>
      <line num="79" type="stmt" count="42"/>
      <line num="80" type="stmt" count="42"/>
      <line num="81" type="stmt" count="42"/>
      <line num="82" type="stmt" count="42"/>
      <line num="83" type="stmt" count="42"/>
      <line num="84" type="stmt" count="42"/>
      <line num="85" type="stmt" count="42"/>
      <line num="86" type="stmt" count="42"/>
      <line num="87" type="stmt" count="42"/>
      <line num="88" type="stmt" count="42"/>
      <line num="89" type="stmt" count="42"/>
      <line num="90" type="stmt" count="42"/>
      <line num="91" type="stmt" count="42"/>
      <line num="92" type="stmt" count="42"/>
      <line num="93" type="stmt" count="42"/>
      <line num="94" type="stmt" count="42"/>
      <line num="95" type="stmt" count="42"/>
      <line num="96" type="stmt" count="42"/>
      <line num="97" type="stmt" count="42"/>
      <line num="98" type="stmt" count="42"/>
      <line num="99" type="stmt" count="42"/>
      <line num="100" type="stmt" count="42"/>
      <line num="101" type="stmt" count="42"/>
      <line num="102" type="stmt" count="42"/>
      <line num="104" type="stmt" count="42"/>
      <line num="107" type="method" name="execute" visibility="public" complexity="4" crap="4" count="17"/>
      <line num="108" type="stmt" count="17"/>
      <line num="109" type="stmt" count="17"/>
      <line num="111" type="stmt" count="17"/>
      <line num="112" type="stmt" count="15"/>
      <line num="117" type="stmt" count="8"/>
      <line num="118" type="stmt" count="8"/>
      <line num="119" type="stmt" count="8"/>
      <line num="120" type="stmt" count="8"/>
      <line num="121" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="127" type="stmt" count="7"/>
      <line num="128" type="stmt" count="7"/>
      <line num="141" type="method" name="maybeOutputVerboseScanResult" visibility="protected" complexity="8" crap="8" count="11"/>
      <line num="142" type="stmt" count="11"/>
      <line num="143" type="stmt" count="7"/>
      <line num="146" type="stmt" count="4"/>
      <line num="147" type="stmt" count="3"/>
      <line num="148" type="stmt" count="3"/>
      <line num="149" type="stmt" count="2"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="154" type="stmt" count="4"/>
      <line num="155" type="stmt" count="4"/>
      <line num="156" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="162" type="stmt" count="1"/>
      <line num="164" type="stmt" count="1"/>
      <line num="166" type="stmt" count="2"/>
      <line num="169" type="method" name="initServices" visibility="protected" complexity="1" crap="1" count="12"/>
      <line num="170" type="stmt" count="12"/>
      <line num="171" type="stmt" count="12"/>
      <line num="172" type="stmt" count="12"/>
      <line num="173" type="stmt" count="12"/>
      <line num="174" type="stmt" count="12"/>
      <line num="183" type="method" name="parseLastCheckedTimestamp" visibility="protected" complexity="7" crap="7" count="21"/>
      <line num="184" type="stmt" count="21"/>
      <line num="185" type="stmt" count="21"/>
      <line num="187" type="stmt" count="21"/>
      <line num="188" type="stmt" count="21"/>
      <line num="190" type="stmt" count="21"/>
      <line num="191" type="stmt" count="5"/>
      <line num="192" type="stmt" count="16"/>
      <line num="200" type="stmt" count="2"/>
      <line num="201" type="stmt" count="2"/>
      <line num="203" type="stmt" count="1"/>
      <line num="205" type="stmt" count="2"/>
      <line num="206" type="stmt" count="14"/>
      <line num="209" type="stmt" count="12"/>
      <line num="211" type="stmt" count="12"/>
      <line num="212" type="stmt" count="12"/>
      <line num="214" type="stmt" count="1"/>
      <line num="216" type="stmt" count="12"/>
      <line num="219" type="stmt" count="2"/>
      <line num="220" type="stmt" count="2"/>
      <line num="221" type="stmt" count="2"/>
      <line num="222" type="stmt" count="2"/>
      <line num="232" type="method" name="generateSha1ValuesForScan" visibility="protected" complexity="2" crap="2" count="15"/>
      <line num="234" type="stmt" count="15"/>
      <line num="235" type="stmt" count="15"/>
      <line num="236" type="stmt" count="15"/>
      <line num="237" type="stmt" count="15"/>
      <line num="238" type="stmt" count="15"/>
      <line num="239" type="stmt" count="15"/>
      <line num="240" type="stmt" count="15"/>
      <line num="242" type="stmt" count="15"/>
      <line num="243" type="stmt" count="15"/>
      <line num="245" type="stmt" count="15"/>
      <line num="246" type="stmt" count="15"/>
      <line num="248" type="stmt" count="7"/>
      <line num="252" type="stmt" count="15"/>
      <line num="253" type="stmt" count="15"/>
      <line num="266" type="method" name="waitForJobQueueSize" visibility="protected" complexity="7" crap="7" count="12"/>
      <line num="267" type="stmt" count="12"/>
      <line num="268" type="stmt" count="12"/>
      <line num="270" type="stmt" count="3"/>
      <line num="271" type="stmt" count="3"/>
      <line num="272" type="stmt" count="3"/>
      <line num="273" type="stmt" count="3"/>
      <line num="274" type="stmt" count="3"/>
      <line num="279" type="stmt" count="12"/>
      <line num="282" type="stmt" count="12"/>
      <line num="283" type="stmt" count="12"/>
      <line num="285" type="stmt" count="2"/>
      <line num="288" type="stmt" count="10"/>
      <line num="291" type="stmt" count="2"/>
      <line num="292" type="stmt" count="2"/>
      <line num="293" type="stmt" count="2"/>
      <line num="294" type="stmt" count="2"/>
      <line num="295" type="stmt" count="2"/>
      <line num="296" type="stmt" count="2"/>
      <line num="298" type="stmt" count="10"/>
      <line num="299" type="stmt" count="10"/>
      <line num="300" type="stmt" count="10"/>
      <line num="301" type="stmt" count="10"/>
      <line num="302" type="stmt" count="10"/>
      <line num="304" type="stmt" count="10"/>
      <line num="305" type="stmt" count="10"/>
      <line num="309" type="stmt" count="10"/>
      <line num="310" type="stmt" count="2"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="314" type="stmt" count="1"/>
      <line num="316" type="stmt" count="2"/>
      <line num="320" type="method" name="pollSha1ValuesForScanCompletion" visibility="protected" complexity="3" crap="3" count="8"/>
      <line num="323" type="stmt" count="8"/>
      <line num="324" type="stmt" count="1"/>
      <line num="326" type="stmt" count="7"/>
      <line num="328" type="stmt" count="7"/>
      <line num="329" type="stmt" count="7"/>
      <line num="330" type="stmt" count="7"/>
      <line num="331" type="stmt" count="7"/>
      <line num="332" type="stmt" count="7"/>
      <line num="333" type="stmt" count="7"/>
      <line num="334" type="stmt" count="2"/>
      <line num="335" type="stmt" count="2"/>
      <line num="336" type="stmt" count="2"/>
      <line num="338" type="stmt" count="5"/>
      <line num="339" type="stmt" count="5"/>
      <line num="340" type="stmt" count="5"/>
      <line num="341" type="stmt" count="5"/>
      <line num="342" type="stmt" count="5"/>
      <line num="344" type="stmt" count="7"/>
      <metrics loc="352" ncloc="277" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="179" coveredstatements="179" elements="187" coveredelements="187"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/maintenance/updateMetrics.php">
      <class name="MediaWiki\Extension\MediaModeration\Maintenance\UpdateMetrics" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="24" elements="27" coveredelements="27"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="34" type="stmt" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="2"/>
      <line num="44" type="method" name="initServices" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="51" type="method" name="execute" visibility="public" complexity="4" crap="4" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="55" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <metrics loc="83" ncloc="70" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="24" elements="27" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Deferred/InsertFileOnUploadUpdate.php">
      <class name="MediaWiki\Extension\MediaModeration\Deferred\InsertFileOnUploadUpdate" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="15" coveredelements="15"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="24" type="stmt" count="5"/>
      <line num="27" type="method" name="doUpdate" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="32" type="method" name="getAsJobSpecification" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <metrics loc="45" ncloc="39" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="15" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Exception/RuntimeException.php">
      <class name="MediaWiki\Extension\MediaModeration\Exception\RuntimeException" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="12" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Hooks/Handlers/SchemaChangesHandler.php">
      <class name="MediaWiki\Extension\MediaModeration\Hooks\Handlers\SchemaChangesHandler" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="28" ncloc="24" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Hooks/Handlers/UploadCompleteHandler.php">
      <class name="MediaWiki\Extension\MediaModeration\Hooks\Handlers\UploadCompleteHandler" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="17" coveredelements="17"/>
      </class>
      <line num="39" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="46" type="stmt" count="7"/>
      <line num="50" type="method" name="onUploadComplete" visibility="public" complexity="5" crap="5" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="52" type="stmt" count="7"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="62" type="stmt" count="6"/>
      <line num="63" type="stmt" count="6"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="70" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="5"/>
      <line num="75" type="stmt" count="5"/>
      <metrics loc="79" ncloc="55" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="17" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Job/MediaModerationInsertFileOnUploadJob.php">
      <class name="MediaWiki\Extension\MediaModeration\Job\MediaModerationInsertFileOnUploadJob" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="24" type="method" name="run" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <metrics loc="36" ncloc="25" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Job/MediaModerationScanFileJob.php">
      <class name="MediaWiki\Extension\MediaModeration\Job\MediaModerationScanFileJob" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
      </class>
      <line num="10" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="14" type="stmt" count="1"/>
      <line num="18" type="method" name="run" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="19" type="stmt" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <metrics loc="24" ncloc="22" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Media/ThumborThumbnailImage.php">
      <class name="MediaWiki\Extension\MediaModeration\Media\ThumborThumbnailImage" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="24" type="method" name="getContentType" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="28" type="method" name="getContent" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <metrics loc="33" ncloc="30" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/IMetric.php">
      <metrics loc="25" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/MediaModerationMetricsFactory.php">
      <class name="MediaWiki\Extension\MediaModeration\PeriodicMetrics\MediaModerationMetricsFactory" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="27" type="stmt" count="6"/>
      <line num="37" type="method" name="newMetric" visibility="public" complexity="6" crap="6" count="2"/>
      <line num="40" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="48" type="stmt" count="1"/>
      <metrics loc="52" ncloc="38" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/ScannedImagesMetric.php">
      <class name="MediaWiki\Extension\MediaModeration\PeriodicMetrics\ScannedImagesMetric" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <line num="20" type="method" name="calculate" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="30" type="method" name="getName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <metrics loc="34" ncloc="28" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/TotalTableCountMetric.php">
      <class name="MediaWiki\Extension\MediaModeration\PeriodicMetrics\TotalTableCountMetric" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="10" coveredelements="10"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="17" type="stmt" count="2"/>
      <line num="20" type="method" name="calculate" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="21" type="stmt" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="29" type="method" name="getName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <metrics loc="33" ncloc="27" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/UnscannedImagesMetric.php">
      <class name="MediaWiki\Extension\MediaModeration\PeriodicMetrics\UnscannedImagesMetric" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="17" type="stmt" count="2"/>
      <line num="20" type="method" name="calculate" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="21" type="stmt" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="30" type="method" name="getName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <metrics loc="34" ncloc="28" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PeriodicMetrics/UnscannedImagesWithLastCheckedDefinedMetric.php">
      <class name="MediaWiki\Extension\MediaModeration\PeriodicMetrics\UnscannedImagesWithLastCheckedDefinedMetric" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="18" type="stmt" count="1"/>
      <line num="21" type="method" name="calculate" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="34" type="method" name="getName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <metrics loc="38" ncloc="31" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PhotoDNA/IMediaModerationPhotoDNAServiceProvider.php">
      <metrics loc="20" ncloc="15" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PhotoDNA/MediaModerationPhotoDNAResponseHandler.php">
      <class name="MediaWiki\Extension\MediaModeration\PhotoDNA\MediaModerationPhotoDNAResponseHandler" namespace="global">
        <metrics complexity="8" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="39" coveredstatements="39" elements="40" coveredelements="40"/>
      </class>
      <line num="28" type="method" name="createStatusFromResponse" visibility="private" complexity="8" crap="8" count="9"/>
      <line num="29" type="stmt" count="9"/>
      <line num="30" type="stmt" count="9"/>
      <line num="32" type="stmt" count="3"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <metrics loc="79" ncloc="62" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="39" coveredstatements="39" elements="40" coveredelements="40"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/PhotoDNA/Response.php">
      <class name="MediaWiki\Extension\MediaModeration\PhotoDNA\Response" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="9" elements="14" coveredelements="14"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="33" type="stmt" count="4"/>
      <line num="40" type="method" name="newFromArray" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="48" type="method" name="getStatusCode" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="52" type="method" name="isMatch" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="56" type="method" name="getRawResponse" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <metrics loc="61" ncloc="44" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="9" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/ServiceWiring.php">
      <metrics loc="183" ncloc="157" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationDatabaseLookup.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationDatabaseLookup" namespace="global">
        <metrics complexity="15" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="55" elements="62" coveredelements="62"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="25" type="stmt" count="25"/>
      <line num="34" type="method" name="fileExistsInScanTable" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="35" type="stmt" count="6"/>
      <line num="36" type="stmt" count="6"/>
      <line num="37" type="stmt" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="6"/>
      <line num="40" type="stmt" count="6"/>
      <line num="41" type="stmt" count="6"/>
      <line num="52" type="method" name="getMatchStatusForSha1" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="2"/>
      <line num="63" type="stmt" count="1"/>
      <line num="74" type="method" name="getDb" visibility="public" complexity="2" crap="2" count="19"/>
      <line num="75" type="stmt" count="19"/>
      <line num="76" type="stmt" count="4"/>
      <line num="78" type="stmt" count="16"/>
      <line num="90" type="method" name="getDateFromTimestamp" visibility="public" complexity="2" crap="2" count="10"/>
      <line num="92" type="stmt" count="10"/>
      <line num="93" type="stmt" count="8"/>
      <line num="96" type="stmt" count="9"/>
      <line num="99" type="stmt" count="9"/>
      <line num="115" type="method" name="newSelectQueryBuilderForScan" visibility="protected" complexity="6" crap="6" count="10"/>
      <line num="119" type="stmt" count="10"/>
      <line num="122" type="stmt" count="10"/>
      <line num="123" type="stmt" count="10"/>
      <line num="124" type="stmt" count="10"/>
      <line num="126" type="stmt" count="6"/>
      <line num="132" type="stmt" count="4"/>
      <line num="133" type="stmt" count="4"/>
      <line num="134" type="stmt" count="4"/>
      <line num="135" type="stmt" count="4"/>
      <line num="136" type="stmt" count="4"/>
      <line num="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="4"/>
      <line num="139" type="stmt" count="4"/>
      <line num="141" type="stmt" count="10"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="154" type="stmt" count="10"/>
      <line num="155" type="stmt" count="7"/>
      <line num="158" type="stmt" count="10"/>
      <line num="161" type="stmt" count="1"/>
      <line num="162" type="stmt" count="1"/>
      <line num="163" type="stmt" count="1"/>
      <line num="166" type="stmt" count="10"/>
      <line num="167" type="stmt" count="10"/>
      <line num="188" type="method" name="getSha1ValuesForScan" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="193" type="stmt" count="6"/>
      <line num="194" type="stmt" count="6"/>
      <line num="195" type="stmt" count="6"/>
      <line num="196" type="stmt" count="6"/>
      <line num="197" type="stmt" count="6"/>
      <metrics loc="200" ncloc="116" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="55" elements="62" coveredelements="62"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationDatabaseManager.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationDatabaseManager" namespace="global">
        <metrics complexity="9" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="35" coveredstatements="35" elements="41" coveredelements="41"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="18" type="stmt" count="12"/>
      <line num="27" type="method" name="insertFileToScanTable" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="29" type="stmt" count="5"/>
      <line num="30" type="stmt" count="5"/>
      <line num="31" type="stmt" count="3"/>
      <line num="43" type="method" name="insertSha1ToScanTable" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="69" type="method" name="insertToScanTableInternal" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="75" type="stmt" count="3"/>
      <line num="92" type="method" name="updateMatchStatus" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="95" type="stmt" count="6"/>
      <line num="96" type="stmt" count="6"/>
      <line num="111" type="method" name="updateMatchStatusForSha1" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="4"/>
      <line num="118" type="stmt" count="6"/>
      <line num="119" type="stmt" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="6"/>
      <line num="125" type="stmt" count="6"/>
      <line num="126" type="stmt" count="6"/>
      <line num="127" type="stmt" count="6"/>
      <metrics loc="130" ncloc="73" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="35" coveredstatements="35" elements="41" coveredelements="41"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationEmailer.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationEmailer" namespace="global">
        <metrics complexity="28" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="101" coveredstatements="101" elements="109" coveredelements="109"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="36" type="stmt" count="9"/>
      <line num="49" type="method" name="sendEmailForSha1" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="81" type="method" name="getEmailSubject" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="96" type="method" name="getFileObjectsGroupedByFileName" visibility="protected" complexity="6" crap="6" count="7"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="4"/>
      <line num="106" type="stmt" count="7"/>
      <line num="107" type="stmt" count="7"/>
      <line num="109" type="stmt" count="7"/>
      <line num="111" type="stmt" count="7"/>
      <line num="121" type="method" name="getEmailBodyHtml" visibility="protected" complexity="7" crap="7" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="3"/>
      <line num="127" type="stmt" count="3"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="3"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="137" type="stmt" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="140" type="stmt" count="3"/>
      <line num="141" type="stmt" count="3"/>
      <line num="142" type="stmt" count="3"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="148" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <line num="152" type="stmt" count="3"/>
      <line num="155" type="stmt" count="3"/>
      <line num="157" type="stmt" count="1"/>
      <line num="160" type="stmt" count="3"/>
      <line num="161" type="stmt" count="3"/>
      <line num="162" type="stmt" count="3"/>
      <line num="163" type="stmt" count="3"/>
      <line num="165" type="stmt" count="3"/>
      <line num="166" type="stmt" count="3"/>
      <line num="176" type="method" name="getEmailBodyPlaintext" visibility="protected" complexity="7" crap="7" count="3"/>
      <line num="177" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="179" type="stmt" count="3"/>
      <line num="180" type="stmt" count="3"/>
      <line num="183" type="stmt" count="3"/>
      <line num="184" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="186" type="stmt" count="3"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="190" type="stmt" count="3"/>
      <line num="192" type="stmt" count="3"/>
      <line num="193" type="stmt" count="3"/>
      <line num="195" type="stmt" count="2"/>
      <line num="196" type="stmt" count="2"/>
      <line num="197" type="stmt" count="2"/>
      <line num="198" type="stmt" count="2"/>
      <line num="201" type="stmt" count="3"/>
      <line num="204" type="stmt" count="3"/>
      <line num="206" type="stmt" count="1"/>
      <line num="209" type="stmt" count="3"/>
      <line num="210" type="stmt" count="3"/>
      <line num="211" type="stmt" count="3"/>
      <line num="212" type="stmt" count="3"/>
      <line num="213" type="stmt" count="3"/>
      <line num="215" type="stmt" count="3"/>
      <line num="216" type="stmt" count="3"/>
      <line num="227" type="method" name="getEmailBodyIntroductionText" visibility="protected" complexity="2" crap="2" count="3"/>
      <line num="229" type="stmt" count="3"/>
      <line num="230" type="stmt" count="3"/>
      <line num="231" type="stmt" count="3"/>
      <line num="232" type="stmt" count="3"/>
      <line num="233" type="stmt" count="3"/>
      <line num="234" type="stmt" count="3"/>
      <line num="235" type="stmt" count="3"/>
      <line num="236" type="stmt" count="3"/>
      <line num="238" type="stmt" count="3"/>
      <line num="240" type="stmt" count="3"/>
      <line num="249" type="method" name="getEmailBodyFooterText" visibility="protected" complexity="2" crap="2" count="4"/>
      <line num="250" type="stmt" count="4"/>
      <line num="253" type="stmt" count="1"/>
      <line num="254" type="stmt" count="1"/>
      <line num="255" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="258" type="stmt" count="3"/>
      <metrics loc="261" ncloc="180" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="101" coveredstatements="101" elements="109" coveredelements="109"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationFileFactory.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationFileFactory" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="20" type="stmt" count="15"/>
      <line num="30" type="method" name="getFileObjectForRow" visibility="public" complexity="4" crap="4" count="13"/>
      <line num="31" type="stmt" count="13"/>
      <line num="32" type="stmt" count="10"/>
      <line num="33" type="stmt" count="7"/>
      <line num="34" type="stmt" count="6"/>
      <line num="36" type="stmt" count="1"/>
      <metrics loc="40" ncloc="28" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationFileLookup.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationFileLookup" namespace="global">
        <metrics complexity="27" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="78" elements="86" coveredelements="86"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="22"/>
      <line num="28" type="stmt" count="22"/>
      <line num="37" type="method" name="getFileSelectQueryBuilder" visibility="public" complexity="4" crap="4" count="13"/>
      <line num="38" type="stmt" count="13"/>
      <line num="39" type="stmt" count="12"/>
      <line num="40" type="stmt" count="13"/>
      <line num="41" type="stmt" count="12"/>
      <line num="42" type="stmt" count="13"/>
      <line num="43" type="stmt" count="12"/>
      <line num="45" type="stmt" count="1"/>
      <line num="47" type="stmt" count="12"/>
      <line num="57" type="method" name="getTimestampFieldForTable" visibility="public" complexity="4" crap="4" count="19"/>
      <line num="58" type="stmt" count="19"/>
      <line num="59" type="stmt" count="14"/>
      <line num="60" type="stmt" count="17"/>
      <line num="61" type="stmt" count="14"/>
      <line num="62" type="stmt" count="15"/>
      <line num="63" type="stmt" count="14"/>
      <line num="65" type="stmt" count="1"/>
      <line num="76" type="method" name="getSha1FieldForTable" visibility="private" complexity="4" crap="4" count="13"/>
      <line num="77" type="stmt" count="13"/>
      <line num="78" type="stmt" count="12"/>
      <line num="79" type="stmt" count="13"/>
      <line num="80" type="stmt" count="12"/>
      <line num="81" type="stmt" count="13"/>
      <line num="82" type="stmt" count="12"/>
      <line num="84" type="stmt" count="1"/>
      <line num="103" type="method" name="getRowCountForTimestamp" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="112" type="stmt" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="133" type="method" name="performBatchQuery" visibility="protected" complexity="2" crap="2" count="12"/>
      <line num="137" type="stmt" count="12"/>
      <line num="138" type="stmt" count="12"/>
      <line num="139" type="stmt" count="12"/>
      <line num="140" type="stmt" count="12"/>
      <line num="141" type="stmt" count="12"/>
      <line num="143" type="stmt" count="2"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="150" type="stmt" count="12"/>
      <line num="151" type="stmt" count="12"/>
      <line num="152" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="12"/>
      <line num="170" type="method" name="getBatchOfFileRows" visibility="protected" complexity="6" crap="6" count="17"/>
      <line num="175" type="stmt" count="17"/>
      <line num="176" type="stmt" count="6"/>
      <line num="177" type="stmt" count="6"/>
      <line num="178" type="stmt" count="3"/>
      <line num="183" type="stmt" count="17"/>
      <line num="184" type="stmt" count="17"/>
      <line num="187" type="stmt" count="14"/>
      <line num="190" type="stmt" count="5"/>
      <line num="191" type="stmt" count="5"/>
      <line num="193" type="stmt" count="5"/>
      <line num="200" type="stmt" count="5"/>
      <line num="201" type="stmt" count="5"/>
      <line num="202" type="stmt" count="5"/>
      <line num="203" type="stmt" count="5"/>
      <line num="204" type="stmt" count="3"/>
      <line num="208" type="stmt" count="5"/>
      <line num="229" type="method" name="getFileObjectsForSha1" visibility="public" complexity="3" crap="3" count="16"/>
      <line num="231" type="stmt" count="16"/>
      <line num="235" type="stmt" count="16"/>
      <line num="237" type="stmt" count="16"/>
      <line num="238" type="stmt" count="16"/>
      <line num="239" type="stmt" count="16"/>
      <line num="240" type="stmt" count="16"/>
      <line num="241" type="stmt" count="16"/>
      <line num="242" type="stmt" count="16"/>
      <line num="243" type="stmt" count="16"/>
      <line num="245" type="stmt" count="13"/>
      <line num="247" type="stmt" count="16"/>
      <metrics loc="251" ncloc="150" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="78" elements="86" coveredelements="86"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationFileProcessor.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationFileProcessor" namespace="global">
        <metrics complexity="14" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="39" coveredelements="39"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="33" type="stmt" count="17"/>
      <line num="43" type="method" name="fileHasAllowedMediaType" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="44" type="stmt" count="13"/>
      <line num="55" type="method" name="fileHasAllowedMimeType" visibility="private" complexity="1" crap="1" count="12"/>
      <line num="56" type="stmt" count="12"/>
      <line num="67" type="method" name="fileCanBeRendered" visibility="private" complexity="5" crap="5" count="9"/>
      <line num="68" type="stmt" count="9"/>
      <line num="69" type="stmt" count="2"/>
      <line num="71" type="stmt" count="7"/>
      <line num="72" type="stmt" count="7"/>
      <line num="78" type="stmt" count="5"/>
      <line num="79" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="96" type="stmt" count="4"/>
      <line num="98" type="stmt" count="2"/>
      <line num="115" type="method" name="canScanFile" visibility="public" complexity="4" crap="4" count="13"/>
      <line num="116" type="stmt" count="13"/>
      <line num="117" type="stmt" count="13"/>
      <line num="118" type="stmt" count="13"/>
      <line num="119" type="stmt" count="13"/>
      <line num="120" type="stmt" count="13"/>
      <line num="121" type="stmt" count="13"/>
      <line num="122" type="stmt" count="8"/>
      <line num="123" type="stmt" count="8"/>
      <line num="124" type="stmt" count="8"/>
      <line num="125" type="stmt" count="8"/>
      <line num="127" type="stmt" count="13"/>
      <line num="138" type="method" name="insertFile" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="139" type="stmt" count="5"/>
      <line num="140" type="stmt" count="3"/>
      <metrics loc="144" ncloc="86" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="39" coveredelements="39"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationFileScanner.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationFileScanner" namespace="global">
        <metrics complexity="11" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="46" coveredelements="46"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="32" type="stmt" count="5"/>
      <line num="40" type="method" name="scanSha1" visibility="public" complexity="10" crap="10" count="5"/>
      <line num="41" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="4"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" count="2"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="61" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="77" type="stmt" count="5"/>
      <line num="78" type="stmt" count="5"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="5"/>
      <line num="84" type="stmt" count="2"/>
      <line num="86" type="stmt" count="5"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="2"/>
      <line num="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="106" type="stmt" count="5"/>
      <metrics loc="109" ncloc="82" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="46" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationImageContentsLookup.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationImageContentsLookup" namespace="global">
        <metrics complexity="57" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="231" coveredstatements="231" elements="240" coveredelements="240"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="49"/>
      <line num="45" type="stmt" count="49"/>
      <line num="58" type="method" name="getImageContents" visibility="public" complexity="9" crap="9" count="9"/>
      <line num="59" type="stmt" count="9"/>
      <line num="62" type="stmt" count="9"/>
      <line num="63" type="stmt" count="9"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="6"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <line num="75" type="stmt" count="2"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="85" type="stmt" count="4"/>
      <line num="89" type="stmt" count="7"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="93" type="stmt" count="3"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="103" type="stmt" count="3"/>
      <line num="104" type="stmt" count="3"/>
      <line num="105" type="stmt" count="3"/>
      <line num="106" type="stmt" count="3"/>
      <line num="110" type="stmt" count="2"/>
      <line num="113" type="stmt" count="4"/>
      <line num="116" type="stmt" count="1"/>
      <line num="120" type="stmt" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="122" type="stmt" count="4"/>
      <line num="123" type="stmt" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="133" type="method" name="getThumbnailMimeType" visibility="protected" complexity="6" crap="6" count="6"/>
      <line num="136" type="stmt" count="6"/>
      <line num="137" type="stmt" count="6"/>
      <line num="138" type="stmt" count="1"/>
      <line num="140" type="stmt" count="6"/>
      <line num="141" type="stmt" count="5"/>
      <line num="143" type="stmt" count="6"/>
      <line num="145" type="stmt" count="6"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="154" type="stmt" count="5"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="163" type="stmt" count="3"/>
      <line num="178" type="method" name="getThumbnailWidth" visibility="private" complexity="8" crap="8" count="18"/>
      <line num="179" type="stmt" count="18"/>
      <line num="183" type="stmt" count="18"/>
      <line num="184" type="stmt" count="11"/>
      <line num="189" type="stmt" count="7"/>
      <line num="190" type="stmt" count="1"/>
      <line num="195" type="stmt" count="6"/>
      <line num="196" type="stmt" count="6"/>
      <line num="197" type="stmt" count="6"/>
      <line num="198" type="stmt" count="6"/>
      <line num="199" type="stmt" count="6"/>
      <line num="200" type="stmt" count="1"/>
      <line num="207" type="stmt" count="5"/>
      <line num="208" type="stmt" count="5"/>
      <line num="209" type="stmt" count="5"/>
      <line num="210" type="stmt" count="5"/>
      <line num="212" type="stmt" count="5"/>
      <line num="223" type="method" name="shouldThumbnailWidthMeetMinimumRequirements" visibility="private" complexity="2" crap="2" count="7"/>
      <line num="224" type="stmt" count="7"/>
      <line num="225" type="stmt" count="7"/>
      <line num="226" type="stmt" count="6"/>
      <line num="231" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="240" type="method" name="getThumbnailForFile" visibility="protected" complexity="11" crap="11" count="18"/>
      <line num="241" type="stmt" count="18"/>
      <line num="242" type="stmt" count="18"/>
      <line num="245" type="stmt" count="18"/>
      <line num="246" type="stmt" count="18"/>
      <line num="247" type="stmt" count="18"/>
      <line num="248" type="stmt" count="18"/>
      <line num="249" type="stmt" count="18"/>
      <line num="250" type="stmt" count="2"/>
      <line num="254" type="stmt" count="2"/>
      <line num="255" type="stmt" count="2"/>
      <line num="256" type="stmt" count="2"/>
      <line num="257" type="stmt" count="2"/>
      <line num="258" type="stmt" count="2"/>
      <line num="259" type="stmt" count="2"/>
      <line num="260" type="stmt" count="2"/>
      <line num="261" type="stmt" count="2"/>
      <line num="262" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="265" type="stmt" count="2"/>
      <line num="266" type="stmt" count="2"/>
      <line num="267" type="stmt" count="2"/>
      <line num="268" type="stmt" count="2"/>
      <line num="269" type="stmt" count="2"/>
      <line num="270" type="stmt" count="1"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="277" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="281" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="283" type="stmt" count="1"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="286" type="stmt" count="1"/>
      <line num="287" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="289" type="stmt" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <line num="292" type="stmt" count="1"/>
      <line num="297" type="stmt" count="1"/>
      <line num="298" type="stmt" count="1"/>
      <line num="299" type="stmt" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="304" type="stmt" count="16"/>
      <line num="306" type="stmt" count="17"/>
      <line num="307" type="stmt" count="17"/>
      <line num="308" type="stmt" count="17"/>
      <line num="309" type="stmt" count="17"/>
      <line num="310" type="stmt" count="17"/>
      <line num="311" type="stmt" count="17"/>
      <line num="314" type="stmt" count="17"/>
      <line num="315" type="stmt" count="17"/>
      <line num="316" type="stmt" count="1"/>
      <line num="317" type="stmt" count="16"/>
      <line num="318" type="stmt" count="1"/>
      <line num="319" type="stmt" count="15"/>
      <line num="320" type="stmt" count="1"/>
      <line num="321" type="stmt" count="1"/>
      <line num="322" type="stmt" count="1"/>
      <line num="323" type="stmt" count="14"/>
      <line num="324" type="stmt" count="12"/>
      <line num="325" type="stmt" count="12"/>
      <line num="326" type="stmt" count="12"/>
      <line num="327" type="stmt" count="2"/>
      <line num="328" type="stmt" count="1"/>
      <line num="329" type="stmt" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="332" type="stmt" count="1"/>
      <line num="335" type="stmt" count="17"/>
      <line num="336" type="stmt" count="16"/>
      <line num="337" type="stmt" count="16"/>
      <line num="338" type="stmt" count="16"/>
      <line num="340" type="stmt" count="17"/>
      <line num="343" type="method" name="getThumbnailContents" visibility="protected" complexity="8" crap="8" count="7"/>
      <line num="344" type="stmt" count="7"/>
      <line num="346" type="stmt" count="7"/>
      <line num="347" type="stmt" count="7"/>
      <line num="349" type="stmt" count="2"/>
      <line num="350" type="stmt" count="2"/>
      <line num="351" type="stmt" count="2"/>
      <line num="354" type="stmt" count="2"/>
      <line num="355" type="stmt" count="2"/>
      <line num="356" type="stmt" count="2"/>
      <line num="358" type="stmt" count="5"/>
      <line num="359" type="stmt" count="1"/>
      <line num="360" type="stmt" count="1"/>
      <line num="361" type="stmt" count="1"/>
      <line num="362" type="stmt" count="1"/>
      <line num="363" type="stmt" count="1"/>
      <line num="364" type="stmt" count="1"/>
      <line num="366" type="stmt" count="4"/>
      <line num="367" type="stmt" count="1"/>
      <line num="368" type="stmt" count="3"/>
      <line num="369" type="stmt" count="4"/>
      <line num="370" type="stmt" count="1"/>
      <line num="371" type="stmt" count="1"/>
      <line num="372" type="stmt" count="1"/>
      <line num="373" type="stmt" count="1"/>
      <line num="374" type="stmt" count="1"/>
      <line num="375" type="stmt" count="1"/>
      <line num="377" type="stmt" count="3"/>
      <line num="378" type="stmt" count="1"/>
      <line num="379" type="stmt" count="1"/>
      <line num="380" type="stmt" count="1"/>
      <line num="384" type="stmt" count="1"/>
      <line num="385" type="stmt" count="1"/>
      <line num="386" type="stmt" count="1"/>
      <line num="388" type="stmt" count="2"/>
      <line num="397" type="method" name="getFileContents" visibility="protected" complexity="11" crap="11" count="10"/>
      <line num="398" type="stmt" count="10"/>
      <line num="399" type="stmt" count="1"/>
      <line num="400" type="stmt" count="1"/>
      <line num="401" type="stmt" count="1"/>
      <line num="404" type="stmt" count="1"/>
      <line num="405" type="stmt" count="1"/>
      <line num="406" type="stmt" count="1"/>
      <line num="409" type="stmt" count="9"/>
      <line num="410" type="stmt" count="9"/>
      <line num="412" type="stmt" count="3"/>
      <line num="413" type="stmt" count="3"/>
      <line num="414" type="stmt" count="3"/>
      <line num="419" type="stmt" count="3"/>
      <line num="420" type="stmt" count="3"/>
      <line num="421" type="stmt" count="3"/>
      <line num="423" type="stmt" count="6"/>
      <line num="425" type="stmt" count="3"/>
      <line num="426" type="stmt" count="3"/>
      <line num="428" type="stmt" count="3"/>
      <line num="430" type="stmt" count="6"/>
      <line num="431" type="stmt" count="1"/>
      <line num="432" type="stmt" count="1"/>
      <line num="433" type="stmt" count="1"/>
      <line num="434" type="stmt" count="1"/>
      <line num="435" type="stmt" count="1"/>
      <line num="436" type="stmt" count="1"/>
      <line num="438" type="stmt" count="5"/>
      <line num="439" type="stmt" count="5"/>
      <line num="440" type="stmt" count="1"/>
      <line num="441" type="stmt" count="1"/>
      <line num="442" type="stmt" count="1"/>
      <line num="443" type="stmt" count="1"/>
      <line num="444" type="stmt" count="1"/>
      <line num="445" type="stmt" count="1"/>
      <line num="447" type="stmt" count="4"/>
      <line num="459" type="method" name="incrementImageContentsLookupErrorTotal" visibility="private" complexity="1" crap="1" count="31"/>
      <line num="462" type="stmt" count="31"/>
      <line num="463" type="stmt" count="31"/>
      <line num="464" type="stmt" count="31"/>
      <line num="465" type="stmt" count="31"/>
      <line num="466" type="stmt" count="31"/>
      <line num="467" type="stmt" count="31"/>
      <line num="468" type="stmt" count="31"/>
      <metrics loc="471" ncloc="347" classes="1" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="231" coveredstatements="231" elements="240" coveredelements="240"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationMockPhotoDNAServiceProvider.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationMockPhotoDNAServiceProvider" namespace="global">
        <metrics complexity="2" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="45" ncloc="34" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Services/MediaModerationPhotoDNAServiceProvider.php">
      <class name="MediaWiki\Extension\MediaModeration\Services\MediaModerationPhotoDNAServiceProvider" namespace="global">
        <metrics complexity="12" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="73" coveredstatements="73" elements="76" coveredelements="76"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="48" type="stmt" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="50" type="stmt" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="55" type="method" name="check" visibility="public" complexity="7" crap="7" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="5"/>
      <line num="58" type="stmt" count="1"/>
      <line num="61" type="stmt" count="4"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="67" type="stmt" count="4"/>
      <line num="68" type="stmt" count="4"/>
      <line num="69" type="stmt" count="4"/>
      <line num="70" type="stmt" count="4"/>
      <line num="71" type="stmt" count="4"/>
      <line num="72" type="stmt" count="4"/>
      <line num="73" type="stmt" count="4"/>
      <line num="74" type="stmt" count="4"/>
      <line num="75" type="stmt" count="4"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="79" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="85" type="stmt" count="2"/>
      <line num="86" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="89" type="stmt" count="2"/>
      <line num="90" type="stmt" count="2"/>
      <line num="91" type="stmt" count="2"/>
      <line num="92" type="stmt" count="2"/>
      <line num="94" type="stmt" count="2"/>
      <line num="95" type="stmt" count="2"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="120" type="method" name="getRequest" visibility="private" complexity="4" crap="4" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="1"/>
      <line num="125" type="stmt" count="6"/>
      <line num="126" type="stmt" count="6"/>
      <line num="130" type="stmt" count="1"/>
      <line num="132" type="stmt" count="5"/>
      <line num="133" type="stmt" count="5"/>
      <line num="134" type="stmt" count="5"/>
      <line num="135" type="stmt" count="5"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="1"/>
      <line num="139" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="141" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="143" type="stmt" count="5"/>
      <line num="144" type="stmt" count="5"/>
      <line num="145" type="stmt" count="5"/>
      <line num="146" type="stmt" count="5"/>
      <metrics loc="149" ncloc="134" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="73" coveredstatements="73" elements="76" coveredelements="76"/>
    </file>
    <file name="/workspace/src/extensions/MediaModeration/src/Status/ImageContentsLookupStatus.php">
      <class name="MediaWiki\Extension\MediaModeration\Status\ImageContentsLookupStatus" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="12" coveredelements="12"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="20" type="stmt" count="2"/>
      <line num="27" type="method" name="setMimeType" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="37" type="method" name="setImageContents" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="48" type="method" name="getMimeType" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="58" type="method" name="getImageContents" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <metrics loc="62" ncloc="33" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="12" coveredelements="12"/>
    </file>
    <metrics files="34" loc="3964" ncloc="2906" classes="26" methods="115" coveredmethods="115" conditionals="0" coveredconditionals="0" statements="1258" coveredstatements="1258" elements="1373" coveredelements="1373"/>
  </project>
</coverage>
