<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1774827398">
  <project timestamp="1774827398">
    <file name="/src/src/Callbacks.php">
      <metrics loc="86" ncloc="25" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/src/src/ParamValidator.php">
      <class name="Wikimedia\ParamValidator\ParamValidator" namespace="global">
        <metrics complexity="112" methods="16" coveredmethods="16" conditionals="0" coveredconditionals="0" statements="335" coveredstatements="335" elements="351" coveredelements="351"/>
      </class>
      <line num="227" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="73"/>
      <line num="232" type="stmt" count="73"/>
      <line num="233" type="stmt" count="73"/>
      <line num="235" type="stmt" count="73"/>
      <line num="236" type="stmt" count="73"/>
      <line num="237" type="stmt" count="73"/>
      <line num="244" type="method" name="knownTypes" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="254" type="method" name="addTypeDefs" visibility="public" complexity="2" crap="2" count="73"/>
      <line num="255" type="stmt" count="73"/>
      <line num="256" type="stmt" count="70"/>
      <line num="273" type="method" name="addTypeDef" visibility="public" complexity="2" crap="2" count="70"/>
      <line num="274" type="stmt" count="70"/>
      <line num="275" type="stmt" count="70"/>
      <line num="276" type="stmt" count="70"/>
      <line num="277" type="stmt" count="70"/>
      <line num="278" type="stmt" count="70"/>
      <line num="280" type="stmt" count="70"/>
      <line num="281" type="stmt" count="1"/>
      <line num="283" type="stmt" count="70"/>
      <line num="292" type="method" name="overrideTypeDef" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="293" type="stmt" count="1"/>
      <line num="294" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="296" type="stmt" count="1"/>
      <line num="297" type="stmt" count="1"/>
      <line num="299" type="stmt" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="302" type="stmt" count="1"/>
      <line num="311" type="method" name="hasTypeDef" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="320" type="method" name="getTypeDef" visibility="public" complexity="4" crap="4" count="71"/>
      <line num="321" type="stmt" count="71"/>
      <line num="322" type="stmt" count="6"/>
      <line num="325" type="stmt" count="71"/>
      <line num="326" type="stmt" count="7"/>
      <line num="329" type="stmt" count="65"/>
      <line num="330" type="stmt" count="65"/>
      <line num="331" type="stmt" count="10"/>
      <line num="332" type="stmt" count="10"/>
      <line num="333" type="stmt" count="10"/>
      <line num="334" type="stmt" count="10"/>
      <line num="335" type="stmt" count="9"/>
      <line num="338" type="stmt" count="64"/>
      <line num="346" type="method" name="normalizeSettingsInternal" visibility="private" complexity="3" crap="3" count="69"/>
      <line num="348" type="stmt" count="69"/>
      <line num="349" type="stmt" count="4"/>
      <line num="350" type="stmt" count="4"/>
      <line num="351" type="stmt" count="4"/>
      <line num="355" type="stmt" count="69"/>
      <line num="356" type="stmt" count="13"/>
      <line num="359" type="stmt" count="69"/>
      <line num="368" type="method" name="normalizeSettings" visibility="public" complexity="2" crap="2" count="54"/>
      <line num="369" type="stmt" count="54"/>
      <line num="371" type="stmt" count="54"/>
      <line num="372" type="stmt" count="54"/>
      <line num="373" type="stmt" count="50"/>
      <line num="376" type="stmt" count="54"/>
      <line num="397" type="method" name="checkSettings" visibility="public" complexity="26" crap="26" count="17"/>
      <line num="398" type="stmt" count="17"/>
      <line num="399" type="stmt" count="17"/>
      <line num="400" type="stmt" count="17"/>
      <line num="401" type="stmt" count="17"/>
      <line num="402" type="stmt" count="17"/>
      <line num="403" type="stmt" count="17"/>
      <line num="404" type="stmt" count="17"/>
      <line num="406" type="stmt" count="17"/>
      <line num="407" type="stmt" count="17"/>
      <line num="408" type="stmt" count="17"/>
      <line num="409" type="stmt" count="1"/>
      <line num="411" type="stmt" count="16"/>
      <line num="412" type="stmt" count="16"/>
      <line num="413" type="stmt" count="2"/>
      <line num="414" type="stmt" count="1"/>
      <line num="416" type="stmt" count="2"/>
      <line num="420" type="stmt" count="17"/>
      <line num="422" type="stmt" count="2"/>
      <line num="423" type="stmt" count="2"/>
      <line num="424" type="stmt" count="2"/>
      <line num="425" type="stmt" count="1"/>
      <line num="426" type="stmt" count="1"/>
      <line num="427" type="stmt" count="1"/>
      <line num="431" type="stmt" count="17"/>
      <line num="432" type="stmt" count="1"/>
      <line num="433" type="stmt" count="1"/>
      <line num="436" type="stmt" count="17"/>
      <line num="437" type="stmt" count="1"/>
      <line num="438" type="stmt" count="1"/>
      <line num="441" type="stmt" count="17"/>
      <line num="442" type="stmt" count="11"/>
      <line num="443" type="stmt" count="11"/>
      <line num="444" type="stmt" count="11"/>
      <line num="445" type="stmt" count="11"/>
      <line num="447" type="stmt" count="11"/>
      <line num="448" type="stmt" count="11"/>
      <line num="449" type="stmt" count="11"/>
      <line num="450" type="stmt" count="1"/>
      <line num="451" type="stmt" count="1"/>
      <line num="452" type="stmt" count="10"/>
      <line num="453" type="stmt" count="1"/>
      <line num="454" type="stmt" count="1"/>
      <line num="456" type="stmt" count="11"/>
      <line num="457" type="stmt" count="1"/>
      <line num="458" type="stmt" count="1"/>
      <line num="459" type="stmt" count="10"/>
      <line num="460" type="stmt" count="1"/>
      <line num="461" type="stmt" count="1"/>
      <line num="462" type="stmt" count="1"/>
      <line num="465" type="stmt" count="11"/>
      <line num="466" type="stmt" count="11"/>
      <line num="467" type="stmt" count="1"/>
      <line num="468" type="stmt" count="10"/>
      <line num="469" type="stmt" count="5"/>
      <line num="470" type="stmt" count="2"/>
      <line num="472" type="stmt" count="5"/>
      <line num="473" type="stmt" count="5"/>
      <line num="474" type="stmt" count="2"/>
      <line num="475" type="stmt" count="3"/>
      <line num="476" type="stmt" count="2"/>
      <line num="480" type="stmt" count="11"/>
      <line num="481" type="stmt" count="1"/>
      <line num="482" type="stmt" count="1"/>
      <line num="486" type="stmt" count="17"/>
      <line num="487" type="stmt" count="1"/>
      <line num="488" type="stmt" count="1"/>
      <line num="491" type="stmt" count="17"/>
      <line num="492" type="stmt" count="1"/>
      <line num="493" type="stmt" count="1"/>
      <line num="496" type="stmt" count="17"/>
      <line num="497" type="stmt" count="1"/>
      <line num="498" type="stmt" count="1"/>
      <line num="501" type="stmt" count="17"/>
      <line num="502" type="stmt" count="17"/>
      <line num="503" type="stmt" count="14"/>
      <line num="506" type="stmt" count="17"/>
      <line num="520" type="method" name="getValue" visibility="public" complexity="6" crap="6" count="9"/>
      <line num="521" type="stmt" count="9"/>
      <line num="523" type="stmt" count="9"/>
      <line num="524" type="stmt" count="9"/>
      <line num="525" type="stmt" count="1"/>
      <line num="526" type="stmt" count="1"/>
      <line num="527" type="stmt" count="1"/>
      <line num="530" type="stmt" count="8"/>
      <line num="532" type="stmt" count="8"/>
      <line num="533" type="stmt" count="6"/>
      <line num="534" type="stmt" count="1"/>
      <line num="535" type="stmt" count="1"/>
      <line num="536" type="stmt" count="1"/>
      <line num="537" type="stmt" count="1"/>
      <line num="538" type="stmt" count="1"/>
      <line num="539" type="stmt" count="1"/>
      <line num="543" type="stmt" count="6"/>
      <line num="544" type="stmt" count="1"/>
      <line num="545" type="stmt" count="1"/>
      <line num="546" type="stmt" count="1"/>
      <line num="547" type="stmt" count="1"/>
      <line num="548" type="stmt" count="1"/>
      <line num="549" type="stmt" count="1"/>
      <line num="551" type="stmt" count="2"/>
      <line num="552" type="stmt" count="1"/>
      <line num="553" type="stmt" count="1"/>
      <line num="556" type="stmt" count="8"/>
      <line num="572" type="method" name="validateValue" visibility="public" complexity="27" crap="27" count="25"/>
      <line num="573" type="stmt" count="25"/>
      <line num="575" type="stmt" count="25"/>
      <line num="576" type="stmt" count="25"/>
      <line num="577" type="stmt" count="1"/>
      <line num="578" type="stmt" count="1"/>
      <line num="579" type="stmt" count="1"/>
      <line num="582" type="stmt" count="24"/>
      <line num="583" type="stmt" count="2"/>
      <line num="584" type="stmt" count="1"/>
      <line num="585" type="stmt" count="1"/>
      <line num="586" type="stmt" count="1"/>
      <line num="587" type="stmt" count="1"/>
      <line num="588" type="stmt" count="1"/>
      <line num="590" type="stmt" count="1"/>
      <line num="594" type="stmt" count="22"/>
      <line num="595" type="stmt" count="5"/>
      <line num="596" type="stmt" count="1"/>
      <line num="597" type="stmt" count="1"/>
      <line num="598" type="stmt" count="1"/>
      <line num="599" type="stmt" count="1"/>
      <line num="600" type="stmt" count="1"/>
      <line num="606" type="stmt" count="4"/>
      <line num="607" type="stmt" count="2"/>
      <line num="608" type="stmt" count="2"/>
      <line num="609" type="stmt" count="2"/>
      <line num="610" type="stmt" count="2"/>
      <line num="611" type="stmt" count="2"/>
      <line num="614" type="stmt" count="2"/>
      <line num="618" type="stmt" count="17"/>
      <line num="619" type="stmt" count="17"/>
      <line num="621" type="stmt" count="17"/>
      <line num="622" type="stmt" count="3"/>
      <line num="623" type="stmt" count="14"/>
      <line num="624" type="stmt" count="1"/>
      <line num="625" type="stmt" count="1"/>
      <line num="626" type="stmt" count="1"/>
      <line num="627" type="stmt" count="1"/>
      <line num="628" type="stmt" count="1"/>
      <line num="629" type="stmt" count="1"/>
      <line num="630" type="stmt" count="1"/>
      <line num="631" type="stmt" count="1"/>
      <line num="633" type="stmt" count="13"/>
      <line num="637" type="stmt" count="16"/>
      <line num="638" type="stmt" count="16"/>
      <line num="639" type="stmt" count="16"/>
      <line num="641" type="stmt" count="3"/>
      <line num="642" type="stmt" count="2"/>
      <line num="643" type="stmt" count="1"/>
      <line num="644" type="stmt" count="3"/>
      <line num="645" type="stmt" count="2"/>
      <line num="650" type="stmt" count="14"/>
      <line num="651" type="stmt" count="14"/>
      <line num="652" type="stmt" count="14"/>
      <line num="653" type="stmt" count="14"/>
      <line num="654" type="stmt" count="14"/>
      <line num="655" type="stmt" count="5"/>
      <line num="656" type="stmt" count="5"/>
      <line num="657" type="stmt" count="5"/>
      <line num="658" type="stmt" count="5"/>
      <line num="659" type="stmt" count="5"/>
      <line num="660" type="stmt" count="5"/>
      <line num="661" type="stmt" count="5"/>
      <line num="662" type="stmt" count="5"/>
      <line num="663" type="stmt" count="5"/>
      <line num="666" type="stmt" count="9"/>
      <line num="667" type="stmt" count="9"/>
      <line num="668" type="stmt" count="9"/>
      <line num="669" type="stmt" count="9"/>
      <line num="671" type="stmt" count="9"/>
      <line num="672" type="stmt" count="3"/>
      <line num="673" type="stmt" count="3"/>
      <line num="674" type="stmt" count="3"/>
      <line num="676" type="stmt" count="1"/>
      <line num="678" type="stmt" count="2"/>
      <line num="681" type="stmt" count="8"/>
      <line num="682" type="stmt" count="2"/>
      <line num="683" type="stmt" count="1"/>
      <line num="685" type="stmt" count="2"/>
      <line num="686" type="stmt" count="2"/>
      <line num="687" type="stmt" count="2"/>
      <line num="688" type="stmt" count="2"/>
      <line num="689" type="stmt" count="2"/>
      <line num="690" type="stmt" count="2"/>
      <line num="691" type="stmt" count="2"/>
      <line num="692" type="stmt" count="2"/>
      <line num="693" type="stmt" count="2"/>
      <line num="694" type="stmt" count="2"/>
      <line num="695" type="stmt" count="2"/>
      <line num="699" type="stmt" count="8"/>
      <line num="700" type="stmt" count="7"/>
      <line num="703" type="stmt" count="8"/>
      <line num="715" type="method" name="getParamInfo" visibility="public" complexity="11" crap="11" count="7"/>
      <line num="716" type="stmt" count="7"/>
      <line num="717" type="stmt" count="7"/>
      <line num="718" type="stmt" count="7"/>
      <line num="720" type="stmt" count="7"/>
      <line num="721" type="stmt" count="7"/>
      <line num="722" type="stmt" count="7"/>
      <line num="723" type="stmt" count="1"/>
      <line num="725" type="stmt" count="7"/>
      <line num="726" type="stmt" count="2"/>
      <line num="728" type="stmt" count="7"/>
      <line num="729" type="stmt" count="2"/>
      <line num="731" type="stmt" count="7"/>
      <line num="732" type="stmt" count="7"/>
      <line num="733" type="stmt" count="4"/>
      <line num="734" type="stmt" count="4"/>
      <line num="735" type="stmt" count="4"/>
      <line num="736" type="stmt" count="4"/>
      <line num="737" type="stmt" count="4"/>
      <line num="738" type="stmt" count="4"/>
      <line num="739" type="stmt" count="1"/>
      <line num="740" type="stmt" count="3"/>
      <line num="742" type="stmt" count="4"/>
      <line num="743" type="stmt" count="1"/>
      <line num="746" type="stmt" count="4"/>
      <line num="747" type="stmt" count="4"/>
      <line num="748" type="stmt" count="2"/>
      <line num="749" type="stmt" count="1"/>
      <line num="751" type="stmt" count="2"/>
      <line num="755" type="stmt" count="7"/>
      <line num="756" type="stmt" count="7"/>
      <line num="760" type="stmt" count="7"/>
      <line num="761" type="stmt" count="7"/>
      <line num="762" type="stmt" count="7"/>
      <line num="774" type="method" name="getHelpInfo" visibility="public" complexity="16" crap="16" count="10"/>
      <line num="775" type="stmt" count="10"/>
      <line num="776" type="stmt" count="10"/>
      <line num="779" type="stmt" count="10"/>
      <line num="780" type="stmt" count="10"/>
      <line num="781" type="stmt" count="10"/>
      <line num="782" type="stmt" count="10"/>
      <line num="783" type="stmt" count="10"/>
      <line num="784" type="stmt" count="10"/>
      <line num="785" type="stmt" count="10"/>
      <line num="786" type="stmt" count="10"/>
      <line num="787" type="stmt" count="10"/>
      <line num="788" type="stmt" count="10"/>
      <line num="790" type="stmt" count="10"/>
      <line num="791" type="stmt" count="1"/>
      <line num="794" type="stmt" count="10"/>
      <line num="795" type="stmt" count="2"/>
      <line num="798" type="stmt" count="10"/>
      <line num="799" type="stmt" count="8"/>
      <line num="801" type="stmt" count="8"/>
      <line num="802" type="stmt" count="8"/>
      <line num="803" type="stmt" count="8"/>
      <line num="806" type="stmt" count="8"/>
      <line num="807" type="stmt" count="8"/>
      <line num="809" type="stmt" count="7"/>
      <line num="810" type="stmt" count="5"/>
      <line num="811" type="stmt" count="5"/>
      <line num="813" type="stmt" count="2"/>
      <line num="814" type="stmt" count="2"/>
      <line num="818" type="stmt" count="8"/>
      <line num="819" type="stmt" count="8"/>
      <line num="820" type="stmt" count="2"/>
      <line num="821" type="stmt" count="1"/>
      <line num="823" type="stmt" count="2"/>
      <line num="824" type="stmt" count="2"/>
      <line num="828" type="stmt" count="10"/>
      <line num="829" type="stmt" count="3"/>
      <line num="830" type="stmt" count="3"/>
      <line num="831" type="stmt" count="1"/>
      <line num="832" type="stmt" count="2"/>
      <line num="833" type="stmt" count="2"/>
      <line num="834" type="stmt" count="2"/>
      <line num="838" type="stmt" count="10"/>
      <line num="839" type="stmt" count="10"/>
      <line num="843" type="stmt" count="10"/>
      <line num="844" type="stmt" count="10"/>
      <line num="845" type="stmt" count="10"/>
      <line num="848" type="stmt" count="10"/>
      <line num="861" type="method" name="explodeMultiValue" visibility="public" complexity="4" crap="4" count="22"/>
      <line num="862" type="stmt" count="22"/>
      <line num="863" type="stmt" count="2"/>
      <line num="866" type="stmt" count="20"/>
      <line num="867" type="stmt" count="3"/>
      <line num="868" type="stmt" count="3"/>
      <line num="870" type="stmt" count="17"/>
      <line num="873" type="stmt" count="20"/>
      <line num="882" type="method" name="implodeMultiValue" visibility="public" complexity="4" crap="4" count="11"/>
      <line num="883" type="stmt" count="11"/>
      <line num="886" type="stmt" count="1"/>
      <line num="889" type="stmt" count="10"/>
      <line num="890" type="stmt" count="9"/>
      <line num="891" type="stmt" count="2"/>
      <line num="894" type="stmt" count="8"/>
      <metrics loc="898" ncloc="602" classes="1" methods="16" coveredmethods="16" conditionals="0" coveredconditionals="0" statements="335" coveredstatements="335" elements="351" coveredelements="351"/>
    </file>
    <file name="/src/src/SimpleCallbacks.php">
      <class name="Wikimedia\ParamValidator\SimpleCallbacks" namespace="global">
        <metrics complexity="11" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="28" coveredelements="28"/>
      </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="37" type="method" name="hasParam" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="41" type="method" name="getValue" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="45" type="method" name="hasUpload" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="49" type="method" name="getUploadedFile" visibility="public" complexity="3" crap="3" 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="58" type="method" name="recordCondition" visibility="public" complexity="1" crap="1" 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="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="73" type="method" name="getRecordedConditions" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="80" type="method" name="clearRecordedConditions" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="84" type="method" name="useHighLimits" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <metrics loc="89" ncloc="66" classes="1" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="28" coveredelements="28"/>
    </file>
    <file name="/src/src/TypeDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef" namespace="global">
        <metrics complexity="19" methods="13" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="24" elements="46" coveredelements="33"/>
      </class>
      <line num="42" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="43" type="stmt" count="11"/>
      <line num="54" type="method" name="supportsArrays" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="68" type="method" name="failIfNotString" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="99" type="method" name="fatal" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="121" type="method" name="failure" visibility="protected" complexity="4" crap="4" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="125" type="stmt" count="2"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="2"/>
      <line num="130" type="stmt" count="2"/>
      <line num="132" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="2"/>
      <line num="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="156" type="method" name="failureMessage" visibility="protected" complexity="2" crap="2" count="5"/>
      <line num="157" type="stmt" count="5"/>
      <line num="158" type="stmt" count="5"/>
      <line num="159" type="stmt" count="5"/>
      <line num="160" type="stmt" count="5"/>
      <line num="179" type="method" name="getValue" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="211" type="method" name="normalizeSettings" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="239" type="method" name="checkSettings" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="257" type="method" name="getEnumValues" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="276" type="method" name="stringifyValue" visibility="public" complexity="2" crap="2.15" count="3"/>
      <line num="277" type="stmt" count="3"/>
      <line num="278" type="stmt" count="0"/>
      <line num="281" type="stmt" count="3"/>
      <line num="299" type="method" name="getParamInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="326" type="method" name="getHelpInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="327" type="stmt" count="1"/>
      <metrics loc="331" ncloc="109" classes="1" methods="13" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="24" elements="46" coveredelements="33"/>
    </file>
    <file name="/src/src/TypeDef/BooleanDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\BooleanDef" namespace="global">
        <metrics complexity="11" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="30" coveredstatements="30" elements="34" coveredelements="34"/>
      </class>
      <line num="28" type="method" name="validate" visibility="public" complexity="6" crap="6" count="48"/>
      <line num="29" type="stmt" count="48"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="44"/>
      <line num="32" type="stmt" count="13"/>
      <line num="33" type="stmt" count="13"/>
      <line num="34" type="stmt" count="13"/>
      <line num="35" type="stmt" count="13"/>
      <line num="36" type="stmt" count="13"/>
      <line num="39" type="stmt" count="31"/>
      <line num="40" type="stmt" count="31"/>
      <line num="41" type="stmt" count="14"/>
      <line num="43" type="stmt" count="17"/>
      <line num="44" type="stmt" count="15"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <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="60" type="method" name="quoteVal" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="64" type="method" name="stringifyValue" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="68" type="method" name="getHelpInfo" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <metrics loc="78" ncloc="66" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="30" coveredstatements="30" elements="34" coveredelements="34"/>
    </file>
    <file name="/src/src/TypeDef/EnumDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\EnumDef" namespace="global">
        <metrics complexity="29" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="93" elements="101" coveredelements="101"/>
      </class>
      <line num="51" type="method" name="validate" visibility="public" complexity="7" crap="7" count="8"/>
      <line num="52" type="stmt" count="8"/>
      <line num="54" type="stmt" count="8"/>
      <line num="56" type="stmt" count="5"/>
      <line num="57" type="stmt" count="5"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="68" type="stmt" count="1"/>
      <line num="70" type="stmt" count="3"/>
      <line num="73" type="stmt" count="5"/>
      <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="80" type="stmt" count="3"/>
      <line num="81" type="stmt" count="3"/>
      <line num="82" type="stmt" count="3"/>
      <line num="83" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="87" type="method" name="checkSettings" visibility="public" complexity="9" crap="9" count="3"/>
      <line num="88" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <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="106" 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="115" type="stmt" count="3"/>
      <line num="118" type="method" name="getEnumValues" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="119" type="stmt" count="16"/>
      <line num="122" type="method" name="stringifyValue" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="123" type="stmt" count="5"/>
      <line num="124" type="stmt" count="3"/>
      <line num="127" type="stmt" count="2"/>
      <line num="130" type="method" name="getParamInfo" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="131" 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="5"/>
      <line num="138" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="141" type="stmt" count="2"/>
      <line num="142" type="stmt" count="2"/>
      <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="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="151" type="stmt" count="5"/>
      <line num="154" type="method" name="getHelpInfo" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="155" type="stmt" count="5"/>
      <line num="157" type="stmt" count="5"/>
      <line num="159" type="stmt" count="5"/>
      <line num="160" type="stmt" count="5"/>
      <line num="162" type="stmt" count="5"/>
      <line num="163" type="stmt" count="5"/>
      <line num="164" type="stmt" count="4"/>
      <line num="166" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="172" type="stmt" count="5"/>
      <line num="173" type="stmt" count="5"/>
      <line num="174" type="stmt" count="5"/>
      <line num="175" type="stmt" count="5"/>
      <line num="178" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="192" type="method" name="sortEnumValues" visibility="protected" complexity="3" crap="3" count="5"/>
      <line num="196" type="stmt" count="5"/>
      <line num="197" type="stmt" count="5"/>
      <line num="198" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="200" type="stmt" count="1"/>
      <line num="202" type="stmt" count="5"/>
      <line num="204" type="stmt" count="5"/>
      <line num="206" type="stmt" count="5"/>
      <line num="217" type="method" name="getEnumValuesForHelp" visibility="protected" complexity="1" crap="1" count="5"/>
      <line num="218" type="stmt" count="5"/>
      <line num="219" type="stmt" count="5"/>
      <line num="225" type="stmt" count="5"/>
      <metrics loc="229" ncloc="174" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="93" elements="101" coveredelements="101"/>
    </file>
    <file name="/src/src/TypeDef/ExpiryDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\ExpiryDef" namespace="global">
        <metrics complexity="24" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="53" elements="60" coveredelements="60"/>
      </class>
      <line num="35" type="method" name="validate" visibility="public" complexity="6" crap="6" count="15"/>
      <line num="36" type="stmt" count="15"/>
      <line num="38" type="stmt" count="14"/>
      <line num="40" type="stmt" count="14"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="45" type="stmt" count="12"/>
      <line num="46" type="stmt" count="3"/>
      <line num="49" type="stmt" count="9"/>
      <line num="51" type="stmt" count="9"/>
      <line num="52" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="62" type="stmt" count="2"/>
      <line num="65" type="stmt" count="6"/>
      <line num="68" type="method" name="getHelpInfo" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="69" 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="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="95" type="method" name="normalizeExpiry" visibility="public" complexity="7" crap="7" count="16"/>
      <line num="96" type="stmt" count="16"/>
      <line num="97" type="stmt" count="5"/>
      <line num="99" type="stmt" count="16"/>
      <line num="100" type="stmt" count="4"/>
      <line num="104" type="stmt" count="15"/>
      <line num="105" type="stmt" count="15"/>
      <line num="107" type="stmt" count="4"/>
      <line num="113" type="stmt" count="13"/>
      <line num="115" type="stmt" count="13"/>
      <line num="116" type="stmt" count="12"/>
      <line num="119" type="stmt" count="9"/>
      <line num="128" type="method" name="isInMwRange" visibility="private" complexity="2" crap="2" count="14"/>
      <line num="129" type="stmt" count="14"/>
      <line num="130" type="stmt" count="14"/>
      <line num="142" type="method" name="normalizeUsingMaxExpiry" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="143" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="146" type="stmt" count="1"/>
      <line num="149" type="method" name="checkSettings" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="165" type="method" name="expiryExceedsMax" visibility="private" complexity="4" crap="4" count="10"/>
      <line num="166" type="stmt" count="10"/>
      <line num="167" type="stmt" count="10"/>
      <line num="169" type="stmt" count="10"/>
      <line num="171" type="stmt" count="5"/>
      <line num="174" type="stmt" count="6"/>
      <metrics loc="178" ncloc="121" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="53" elements="60" coveredelements="60"/>
    </file>
    <file name="/src/src/TypeDef/FloatDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\FloatDef" namespace="global">
        <metrics complexity="9" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="22" elements="25" coveredelements="25"/>
      </class>
      <line num="34" type="method" name="validate" visibility="public" complexity="6" crap="6" count="41"/>
      <line num="35" type="stmt" count="41"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="39"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="37"/>
      <line num="40" 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="46" type="stmt" count="36"/>
      <line num="48" type="stmt" count="7"/>
      <line num="51" type="stmt" count="29"/>
      <line num="54" type="stmt" count="33"/>
      <line num="55" type="stmt" count="2"/>
      <line num="58" type="stmt" count="31"/>
      <line num="61" type="method" name="stringifyValue" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="67" type="method" name="getHelpInfo" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <metrics loc="77" ncloc="53" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="22" elements="25" coveredelements="25"/>
    </file>
    <file name="/src/src/TypeDef/IntegerDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\IntegerDef" namespace="global">
        <metrics complexity="15" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="34" coveredelements="34"/>
      </class>
      <line num="25" type="method" name="validate" visibility="public" complexity="11" crap="11" count="37"/>
      <line num="26" type="stmt" count="37"/>
      <line num="27" type="stmt" count="2"/>
      <line num="28" type="stmt" count="35"/>
      <line num="33" type="stmt" count="4"/>
      <line num="34" type="stmt" count="4"/>
      <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="31"/>
      <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="30"/>
      <line num="49" type="stmt" count="9"/>
      <line num="51" type="stmt" count="21"/>
      <line num="56" type="stmt" count="26"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="2"/>
      <line num="63" type="stmt" count="24"/>
      <line num="66" type="method" name="getHelpInfo" visibility="public" complexity="2" crap="2" count="8"/>
      <line num="67" type="stmt" count="8"/>
      <line num="69" type="stmt" count="8"/>
      <line num="70" type="stmt" count="8"/>
      <line num="72" type="stmt" count="8"/>
      <line num="75" type="method" name="stringifyValue" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="76" type="stmt" count="3"/>
      <line num="77" type="stmt" count="2"/>
      <line num="80" type="stmt" count="1"/>
      <metrics loc="84" ncloc="64" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="34" coveredelements="34"/>
    </file>
    <file name="/src/src/TypeDef/LimitDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\LimitDef" namespace="global">
        <metrics complexity="11" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="30" coveredelements="30"/>
      </class>
      <line num="27" type="method" name="validate" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="29" type="stmt" count="4"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="34" type="stmt" count="4"/>
      <line num="37" type="stmt" count="1"/>
      <line num="40" type="method" name="normalizeSettings" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="41" type="stmt" count="14"/>
      <line num="42" type="stmt" count="14"/>
      <line num="43" type="stmt" count="14"/>
      <line num="46" type="stmt" count="14"/>
      <line num="48" type="stmt" count="14"/>
      <line num="51" type="method" name="checkSettings" visibility="public" complexity="5" crap="5" count="7"/>
      <line num="52" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="61" type="stmt" count="7"/>
      <line num="62" type="stmt" count="1"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="1"/>
      <line num="68" type="stmt" count="7"/>
      <line num="71" type="method" name="getHelpInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <metrics loc="81" ncloc="63" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="30" coveredelements="30"/>
    </file>
    <file name="/src/src/TypeDef/NumericDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\NumericDef" namespace="global">
        <metrics complexity="44" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="90" coveredstatements="90" elements="95" coveredelements="95"/>
      </class>
      <line num="64" type="method" name="checkRange" visibility="protected" complexity="14" crap="14" count="24"/>
      <line num="65" type="stmt" count="24"/>
      <line num="66" type="stmt" count="24"/>
      <line num="67" type="stmt" count="24"/>
      <line num="68" type="stmt" count="24"/>
      <line num="70" type="stmt" count="24"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="22"/>
      <line num="74" type="stmt" count="7"/>
      <line num="75" type="stmt" count="3"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="84" type="stmt" count="24"/>
      <line num="85" type="stmt" count="8"/>
      <line num="86" type="stmt" count="8"/>
      <line num="87" type="stmt" count="8"/>
      <line num="89" type="stmt" count="8"/>
      <line num="90" type="stmt" count="8"/>
      <line num="92" type="stmt" count="8"/>
      <line num="93" type="stmt" count="8"/>
      <line num="94" type="stmt" count="8"/>
      <line num="95" type="stmt" count="8"/>
      <line num="96" type="stmt" count="8"/>
      <line num="97" type="stmt" count="8"/>
      <line num="98" type="stmt" count="8"/>
      <line num="99" type="stmt" count="8"/>
      <line num="100" type="stmt" count="8"/>
      <line num="101" type="stmt" count="8"/>
      <line num="102" type="stmt" count="8"/>
      <line num="103" type="stmt" count="8"/>
      <line num="106" type="stmt" count="20"/>
      <line num="113" type="method" name="normalizeSettings" visibility="public" complexity="5" crap="5" count="52"/>
      <line num="114" type="stmt" count="52"/>
      <line num="115" type="stmt" count="33"/>
      <line num="118" type="stmt" count="52"/>
      <line num="119" type="stmt" count="52"/>
      <line num="121" type="stmt" count="1"/>
      <line num="124" type="stmt" count="52"/>
      <line num="131" type="method" name="checkSettings" visibility="public" complexity="14" crap="14" count="8"/>
      <line num="132" type="stmt" count="8"/>
      <line num="134" type="stmt" count="8"/>
      <line num="135" type="stmt" count="8"/>
      <line num="136" type="stmt" count="8"/>
      <line num="138" type="stmt" count="8"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="143" type="stmt" count="8"/>
      <line num="144" type="stmt" count="8"/>
      <line num="145" type="stmt" count="8"/>
      <line num="146" type="stmt" count="8"/>
      <line num="147" type="stmt" count="1"/>
      <line num="149" type="stmt" count="8"/>
      <line num="150" type="stmt" count="1"/>
      <line num="152" type="stmt" count="8"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="157" type="stmt" count="8"/>
      <line num="158" type="stmt" count="1"/>
      <line num="160" type="stmt" count="8"/>
      <line num="161" type="stmt" count="5"/>
      <line num="162" type="stmt" count="1"/>
      <line num="163" type="stmt" count="4"/>
      <line num="164" type="stmt" count="1"/>
      <line num="168" type="stmt" count="8"/>
      <line num="175" type="method" name="getParamInfo" visibility="public" complexity="3" crap="3" count="8"/>
      <line num="176" type="stmt" count="8"/>
      <line num="178" type="stmt" count="8"/>
      <line num="179" type="stmt" count="8"/>
      <line num="180" type="stmt" count="8"/>
      <line num="181" type="stmt" count="8"/>
      <line num="182" type="stmt" count="4"/>
      <line num="185" type="stmt" count="8"/>
      <line num="192" type="method" name="getHelpInfo" visibility="public" complexity="8" crap="8" count="8"/>
      <line num="193" type="stmt" count="8"/>
      <line num="195" type="stmt" count="8"/>
      <line num="196" type="stmt" count="8"/>
      <line num="197" type="stmt" count="8"/>
      <line num="198" type="stmt" count="8"/>
      <line num="199" type="stmt" count="4"/>
      <line num="200" type="stmt" count="4"/>
      <line num="202" type="stmt" count="8"/>
      <line num="203" type="stmt" count="6"/>
      <line num="204" type="stmt" count="6"/>
      <line num="205" type="stmt" count="6"/>
      <line num="206" type="stmt" count="6"/>
      <line num="208" type="stmt" count="2"/>
      <line num="210" type="stmt" count="6"/>
      <line num="212" type="stmt" count="8"/>
      <line num="213" type="stmt" count="7"/>
      <line num="217" type="stmt" count="7"/>
      <line num="218" type="stmt" count="7"/>
      <line num="221" type="stmt" count="8"/>
      <metrics loc="225" ncloc="167" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="90" coveredstatements="90" elements="95" coveredelements="95"/>
    </file>
    <file name="/src/src/TypeDef/PasswordDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\PasswordDef" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
      </class>
      <line num="18" type="method" name="normalizeSettings" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="19" type="stmt" count="19"/>
      <line num="20" type="stmt" count="19"/>
      <line num="23" type="method" name="checkSettings" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="24" type="stmt" count="9"/>
      <line num="26" type="stmt" count="9"/>
      <line num="27" type="stmt" count="9"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="33" type="stmt" count="9"/>
      <metrics loc="37" ncloc="28" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
    </file>
    <file name="/src/src/TypeDef/PresenceBooleanDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\PresenceBooleanDef" namespace="global">
        <metrics complexity="11" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="24" elements="30" coveredelements="30"/>
      </class>
      <line num="23" type="method" name="getValue" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="24" type="stmt" count="5"/>
      <line num="27" type="method" name="validate" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="31" type="method" name="normalizeSettings" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="33" type="stmt" count="11"/>
      <line num="36" type="stmt" count="11"/>
      <line num="38" type="stmt" count="11"/>
      <line num="41" type="method" name="checkSettings" visibility="public" complexity="5" crap="5" count="7"/>
      <line num="42" type="stmt" count="7"/>
      <line num="44" type="stmt" count="7"/>
      <line num="45" type="stmt" count="7"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <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="58" type="stmt" count="7"/>
      <line num="61" type="method" name="getParamInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="70" type="method" name="getHelpInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <metrics loc="84" ncloc="68" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="24" elements="30" coveredelements="30"/>
    </file>
    <file name="/src/src/TypeDef/StringDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\StringDef" namespace="global">
        <metrics complexity="22" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="63" elements="68" coveredelements="68"/>
      </class>
      <line num="62" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="63" type="stmt" count="25"/>
      <line num="65" type="stmt" count="25"/>
      <line num="68" type="method" name="validate" visibility="public" complexity="8" crap="8" count="13"/>
      <line num="69" type="stmt" count="13"/>
      <line num="70" type="stmt" count="12"/>
      <line num="72" type="stmt" count="13"/>
      <line num="73" type="stmt" count="13"/>
      <line num="75" type="stmt" count="1"/>
      <line num="78" type="stmt" count="12"/>
      <line num="80" type="stmt" count="11"/>
      <line num="81" type="stmt" count="11"/>
      <line num="82" type="stmt" count="2"/>
      <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="87" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="90" type="stmt" count="9"/>
      <line num="91" type="stmt" count="9"/>
      <line num="92" type="stmt" count="2"/>
      <line num="93" 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="2"/>
      <line num="101" type="stmt" count="7"/>
      <line num="104" type="method" name="checkSettings" visibility="public" complexity="9" crap="9" count="7"/>
      <line num="105" type="stmt" count="7"/>
      <line num="107" type="stmt" count="7"/>
      <line num="108" type="stmt" count="7"/>
      <line num="109" type="stmt" count="7"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="7"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="1"/>
      <line num="119" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="1"/>
      <line num="127" type="stmt" count="7"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="130" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="138" type="stmt" count="7"/>
      <line num="141" type="method" name="getParamInfo" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="142" type="stmt" count="2"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="150" type="method" name="getHelpInfo" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="153" type="stmt" count="2"/>
      <line num="154" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="1"/>
      <line num="159" type="stmt" count="1"/>
      <line num="162" type="stmt" count="2"/>
      <metrics loc="166" ncloc="124" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="63" elements="68" coveredelements="68"/>
    </file>
    <file name="/src/src/TypeDef/TimestampDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\TimestampDef" namespace="global">
        <metrics complexity="22" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="42" elements="47" coveredelements="47"/>
      </class>
      <line num="60" type="method" name="__construct" visibility="public" complexity="5" crap="5" count="46"/>
      <line num="61" type="stmt" count="46"/>
      <line num="63" type="stmt" count="46"/>
      <line num="64" type="stmt" count="46"/>
      <line num="67" type="stmt" count="46"/>
      <line num="68" type="stmt" count="46"/>
      <line num="70" type="stmt" count="2"/>
      <line num="72" type="stmt" count="44"/>
      <line num="73" type="stmt" count="4"/>
      <line num="77" type="method" name="validate" visibility="public" complexity="9" crap="9" count="21"/>
      <line num="79" type="stmt" count="21"/>
      <line num="80" type="stmt" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="84" type="stmt" count="21"/>
      <line num="87" type="stmt" count="21"/>
      <line num="89" type="stmt" count="20"/>
      <line num="90" type="stmt" count="4"/>
      <line num="91" type="stmt" count="16"/>
      <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="101" type="stmt" count="19"/>
      <line num="102" type="stmt" count="15"/>
      <line num="104" type="stmt" count="4"/>
      <line num="106" type="stmt" count="1"/>
      <line num="109" type="stmt" count="3"/>
      <line num="113" type="method" name="checkSettings" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="124" type="stmt" count="2"/>
      <line num="127" type="stmt" count="6"/>
      <line num="130" type="method" name="stringifyValue" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="132" type="stmt" count="2"/>
      <line num="134" type="stmt" count="4"/>
      <line num="137" type="method" name="getHelpInfo" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="141" type="stmt" count="2"/>
      <line num="143" type="stmt" count="2"/>
      <metrics loc="147" ncloc="105" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="42" elements="47" coveredelements="47"/>
    </file>
    <file name="/src/src/TypeDef/UploadDef.php">
      <class name="Wikimedia\ParamValidator\TypeDef\UploadDef" namespace="global">
        <metrics complexity="21" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="67" elements="72" coveredelements="72"/>
      </class>
      <line num="36" type="method" name="getValue" visibility="public" complexity="6" crap="6" count="17"/>
      <line num="37" type="stmt" count="17"/>
      <line num="39" type="stmt" count="17"/>
      <line num="40" type="stmt" count="17"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="17"/>
      <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="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="58" type="stmt" count="17"/>
      <line num="74" type="method" name="validate" visibility="public" complexity="8" crap="8" count="18"/>
      <line num="75" type="stmt" count="18"/>
      <line num="77" type="stmt" count="18"/>
      <line num="78" type="stmt" count="18"/>
      <line num="79" type="stmt" count="18"/>
      <line num="80" type="stmt" count="18"/>
      <line num="81" type="stmt" count="18"/>
      <line num="82" type="stmt" count="18"/>
      <line num="83" type="stmt" count="18"/>
      <line num="84" type="stmt" count="18"/>
      <line num="86" type="stmt" count="18"/>
      <line num="88" type="stmt" count="2"/>
      <line num="89" type="stmt" count="2"/>
      <line num="92" type="stmt" count="16"/>
      <line num="93" type="stmt" count="16"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="15"/>
      <line num="96" type="stmt" count="7"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="99" type="stmt" count="7"/>
      <line num="100" type="stmt" count="7"/>
      <line num="101" type="stmt" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="7"/>
      <line num="104" type="stmt" count="7"/>
      <line num="105" type="stmt" count="7"/>
      <line num="106" type="stmt" count="7"/>
      <line num="107" type="stmt" count="7"/>
      <line num="108" type="stmt" count="7"/>
      <line num="109" type="stmt" count="7"/>
      <line num="110" type="stmt" count="7"/>
      <line num="111" type="stmt" count="8"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="1"/>
      <line num="124" type="stmt" count="2"/>
      <line num="128" type="method" name="checkSettings" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="129" type="stmt" count="5"/>
      <line num="131" type="stmt" count="5"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="143" type="stmt" count="5"/>
      <line num="146" type="method" name="stringifyValue" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="151" type="method" name="getHelpInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="156" type="stmt" count="1"/>
      <metrics loc="160" ncloc="121" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="67" elements="72" coveredelements="72"/>
    </file>
    <file name="/src/src/Util/UploadedFile.php">
      <class name="Wikimedia\ParamValidator\Util\UploadedFile" namespace="global">
        <metrics complexity="28" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="48" elements="56" coveredelements="56"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="39" type="stmt" count="3"/>
      <line num="40" type="stmt" count="3"/>
      <line num="47" type="method" name="checkError" visibility="private" complexity="13" crap="13" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" 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="56" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="85" type="method" name="getStream" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" 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="95" type="method" name="moveTo" visibility="public" complexity="6" crap="6" count="2"/>
      <line num="96" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="1"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="110" type="stmt" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="117" type="method" name="getSize" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="121" type="method" name="getError" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="125" type="method" name="getClientFilename" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="130" type="method" name="getClientMediaType" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <metrics loc="136" ncloc="112" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="48" elements="56" coveredelements="56"/>
    </file>
    <file name="/src/src/Util/UploadedFileStream.php">
      <class name="Wikimedia\ParamValidator\Util\UploadedFileStream" namespace="global">
        <metrics complexity="30" methods="19" coveredmethods="19" conditionals="0" coveredconditionals="0" statements="50" coveredstatements="50" elements="69" coveredelements="69"/>
      </class>
      <line num="37" type="method" name="quietCall" visibility="private" complexity="2" crap="2" count="16"/>
      <line num="38" type="stmt" count="16"/>
      <line num="39" type="stmt" count="16"/>
      <line num="40" type="stmt" count="16"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="44" type="stmt" count="14"/>
      <line num="50" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="51" type="stmt" count="16"/>
      <line num="58" type="method" name="checkOpen" visibility="private" complexity="2" crap="2" count="10"/>
      <line num="59" type="stmt" count="10"/>
      <line num="60" type="stmt" count="7"/>
      <line num="64" type="method" name="__destruct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="65" type="stmt" count="14"/>
      <line num="68" type="method" name="__toString" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="78" type="method" name="close" visibility="public" complexity="3" crap="3" count="14"/>
      <line num="79" type="stmt" count="14"/>
      <line num="83" type="stmt" count="14"/>
      <line num="84" type="stmt" count="2"/>
      <line num="87" type="stmt" count="14"/>
      <line num="91" type="method" name="detach" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="97" type="method" name="getSize" visibility="public" complexity="4" crap="4" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="101" 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="111" type="stmt" count="1"/>
      <line num="114" type="method" name="tell" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="119" type="method" name="eof" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="128" type="method" name="isSeekable" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="132" type="method" name="seek" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="133" type="stmt" count="8"/>
      <line num="134" type="stmt" count="7"/>
      <line num="137" type="method" name="rewind" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="141" type="method" name="isWritable" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="145" type="method" name="write" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="151" type="method" name="isReadable" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="155" type="method" name="read" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="160" type="method" name="getContents" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="161" type="stmt" count="3"/>
      <line num="162" type="stmt" count="3"/>
      <line num="165" type="method" name="getMetadata" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="166" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="171" type="stmt" count="1"/>
      <metrics loc="175" ncloc="140" classes="1" methods="19" coveredmethods="19" conditionals="0" coveredconditionals="0" statements="50" coveredstatements="50" elements="69" coveredelements="69"/>
    </file>
    <file name="/src/src/ValidationException.php">
      <class name="Wikimedia\ParamValidator\ValidationException" namespace="global">
        <metrics complexity="6" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="18" coveredelements="0"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="63" type="method" name="getFailureMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="71" type="method" name="getParamName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="79" type="method" name="getParamValue" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="87" type="method" name="getSettings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <metrics loc="92" ncloc="52" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="18" coveredelements="0"/>
    </file>
    <metrics files="19" loc="3353" ncloc="2260" classes="18" methods="127" coveredmethods="118" conditionals="0" coveredconditionals="0" statements="1047" coveredstatements="1025" elements="1174" coveredelements="1143"/>
  </project>
</coverage>
