scrapy/coverage.xml

11299 lines
491 KiB
XML

<?xml version="1.0" ?>
<coverage branch-rate="0.02931" branches-covered="89" branches-valid="3036" complexity="0" line-rate="0.08618" lines-covered="894" lines-valid="10374" timestamp="1626276313557" version="5.5">
<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
<sources>
<source>/Users/akshaysharma/Desktop/git/scrapy/scrapy</source>
</sources>
<packages>
<package branch-rate="0.08955" complexity="0" line-rate="0.1106" name=".">
<classes>
<class branch-rate="0.75" complexity="0" filename="__init__.py" line-rate="0.8947" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="9"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="18"/>
<line hits="1" number="25"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
<line hits="1" number="27"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="32" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="1" number="37"/>
<line hits="1" number="40"/>
<line hits="1" number="41"/>
<line hits="1" number="42"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="__main__.py" line-rate="0" name="__main__.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,4" number="3"/>
<line hits="0" number="4"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="cmdline.py" line-rate="0" name="cmdline.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,21" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,22" number="21"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="21,28" number="22"/>
<line hits="0" number="28"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,37" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,35" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,48" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,47" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,57" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,63" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,66" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,74" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,85" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,88" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,104" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,106" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="109"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="111,113" number="110"/>
<line hits="0" number="111"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,123" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="129,131" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="132,135" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="0" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="149"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="151,153" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="153"/>
<line hits="0" number="156"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="158,159" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="161"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,163" number="162"/>
<line hits="0" number="163"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,167" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="173"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="crawler.py" line-rate="0" name="crawler.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="36"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,45" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,48" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,67" number="62"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,68" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,83" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,95" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="101"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,108" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,131" number="125"/>
<line hits="0" number="131"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="150,151" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="158"/>
<line hits="0" number="160"/>
<line hits="0" number="163"/>
<line hits="0" number="165"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="188,191" number="187"/>
<line hits="0" number="188"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="196"/>
<line hits="0" number="197"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line hits="0" number="201"/>
<line hits="0" number="202"/>
<line hits="0" number="203"/>
<line hits="0" number="205"/>
<line hits="0" number="207"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="219,222" number="218"/>
<line hits="0" number="219"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="223,224" number="222"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="226"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="228,229" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="229"/>
<line hits="0" number="231"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="237"/>
<line hits="0" number="239"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,248" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="250"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,252" number="251"/>
<line hits="0" number="252"/>
<line hits="0" number="255"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="281"/>
<line hits="0" number="282"/>
<line hits="0" number="283"/>
<line hits="0" number="285"/>
<line hits="0" number="286"/>
<line hits="0" number="287"/>
<line hits="0" number="288"/>
<line hits="0" number="289"/>
<line hits="0" number="291"/>
<line hits="0" number="293"/>
<line hits="0" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="296"/>
<line hits="0" number="297"/>
<line hits="0" number="299"/>
<line hits="0" number="301"/>
<line hits="0" number="313"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="315,321" number="314"/>
<line hits="0" number="315"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="318,319" number="317"/>
<line hits="0" number="318"/>
<line hits="0" number="319"/>
<line hits="0" number="321"/>
<line hits="0" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="324"/>
<line hits="0" number="325"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line hits="0" number="329"/>
<line hits="0" number="330"/>
<line hits="0" number="331"/>
<line hits="0" number="332"/>
<line hits="0" number="334"/>
<line hits="0" number="335"/>
<line hits="0" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="338"/>
<line hits="0" number="339"/>
<line hits="0" number="341"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="343,344" number="342"/>
<line hits="0" number="343"/>
<line hits="0" number="344"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="dupefilters.py" line-rate="0" name="dupefilters.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="36"/>
<line hits="0" number="39"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,62" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,65" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,72" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,79" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="80,86" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="exceptions.py" line-rate="0.7778" name="exceptions.py">
<methods/>
<lines>
<line hits="1" number="11"/>
<line hits="1" number="13"/>
<line hits="1" number="16"/>
<line hits="1" number="21"/>
<line hits="1" number="27"/>
<line hits="1" number="31"/>
<line hits="1" number="33"/>
<line hits="1" number="36"/>
<line hits="1" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="1" number="44"/>
<line hits="1" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="1" number="59"/>
<line hits="1" number="61"/>
<line hits="1" number="64"/>
<line hits="1" number="66"/>
<line hits="1" number="72"/>
<line hits="1" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="1" number="80"/>
<line hits="1" number="84"/>
<line hits="1" number="87"/>
<line hits="1" number="89"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="exporters.py" line-rate="0" name="exporters.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,42" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,66" number="63"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,72" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,70" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,75" number="72"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,77" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,78" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,82" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,117" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="127"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="129,131" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="138"/>
<line hits="0" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="0" number="143"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,146" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,150" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,154" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="156"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="166,167" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="169"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="177"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="179,183" number="178"/>
<line hits="0" number="179"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="181,182" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="184,188" number="183"/>
<line hits="0" number="184"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,187" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="189,191" number="188"/>
<line hits="0" number="189"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="193"/>
<line hits="0" number="196"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="201,202" number="200"/>
<line hits="0" number="201"/>
<line hits="0" number="202"/>
<line hits="0" number="203"/>
<line hits="0" number="211"/>
<line hits="0" number="212"/>
<line hits="0" number="213"/>
<line hits="0" number="215"/>
<line hits="0" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="219"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="221,225" number="220"/>
<line hits="0" number="221"/>
<line hits="0" number="222"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="227"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="229,232" number="228"/>
<line hits="0" number="229"/>
<line hits="0" number="230"/>
<line hits="0" number="232"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,235" number="234"/>
<line hits="0" number="235"/>
<line hits="0" number="237"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,239" number="238"/>
<line hits="0" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="244"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,246" number="245"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="248,249" number="246"/>
<line hits="0" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="250"/>
<line hits="0" number="253"/>
<line hits="0" number="255"/>
<line hits="0" number="256"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
<line hits="0" number="260"/>
<line hits="0" number="261"/>
<line hits="0" number="262"/>
<line hits="0" number="265"/>
<line hits="0" number="274"/>
<line hits="0" number="275"/>
<line hits="0" number="276"/>
<line hits="0" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="282"/>
<line hits="0" number="284"/>
<line hits="0" number="285"/>
<line hits="0" number="286"/>
<line hits="0" number="288"/>
<line hits="0" number="289"/>
<line hits="0" number="290"/>
<line hits="0" number="293"/>
<line hits="0" number="303"/>
<line hits="0" number="304"/>
<line hits="0" number="305"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="307,310" number="306"/>
<line hits="0" number="307"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,311" number="310"/>
<line hits="0" number="311"/>
<line hits="0" number="313"/>
<line hits="0" number="314"/>
<line hits="0" number="315"/>
<line hits="0" number="317"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="319,320" number="318"/>
<line hits="0" number="319"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="321,322" number="320"/>
<line hits="0" number="321"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="323,324" number="322"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="323"/>
<line hits="0" number="324"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="326,327" number="325"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line hits="0" number="329"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,331" number="330"/>
<line hits="0" number="331"/>
<line hits="0" number="332"/>
<line hits="0" number="334"/>
<line hits="0" number="335"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="337,338" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="338"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="extension.py" line-rate="0" name="extension.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="interfaces.py" line-rate="0" name="interfaces.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="13"/>
<line hits="0" number="17"/>
</lines>
</class>
<class branch-rate="0.3077" complexity="0" filename="item.py" line-rate="0.6" name="item.py">
<methods/>
<lines>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="18"/>
<line hits="1" number="23"/>
<line hits="1" number="26"/>
<line hits="1" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,31" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="1" number="34"/>
<line hits="1" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,43" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="1" number="46"/>
<line hits="1" number="50"/>
<line hits="1" number="56"/>
<line hits="1" number="57"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="58"/>
<line hits="1" number="59"/>
<line hits="1" number="61"/>
<line hits="1" number="62"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="63"/>
<line hits="1" number="64"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="66" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="67"/>
<line hits="1" number="68"/>
<line hits="1" number="70"/>
<line hits="1" number="71"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="73" number="72"/>
<line hits="0" number="73"/>
<line hits="1" number="74"/>
<line hits="1" number="77"/>
<line hits="1" number="79"/>
<line hits="1" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="1" number="87"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,90" number="89"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,91" number="90"/>
<line hits="0" number="91"/>
<line hits="1" number="93"/>
<line hits="0" number="94"/>
<line hits="1" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,100" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="1" number="102"/>
<line hits="0" number="103"/>
<line hits="1" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,108" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="1" number="110"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="112,113" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="1" number="115"/>
<line hits="0" number="116"/>
<line hits="1" number="118"/>
<line hits="0" number="119"/>
<line hits="1" number="121"/>
<line hits="1" number="123"/>
<line hits="0" number="124"/>
<line hits="1" number="126"/>
<line hits="0" number="127"/>
<line hits="1" number="129"/>
<line hits="0" number="130"/>
<line hits="1" number="132"/>
<line hits="0" number="135"/>
<line hits="1" number="138"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="link.py" line-rate="0.375" name="link.py">
<methods/>
<lines>
<line hits="1" number="9"/>
<line hits="1" number="27"/>
<line hits="1" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,33" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="1" number="38"/>
<line hits="0" number="39"/>
<line hits="1" number="46"/>
<line hits="0" number="47"/>
<line hits="1" number="49"/>
<line hits="0" number="50"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="logformatter.py" line-rate="0" name="logformatter.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,78" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="99"/>
<line hits="0" number="105"/>
<line hits="0" number="113"/>
<line hits="0" number="118"/>
<line hits="0" number="127"/>
<line hits="0" number="133"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="135,138" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="145"/>
<line hits="0" number="147"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="mail.py" line-rate="0" name="mail.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="26"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,32" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,66" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,80" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="81,83" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,92" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,94" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,97" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,104" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="102"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,112" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="128"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="138"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="141,143" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="middleware.py" line-rate="0" name="middleware.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,26" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,50" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,45" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="50"/>
<line hits="0" number="54"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,63" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,64" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="pqueues.py" line-rate="0" name="pqueues.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,24" number="21"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,70" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,73" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="89,90" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,93" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="97,98" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="101,105" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,104" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="115,116" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="122,124" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="126"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="127"/>
<line hits="0" number="130"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="135"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="136"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="141"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="144,145" number="143"/>
<line hits="0" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="148"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="158"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="160,162" number="159"/>
<line hits="0" number="160"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="163,171" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
<line hits="0" number="176"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,178" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="192,194" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="196"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="198,199" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="201"/>
<line hits="0" number="202"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="204,205" number="203"/>
<line hits="0" number="204"/>
<line hits="0" number="205"/>
<line hits="0" number="206"/>
<line hits="0" number="208"/>
<line hits="0" number="215"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="217,218" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="218"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="222"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,224" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="227"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="228"/>
<line hits="0" number="230"/>
<line hits="0" number="231"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="resolver.py" line-rate="0" name="resolver.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="10"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="14,15" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,29" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,42" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,46" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,62" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,83" number="62"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,80" number="79"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,85" number="83"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,100" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="106"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="120"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="122,123" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
</lines>
</class>
<class branch-rate="0.8929" complexity="0" filename="responsetypes.py" line-rate="0.9265" name="responsetypes.py">
<methods/>
<lines>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="15"/>
<line hits="1" number="17"/>
<line hits="1" number="34"/>
<line hits="1" number="35"/>
<line hits="1" number="36"/>
<line hits="1" number="37"/>
<line hits="1" number="38"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
<line hits="1" number="40"/>
<line hits="1" number="42"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="45" number="44"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
<line hits="1" number="47"/>
<line hits="1" number="49"/>
<line hits="1" number="50"/>
<line hits="1" number="52"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
<line hits="1" number="56"/>
<line hits="1" number="57"/>
<line hits="1" number="58"/>
<line hits="1" number="60"/>
<line hits="1" number="61"/>
<line hits="1" number="62"/>
<line hits="1" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="1" number="69"/>
<line hits="1" number="72"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
<line hits="1" number="74"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
<line hits="1" number="79"/>
<line hits="1" number="80"/>
<line hits="1" number="82"/>
<line hits="1" number="84"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
<line hits="1" number="86"/>
<line hits="1" number="88"/>
<line hits="1" number="90"/>
<line hits="1" number="95"/>
<line hits="1" number="96"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
<line hits="1" number="98"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="99"/>
<line hits="1" number="100"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="101"/>
<line hits="1" number="102"/>
<line hits="1" number="104"/>
<line hits="1" number="106"/>
<line hits="1" number="109"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="110"/>
<line hits="1" number="111"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="112"/>
<line hits="1" number="113"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="115" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="117" number="116"/>
<line hits="0" number="117"/>
<line hits="1" number="118"/>
<line hits="1" number="121"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="robotstxt.py" line-rate="0" name="robotstxt.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="14,16" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="55"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="102"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="shell.py" line-rate="0" name="shell.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,33" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,44" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,46" number="44"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="47,50" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,63" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,69" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,82" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,92" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,102" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,107" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,128" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,132" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="142,144" number="141"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="141,143" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="144"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="146,150" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="153"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="159"/>
<line hits="0" number="161"/>
<line hits="0" number="164"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,188" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="signalmanager.py" line-rate="0" name="signalmanager.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="signals.py" line-rate="1" name="signals.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line hits="1" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="21"/>
<line hits="1" number="22"/>
<line hits="1" number="23"/>
<line hits="1" number="24"/>
<line hits="1" number="27"/>
<line hits="1" number="28"/>
<line hits="1" number="29"/>
<line hits="1" number="31"/>
<line hits="1" number="33"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spiderloader.py" line-rate="0" name="spiderloader.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,14" number="12"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,35" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,28" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,36" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,45" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,63" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,52" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,62" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="83"/>
<line hits="0" number="88"/>
<line hits="0" number="92"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="squeues.py" line-rate="0" name="squeues.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,39" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,53" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,78" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="89,90" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="95"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="0" number="102"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="127"/>
<line hits="0" number="132"/>
<line hits="0" number="137"/>
<line hits="0" number="142"/>
<line hits="0" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="166"/>
<line hits="0" number="172"/>
<line hits="0" number="178"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="statscollectors.py" line-rate="0" name="statscollectors.py">
<methods/>
<lines>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,48" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="54"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="commands">
<classes>
<class branch-rate="0" complexity="0" filename="commands/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,30" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,90" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="91,94" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,97" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,101" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,102" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="104"/>
<line hits="0" number="108"/>
<line hits="0" number="111"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,133" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="139"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/bench.py" line-rate="0" name="bench.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,58" number="57"/>
<line hits="0" number="58"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/check.py" line-rate="0" name="check.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,32" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="28,29" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,34" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,37" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="57"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,61" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,82" number="70"/>
<line hits="0" number="71"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,74" number="72"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,78" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,77" number="76"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,79" number="78"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,90" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,84" number="83"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="85,86" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,88" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/crawl.py" line-rate="0" name="crawl.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,18" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,20" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,27" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,33" number="29"/>
<line hits="0" number="33"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/edit.py" line-rate="0" name="edit.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,31" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/fetch.py" line-rate="0" name="fetch.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,37" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,38" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,46" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="53,54" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,61" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,68" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,70" number="69"/>
<line hits="0" number="70"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/genspider.py" line-rate="0" name="genspider.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="21,22" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,53" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,59" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,58" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,62" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,69" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,74" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,76" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,81" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,93" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,101" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="106,107" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,113" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="112,114" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="119,124" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="120,122" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="139,142" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="142"/>
<line hits="0" number="144"/>
<line hits="0" number="146"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/list.py" line-rate="0" name="list.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,14" number="13"/>
<line hits="0" number="14"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/parse.py" line-rate="0" name="parse.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,63" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,65" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,79" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,81" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="82"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,91" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,107" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,101" number="100"/>
<line hits="0" number="101"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,104" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,105" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="109,110" number="108"/>
<line hits="0" number="109"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,111" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="118,122" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="119,120" number="118"/>
<line hits="0" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="117,121" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="124"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,130" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,127" number="126"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,128" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="130"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="137,143" number="136"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="143"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,147" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="147"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,157" number="156"/>
<line hits="0" number="157"/>
<line hits="0" number="160"/>
<line hits="0" number="161"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="164,167" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="167"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="169,181" number="168"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="170,171" number="169"/>
<line hits="0" number="170"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="172,179" number="171"/>
<line hits="0" number="172"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="175,181" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="177"/>
<line hits="0" number="179"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="182,191" number="181"/>
<line hits="0" number="182"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="184,186" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="186"/>
<line hits="0" number="188"/>
<line hits="0" number="191"/>
<line hits="0" number="193"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="195,198" number="194"/>
<line hits="0" number="195"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="197,198" number="196"/>
<line hits="0" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="201"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="203,209" number="202"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="204,207" number="203"/>
<line hits="0" number="204"/>
<line hits="0" number="205"/>
<line hits="0" number="206"/>
<line hits="0" number="207"/>
<line hits="0" number="209"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="213,216" number="212"/>
<line hits="0" number="213"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="217,219" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="221"/>
<line hits="0" number="222"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="230"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,232" number="231"/>
<line hits="0" number="232"/>
<line hits="0" number="233"/>
<line hits="0" number="234"/>
<line hits="0" number="235"/>
<line hits="0" number="238"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,240" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="243"/>
<line hits="0" number="246"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="249,251" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="251"/>
<line hits="0" number="254"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,257" number="256"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/runspider.py" line-rate="0" name="runspider.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="15,16" number="14"/>
<line hits="0" number="15"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,18" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,43" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,46" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,53" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,59" number="58"/>
<line hits="0" number="59"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/settings.py" line-rate="0" name="settings.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,40" number="34"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,39" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,44" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,46" number="44"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,47" number="46"/>
<line hits="0" number="47"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/shell.py" line-rate="0" name="shell.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="43"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="53,55" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,60" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,66" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/startproject.py" line-rate="0" name="startproject.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,54" number="51"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,57" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,76" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,88" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,80" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="93,95" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="99,101" number="98"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,106" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,110" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="113,116" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="125"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="commands/version.py" line-rate="0" name="version.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,29" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,26" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,27" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="commands/view.py" line-rate="0" name="view.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="contracts">
<classes>
<class branch-rate="0" complexity="0" filename="contracts/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,43" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,34" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="47,67" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,58" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,78" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,87" number="83"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="92,100" number="91"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="91,95" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,112" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="112"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,117" number="116"/>
<line hits="0" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="119,123" number="118"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="118,120" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="123"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="131,133" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="133"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,137" number="136"/>
<line hits="0" number="137"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="141,142" number="140"/>
<line hits="0" number="141"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="143,145" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line hits="0" number="151"/>
<line hits="0" number="153"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="178"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,180" number="179"/>
<line hits="0" number="180"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="contracts/default.py" line-rate="0" name="default.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="11"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="37"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,58" number="51"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,65" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="81,84" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="80,82" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,87" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,90" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="95"/>
<line hits="0" number="100"/>
<line hits="0" number="102"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,104" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,105" number="104"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,106" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,107" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="core">
<classes>
<class branch-rate="1" complexity="0" filename="core/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="core/engine.py" line-rate="0" name="engine.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,60" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,64" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,64" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,91" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,97" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="111,113" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="123,124" number="122"/>
<line hits="0" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="125,126" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="139,141" number="138"/>
<line hits="0" number="139"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="142,144" number="141"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,155" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="148,149" number="147"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="153"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,156" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="170"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="172,174" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="174"/>
<line hits="0" number="175"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,179" number="176"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,180" number="179"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,183" number="180"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,184" number="183"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,187" number="184"/>
<line hits="0" number="187"/>
<line hits="0" number="189"/>
<line hits="0" number="192"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="195,198" number="194"/>
<line hits="0" number="195"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="199,202" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line hits="0" number="202"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,210" number="203"/>
<line hits="0" number="210"/>
<line hits="0" number="212"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="214,219" number="213"/>
<line hits="0" number="214"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="220,221" number="219"/>
<line hits="0" number="220"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="222,223" number="221"/>
<line hits="0" number="222"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="224,225" number="223"/>
<line hits="0" number="224"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="226,227" number="225"/>
<line hits="0" number="226"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="228,229" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="229"/>
<line hits="0" number="231"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="234,241" number="233"/>
<line hits="0" number="234"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="240,241" number="239"/>
<line hits="0" number="240"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="242,243" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="243"/>
<line hits="0" number="244"/>
<line hits="0" number="246"/>
<line hits="0" number="247"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,249" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="251"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="254,256" number="253"/>
<line hits="0" number="254"/>
<line hits="0" number="256"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="262,263" number="261"/>
<line hits="0" number="262"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="264,265" number="263"/>
<line hits="0" number="264"/>
<line hits="0" number="265"/>
<line hits="0" number="267"/>
<line hits="0" number="270"/>
<line hits="0" number="271"/>
<line hits="0" number="272"/>
<line hits="0" number="274"/>
<line hits="0" number="275"/>
<line hits="0" number="277"/>
<line hits="0" number="279"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="281,282" number="280"/>
<line hits="0" number="281"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="283,294" number="282"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="284,285" number="283"/>
<line hits="0" number="284"/>
<line hits="0" number="285"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="287,288" number="286"/>
<line hits="0" number="287"/>
<line hits="0" number="288"/>
<line hits="0" number="294"/>
<line hits="0" number="296"/>
<line hits="0" number="297"/>
<line hits="0" number="298"/>
<line hits="0" number="300"/>
<line hits="0" number="301"/>
<line hits="0" number="302"/>
<line hits="0" number="303"/>
<line hits="0" number="305"/>
<line hits="0" number="306"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="308,309" number="307"/>
<line hits="0" number="308"/>
<line hits="0" number="309"/>
<line hits="0" number="310"/>
<line hits="0" number="311"/>
<line hits="0" number="312"/>
<line hits="0" number="313"/>
<line hits="0" number="314"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="316,317" number="315"/>
<line hits="0" number="316"/>
<line hits="0" number="317"/>
<line hits="0" number="318"/>
<line hits="0" number="319"/>
<line hits="0" number="320"/>
<line hits="0" number="321"/>
<line hits="0" number="323"/>
<line hits="0" number="330"/>
<line hits="0" number="331"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,333,334" number="332"/>
<line hits="0" number="333"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,335" number="334"/>
<line hits="0" number="335"/>
<line hits="0" number="337"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="340,342" number="339"/>
<line hits="0" number="340"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="343,345" number="342"/>
<line hits="0" number="343"/>
<line hits="0" number="345"/>
<line hits="0" number="347"/>
<line hits="0" number="349"/>
<line hits="0" number="350"/>
<line hits="0" number="351"/>
<line hits="0" number="352"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,355" number="354"/>
<line hits="0" number="355"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,358" number="357"/>
<line hits="0" number="358"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="361,364" number="360"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,362" number="361"/>
<line hits="0" number="362"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,367" number="364"/>
<line hits="0" number="367"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,370" number="369"/>
<line hits="0" number="370"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,374" number="372"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,375" number="374"/>
<line hits="0" number="375"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,378" number="377"/>
<line hits="0" number="378"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,382" number="380"/>
<line hits="0" number="382"/>
<line hits="0" number="384"/>
<line hits="0" number="385"/>
<line hits="0" number="386"/>
<line hits="0" number="391"/>
<line hits="0" number="393"/>
<line hits="0" number="394"/>
<line hits="0" number="395"/>
<line hits="0" number="397"/>
<line hits="0" number="398"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="405,406" number="404"/>
<line hits="0" number="405"/>
<line hits="0" number="406"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/scheduler.py" line-rate="0" name="scheduler.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="35"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="57"/>
<line hits="0" number="59"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="110"/>
<line hits="0" number="113"/>
<line hits="0" number="116"/>
<line hits="0" number="166"/>
<line hits="0" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="203"/>
<line hits="0" number="204"/>
<line hits="0" number="206"/>
<line hits="0" number="212"/>
<line hits="0" number="213"/>
<line hits="0" number="214"/>
<line hits="0" number="215"/>
<line hits="0" number="217"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="223,226" number="222"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="226"/>
<line hits="0" number="228"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="239,241" number="238"/>
<line hits="0" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="241"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="243,245" number="242"/>
<line hits="0" number="243"/>
<line hits="0" number="245"/>
<line hits="0" number="246"/>
<line hits="0" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="250"/>
<line hits="0" number="259"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="261,263" number="260"/>
<line hits="0" number="261"/>
<line hits="0" number="263"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="265,266" number="264"/>
<line hits="0" number="265"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="267,268" number="266"/>
<line hits="0" number="267"/>
<line hits="0" number="268"/>
<line hits="0" number="270"/>
<line hits="0" number="274"/>
<line hits="0" number="276"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="278,279" number="277"/>
<line hits="0" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="281"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="283,289" number="282"/>
<line hits="0" number="283"/>
<line hits="0" number="286"/>
<line hits="0" number="288"/>
<line hits="0" number="289"/>
<line hits="0" number="290"/>
<line hits="0" number="292"/>
<line hits="0" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="297"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="299,300" number="298"/>
<line hits="0" number="299"/>
<line hits="0" number="300"/>
<line hits="0" number="302"/>
<line hits="0" number="304"/>
<line hits="0" number="310"/>
<line hits="0" number="312"/>
<line hits="0" number="313"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="320,322" number="319"/>
<line hits="0" number="320"/>
<line hits="0" number="322"/>
<line hits="0" number="324"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="327,331" number="326"/>
<line hits="0" number="327"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="329,330" number="328"/>
<line hits="0" number="329"/>
<line hits="0" number="330"/>
<line hits="0" number="331"/>
<line hits="0" number="333"/>
<line hits="0" number="334"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="336,337" number="335"/>
<line hits="0" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="338"/>
<line hits="0" number="340"/>
<line hits="0" number="341"/>
<line hits="0" number="342"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/scraper.py" line-rate="0" name="scraper.py">
<methods/>
<lines>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="22"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,47" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="58,60" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,91" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line hits="0" number="98"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,103" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,108" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,122" number="117"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,128" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="131"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="136,137" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="147,149" number="146"/>
<line hits="0" number="147"/>
<line hits="0" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="154,161" number="153"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="155,156" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="170,172" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="178"/>
<line hits="0" number="183"/>
<line hits="0" number="188"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="190,191" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="0" number="196"/>
<line hits="0" number="201"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="203,204" number="202"/>
<line hits="0" number="203"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="205,209" number="204"/>
<line hits="0" number="205"/>
<line hits="0" number="206"/>
<line hits="0" number="207"/>
<line hits="0" number="208"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="210,212" number="209"/>
<line hits="0" number="210"/>
<line hits="0" number="212"/>
<line hits="0" number="213"/>
<line hits="0" number="218"/>
<line hits="0" number="220"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="230,247" number="229"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="231,238" number="230"/>
<line hits="0" number="231"/>
<line hits="0" number="232"/>
<line hits="0" number="238"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="240,247" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="242"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="248,249" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="251"/>
<line hits="0" number="254"/>
<line hits="0" number="255"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="257,273" number="256"/>
<line hits="0" number="257"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="259,266" number="258"/>
<line hits="0" number="259"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="261,262" number="260"/>
<line hits="0" number="261"/>
<line hits="0" number="262"/>
<line hits="0" number="266"/>
<line hits="0" number="267"/>
<line hits="0" number="269"/>
<line hits="0" number="273"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="275,276" number="274"/>
<line hits="0" number="275"/>
<line hits="0" number="276"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/spidermw.py" line-rate="0" name="spidermw.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,60" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,53" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,58" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,66" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,72" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,80" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,95" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,84" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,89" number="85"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,92" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="97"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,122" number="104"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="106,107" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="113,114" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="116,118" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="118"/>
<line hits="0" number="120"/>
<line hits="0" number="122"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="129"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="core.downloader">
<classes>
<class branch-rate="0" complexity="0" filename="core/downloader/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,36" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,40" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,63" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,66" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,106" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="106"/>
<line hits="0" number="108"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="110,112" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,116" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="138,141" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="144,150" number="143"/>
<line hits="0" number="144"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="146,150" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="147"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,151" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="150,157" number="156"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="160"/>
<line hits="0" number="164"/>
<line hits="0" number="168"/>
<line hits="0" number="169"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
<line hits="0" number="180"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="185"/>
<line hits="0" number="188"/>
<line hits="0" number="190"/>
<line hits="0" number="192"/>
<line hits="0" number="193"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,195" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="197"/>
<line hits="0" number="198"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,200" number="199"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="199,201" number="200"/>
<line hits="0" number="201"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/contextfactory.py" line-rate="0" name="contextfactory.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="16,17" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,34" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="54"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,73" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="90"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="104,120" number="102"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="131"/>
<line hits="0" number="133"/>
<line hits="0" number="138"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/middleware.py" line-rate="0" name="middleware.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,31" number="29"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,33" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,34" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,48" number="39"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,46" number="41"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,47" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="53,54" number="52"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,57" number="54"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="58,66" number="57"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,64" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,65" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,80" number="71"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,78" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,79" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/tls.py" line-rate="0" name="tls.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="30"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="47,48" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,64" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,64" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,71" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="78"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/webclient.py" line-rate="0" name="webclient.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,25" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,52" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,51" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,55" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,77" number="75"/>
<line hits="0" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,80" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,90" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="99"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,120" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="141"/>
<line hits="0" number="143"/>
<line hits="0" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="150,154" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,155" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="160"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="162,163" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="170,172" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="178"/>
<line hits="0" number="189"/>
<line hits="0" number="191"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,193" number="192"/>
<line hits="0" number="193"/>
<line hits="0" number="194"/>
<line hits="0" number="196"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,198" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="201"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,208" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="211"/>
<line hits="0" number="212"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="core.downloader.handlers">
<classes>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,30" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,44" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,52" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="58,60" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,75" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,80" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,81" number="80"/>
<line hits="0" number="81"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/datauri.py" line-rate="0" name="datauri.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,22" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="core/downloader/handlers/file.py" line-rate="0" name="file.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/ftp.py" line-rate="0" name="ftp.py">
<methods/>
<lines>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="62"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,119" number="113"/>
<line hits="0" number="114"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="116,119" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="core/downloader/handlers/http.py" line-rate="0" name="http.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/http10.py" line-rate="0" name="http10.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,37" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/http11.py" line-rate="0" name="http11.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="31"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,83" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="89"/>
<line hits="0" number="93"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="135,136" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="140,144" number="138"/>
<line hits="0" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,148" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="154"/>
<line hits="0" number="156"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="166"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="182,183" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="187"/>
<line hits="0" number="195"/>
<line hits="0" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="201"/>
<line hits="0" number="202"/>
<line hits="0" number="212"/>
<line hits="0" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="228"/>
<line hits="0" number="230"/>
<line hits="0" number="231"/>
<line hits="0" number="237"/>
<line hits="0" number="239"/>
<line hits="0" number="245"/>
<line hits="0" number="256"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="260"/>
<line hits="0" number="262"/>
<line hits="0" number="264"/>
<line hits="0" number="265"/>
<line hits="0" number="266"/>
<line hits="0" number="267"/>
<line hits="0" number="268"/>
<line hits="0" number="269"/>
<line hits="0" number="270"/>
<line hits="0" number="271"/>
<line hits="0" number="272"/>
<line hits="0" number="274"/>
<line hits="0" number="275"/>
<line hits="0" number="276"/>
<line hits="0" number="277"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="279,312" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="281"/>
<line hits="0" number="282"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="284,292" number="283"/>
<line hits="0" number="284"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="293,304" number="292"/>
<line hits="0" number="293"/>
<line hits="0" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="304"/>
<line hits="0" number="312"/>
<line hits="0" number="320"/>
<line hits="0" number="321"/>
<line hits="0" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line hits="0" number="328"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="330,331" number="329"/>
<line hits="0" number="330"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="332,334" number="331"/>
<line hits="0" number="332"/>
<line hits="0" number="334"/>
<line hits="0" number="335"/>
<line hits="0" number="336"/>
<line hits="0" number="338"/>
<line hits="0" number="340"/>
<line hits="0" number="341"/>
<line hits="0" number="343"/>
<line hits="0" number="344"/>
<line hits="0" number="345"/>
<line hits="0" number="347"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="349,353" number="348"/>
<line hits="0" number="349"/>
<line hits="0" number="350"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="354,356" number="353"/>
<line hits="0" number="354"/>
<line hits="0" number="356"/>
<line hits="0" number="358"/>
<line hits="0" number="359"/>
<line hits="0" number="360"/>
<line hits="0" number="362"/>
<line hits="0" number="364"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="366,367" number="365"/>
<line hits="0" number="366"/>
<line hits="0" number="367"/>
<line hits="0" number="368"/>
<line hits="0" number="370"/>
<line hits="0" number="371"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="379,395" number="378"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="378,380" number="379"/>
<line hits="0" number="380"/>
<line hits="0" number="382"/>
<line hits="0" number="383"/>
<line hits="0" number="384"/>
<line hits="0" number="385"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="396,404" number="395"/>
<line hits="0" number="396"/>
<line hits="0" number="404"/>
<line hits="0" number="405"/>
<line hits="0" number="406"/>
<line hits="0" number="407"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="410,419" number="409"/>
<line hits="0" number="410"/>
<line hits="0" number="412"/>
<line hits="0" number="414"/>
<line hits="0" number="416"/>
<line hits="0" number="417"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="420,424" number="419"/>
<line hits="0" number="420"/>
<line hits="0" number="424"/>
<line hits="0" number="426"/>
<line hits="0" number="428"/>
<line hits="0" number="429"/>
<line hits="0" number="442"/>
<line hits="0" number="444"/>
<line hits="0" number="446"/>
<line hits="0" number="447"/>
<line hits="0" number="448"/>
<line hits="0" number="449"/>
<line hits="0" number="450"/>
<line hits="0" number="451"/>
<line hits="0" number="452"/>
<line hits="0" number="453"/>
<line hits="0" number="454"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="465,467" number="464"/>
<line hits="0" number="465"/>
<line hits="0" number="466"/>
<line hits="0" number="467"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="473,488" number="470"/>
<line hits="0" number="473"/>
<line hits="0" number="474"/>
<line hits="0" number="475"/>
<line hits="0" number="477"/>
<line hits="0" number="478"/>
<line hits="0" number="479"/>
<line hits="0" number="481"/>
<line hits="0" number="482"/>
<line hits="0" number="484"/>
<line hits="0" number="485"/>
<line hits="0" number="488"/>
<line hits="0" number="490"/>
<line hits="0" number="491"/>
<line hits="0" number="492"/>
<line hits="0" number="493"/>
<line hits="0" number="494"/>
<line hits="0" number="495"/>
<line hits="0" number="496"/>
<line hits="0" number="497"/>
<line hits="0" number="498"/>
<line hits="0" number="499"/>
<line hits="0" number="500"/>
<line hits="0" number="501"/>
<line hits="0" number="502"/>
<line hits="0" number="503"/>
<line hits="0" number="505"/>
<line hits="0" number="506"/>
<line hits="0" number="515"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="517,520" number="516"/>
<line hits="0" number="517"/>
<line hits="0" number="518"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,521" number="520"/>
<line hits="0" number="521"/>
<line hits="0" number="523"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="526,528" number="525"/>
<line hits="0" number="526"/>
<line hits="0" number="528"/>
<line hits="0" number="529"/>
<line hits="0" number="531"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="538,546" number="537"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="537,539" number="538"/>
<line hits="0" number="539"/>
<line hits="0" number="541"/>
<line hits="0" number="542"/>
<line hits="0" number="543"/>
<line hits="0" number="544"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="547,556" number="546"/>
<line hits="0" number="547"/>
<line hits="0" number="553"/>
<line hits="0" number="554"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,557" number="556"/>
<line hits="0" number="557"/>
<line hits="0" number="558"/>
<line hits="0" number="563"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="565,567" number="564"/>
<line hits="0" number="565"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="568,571" number="567"/>
<line hits="0" number="568"/>
<line hits="0" number="569"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="572,575" number="571"/>
<line hits="0" number="572"/>
<line hits="0" number="573"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,576,587" number="575"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="577,580" number="576"/>
<line hits="0" number="577"/>
<line hits="0" number="578"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="581,587" number="580"/>
<line hits="0" number="581"/>
<line hits="0" number="585"/>
<line hits="0" number="587"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/http2.py" line-rate="0" name="http2.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,92" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,80" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,83" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="92"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="121,124" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/downloader/handlers/s3.py" line-rate="0" name="s3.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,19" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,21" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,27" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,30" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,43" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="43"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,62" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,73" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="73"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="core.http2">
<classes>
<class branch-rate="1" complexity="0" filename="core/http2/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="core/http2/agent.py" line-rate="0" name="agent.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="26"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,41" number="32"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,47" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,73" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,81" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,91" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="118"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,130" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="143"/>
<line hits="0" number="150"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="155"/>
<line hits="0" number="157"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/http2/protocol.py" line-rate="0" name="protocol.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="33"/>
<line hits="0" number="36"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,71" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="91"/>
<line hits="0" number="94"/>
<line hits="0" number="98"/>
<line hits="0" number="102"/>
<line hits="0" number="106"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="141"/>
<line hits="0" number="143"/>
<line hits="0" number="144"/>
<line hits="0" number="150"/>
<line hits="0" number="155"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,165" number="160"/>
<line hits="0" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="170"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="178"/>
<line hits="0" number="181"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
<line hits="0" number="191"/>
<line hits="0" number="196"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="201"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="203,205" number="202"/>
<line hits="0" number="203"/>
<line hits="0" number="205"/>
<line hits="0" number="206"/>
<line hits="0" number="209"/>
<line hits="0" number="213"/>
<line hits="0" number="214"/>
<line hits="0" number="216"/>
<line hits="0" number="221"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="230"/>
<line hits="0" number="233"/>
<line hits="0" number="234"/>
<line hits="0" number="236"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,242" number="240"/>
<line hits="0" number="242"/>
<line hits="0" number="244"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,252" number="251"/>
<line hits="0" number="252"/>
<line hits="0" number="254"/>
<line hits="0" number="256"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="260"/>
<line hits="0" number="261"/>
<line hits="0" number="262"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="266,273" number="263"/>
<line hits="0" number="266"/>
<line hits="0" number="267"/>
<line hits="0" number="268"/>
<line hits="0" number="273"/>
<line hits="0" number="275"/>
<line hits="0" number="277"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="289,291" number="284"/>
<line hits="0" number="289"/>
<line hits="0" number="291"/>
<line hits="0" number="292"/>
<line hits="0" number="293"/>
<line hits="0" number="295"/>
<line hits="0" number="299"/>
<line hits="0" number="304"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="309,311" number="308"/>
<line hits="0" number="309"/>
<line hits="0" number="311"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="314,320" number="313"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="315,317" number="314"/>
<line hits="0" number="315"/>
<line hits="0" number="317"/>
<line hits="0" number="318"/>
<line hits="0" number="320"/>
<line hits="0" number="321"/>
<line hits="0" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="325"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,333" number="332"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="334,335" number="333"/>
<line hits="0" number="334"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="336,337" number="335"/>
<line hits="0" number="336"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="338,339" number="337"/>
<line hits="0" number="338"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="340,341" number="339"/>
<line hits="0" number="340"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="342,343" number="341"/>
<line hits="0" number="342"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="344,345" number="343"/>
<line hits="0" number="344"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="346,347" number="345"/>
<line hits="0" number="346"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="332,348" number="347"/>
<line hits="0" number="348"/>
<line hits="0" number="351"/>
<line hits="0" number="352"/>
<line hits="0" number="356"/>
<line hits="0" number="357"/>
<line hits="0" number="358"/>
<line hits="0" number="359"/>
<line hits="0" number="360"/>
<line hits="0" number="362"/>
<line hits="0" number="364"/>
<line hits="0" number="365"/>
<line hits="0" number="366"/>
<line hits="0" number="367"/>
<line hits="0" number="368"/>
<line hits="0" number="370"/>
<line hits="0" number="372"/>
<line hits="0" number="373"/>
<line hits="0" number="377"/>
<line hits="0" number="380"/>
<line hits="0" number="382"/>
<line hits="0" number="383"/>
<line hits="0" number="384"/>
<line hits="0" number="385"/>
<line hits="0" number="386"/>
<line hits="0" number="388"/>
<line hits="0" number="390"/>
<line hits="0" number="391"/>
<line hits="0" number="392"/>
<line hits="0" number="393"/>
<line hits="0" number="394"/>
<line hits="0" number="396"/>
<line hits="0" number="398"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="400,403" number="399"/>
<line hits="0" number="400"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,404" number="403"/>
<line hits="0" number="404"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="408,409" number="407"/>
<line hits="0" number="408"/>
<line hits="0" number="409"/>
<line hits="0" number="410"/>
<line hits="0" number="411"/>
<line hits="0" number="412"/>
<line hits="0" number="414"/>
<line hits="0" number="415"/>
<line hits="0" number="417"/>
<line hits="0" number="418"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="core/http2/stream.py" line-rate="0" name="stream.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,23" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="54"/>
<line hits="0" number="57"/>
<line hits="0" number="60"/>
<line hits="0" number="64"/>
<line hits="0" number="67"/>
<line hits="0" number="71"/>
<line hits="0" number="74"/>
<line hits="0" number="85"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="108"/>
<line hits="0" number="130"/>
<line hits="0" number="143"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="148,150" number="147"/>
<line hits="0" number="148"/>
<line hits="0" number="150"/>
<line hits="0" number="152"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="157"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="168"/>
<line hits="0" number="169"/>
<line hits="0" number="178"/>
<line hits="0" number="182"/>
<line hits="0" number="184"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="193"/>
<line hits="0" number="194"/>
<line hits="0" number="196"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="198,206" number="197"/>
<line hits="0" number="198"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="207,210" number="206"/>
<line hits="0" number="207"/>
<line hits="0" number="210"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="218,223" number="217"/>
<line hits="0" number="218"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="226"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="228,242" number="227"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="227,229" number="228"/>
<line hits="0" number="229"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="231,240" number="230"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="232,239" number="231"/>
<line hits="0" number="232"/>
<line hits="0" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="242"/>
<line hits="0" number="244"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="246,253" number="245"/>
<line hits="0" number="246"/>
<line hits="0" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="253"/>
<line hits="0" number="255"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="267,270" number="266"/>
<line hits="0" number="267"/>
<line hits="0" number="270"/>
<line hits="0" number="273"/>
<line hits="0" number="277"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="281,291" number="280"/>
<line hits="0" number="281"/>
<line hits="0" number="283"/>
<line hits="0" number="284"/>
<line hits="0" number="286"/>
<line hits="0" number="288"/>
<line hits="0" number="289"/>
<line hits="0" number="291"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,295" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="300"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,310" number="305"/>
<line hits="0" number="310"/>
<line hits="0" number="312"/>
<line hits="0" number="313"/>
<line hits="0" number="314"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="318,321" number="317"/>
<line hits="0" number="318"/>
<line hits="0" number="319"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="322,330" number="321"/>
<line hits="0" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="327"/>
<line hits="0" number="330"/>
<line hits="0" number="335"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="337,340" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="340"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="342,345" number="341"/>
<line hits="0" number="342"/>
<line hits="0" number="343"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,346" number="345"/>
<line hits="0" number="346"/>
<line hits="0" number="347"/>
<line hits="0" number="351"/>
<line hits="0" number="353"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="356,359" number="355"/>
<line hits="0" number="356"/>
<line hits="0" number="359"/>
<line hits="0" number="361"/>
<line hits="0" number="362"/>
<line hits="0" number="363"/>
<line hits="0" number="365"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="374,376" number="373"/>
<line hits="0" number="374"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="377,381" number="376"/>
<line hits="0" number="377"/>
<line hits="0" number="381"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="384,386" number="383"/>
<line hits="0" number="384"/>
<line hits="0" number="386"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="397,408" number="396"/>
<line hits="0" number="397"/>
<line hits="0" number="401"/>
<line hits="0" number="405"/>
<line hits="0" number="406"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="409,412" number="408"/>
<line hits="0" number="409"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="421,424" number="412"/>
<line hits="0" number="421"/>
<line hits="0" number="422"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="425,432" number="424"/>
<line hits="0" number="425"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="433,435" number="432"/>
<line hits="0" number="433"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="436,440" number="435"/>
<line hits="0" number="436"/>
<line hits="0" number="437"/>
<line hits="0" number="440"/>
<line hits="0" number="441"/>
<line hits="0" number="447"/>
<line hits="0" number="452"/>
<line hits="0" number="453"/>
<line hits="0" number="459"/>
<line hits="0" number="470"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="downloadermiddlewares">
<classes>
<class branch-rate="1" complexity="0" filename="downloadermiddlewares/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/ajaxcrawl.py" line-rate="0" name="ajaxcrawl.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="21,27" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,38" number="35"/>
<line hits="0" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,42" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,45" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,49" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="67"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,87" number="85"/>
<line hits="0" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,90" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/cookies.py" line-rate="0" name="cookies.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="23,24" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="28,30" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,36" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,45" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,54" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,56" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,57" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,58" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,63" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,65" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,66" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,67" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,93" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,83" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,82" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,86" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,96" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,104" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,107" number="104"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,108" number="105"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,109" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/decompression.py" line-rate="0" name="decompression.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,77" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,83" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,80" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/defaultheaders.py" line-rate="0" name="defaultheaders.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,22" number="21"/>
<line hits="0" number="22"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/downloadtimeout.py" line-rate="0" name="downloadtimeout.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,26" number="25"/>
<line hits="0" number="26"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/httpauth.py" line-rate="0" name="httpauth.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,26" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,31" number="30"/>
<line hits="0" number="31"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/httpcache.py" line-rate="0" name="httpcache.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,63" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,68" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,77" number="69"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,74" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,84" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,93" number="89"/>
<line hits="0" number="90"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,99" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,103" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,109" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="110,113" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="117"/>
<line hits="0" number="120"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="122,124" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="126"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="130,133" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="133"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/httpcompression.py" line-rate="0" name="httpcompression.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,37" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,58" number="56"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,78" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,78" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,66" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,74" number="70"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,78" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,84" number="81"/>
<line hits="0" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="85,94" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,96" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="99,101" number="96"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/httpproxy.py" line-rate="0" name="httpproxy.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,16" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,27" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,43" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,58" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,53" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,57" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,61" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,68" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,69" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,75" number="74"/>
<line hits="0" number="75"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/redirect.py" line-rate="0" name="redirect.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,22" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,45" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="56"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="69,71" number="63"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,75" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,80" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,86" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,107" number="100"/>
<line hits="0" number="105"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="110,113" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/retry.py" line-rate="0" name="retry.py">
<methods/>
<lines>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="35"/>
<line hits="0" number="38"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="92,95" number="91"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,95" number="93"/>
<line hits="0" number="94"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,117" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,106" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="109,110" number="108"/>
<line hits="0" number="109"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="111,113" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="124"/>
<line hits="0" number="127"/>
<line hits="0" number="131"/>
<line hits="0" number="136"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="138,139" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,141" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
<line hits="0" number="147"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="149,150" number="148"/>
<line hits="0" number="149"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="151,153" number="150"/>
<line hits="0" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="155"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,160" number="156"/>
<line hits="0" number="160"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/robotstxt.py" line-rate="0" name="robotstxt.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,25" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,41" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="47,49" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,52" number="50"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,53" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,76" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,85" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="89,93" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,107" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/stats.py" line-rate="0" name="stats.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="15,16" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="downloadermiddlewares/useragent.py" line-rate="0" name="useragent.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,23" number="22"/>
<line hits="0" number="23"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="extensions">
<classes>
<class branch-rate="1" complexity="0" filename="extensions/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="extensions/closespider.py" line-rate="0" name="closespider.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,28" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,32" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,34" number="32"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,36" number="34"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,47" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,52" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,63" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,68" number="67"/>
<line hits="0" number="68"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="extensions/corestats.py" line-rate="0" name="corestats.py">
<methods/>
<lines>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/debug.py" line-rate="0" name="debug.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="41"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,47" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,52" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/feedexport.py" line-rate="0" name="feedexport.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,38" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line hits="0" number="52"/>
<line hits="0" number="56"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,81" number="64"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,101" number="81"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,87" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,89" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="104,119" number="101"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="112,113" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="119"/>
<line hits="0" number="121"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="124,125" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,137" number="136"/>
<line hits="0" number="137"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="158"/>
<line hits="0" number="161"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="187"/>
<line hits="0" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="193"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="196"/>
<line hits="0" number="197"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line hits="0" number="201"/>
<line hits="0" number="208"/>
<line hits="0" number="209"/>
<line hits="0" number="217"/>
<line hits="0" number="218"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="221"/>
<line hits="0" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="226"/>
<line hits="0" number="227"/>
<line hits="0" number="229"/>
<line hits="0" number="230"/>
<line hits="0" number="232"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,234" number="233"/>
<line hits="0" number="234"/>
<line hits="0" number="235"/>
<line hits="0" number="237"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,239" number="238"/>
<line hits="0" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="243"/>
<line hits="0" number="245"/>
<line hits="0" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="250"/>
<line hits="0" number="251"/>
<line hits="0" number="253"/>
<line hits="0" number="254"/>
<line hits="0" number="255"/>
<line hits="0" number="256"/>
<line hits="0" number="257"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="260,263" number="259"/>
<line hits="0" number="260"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="264,275" number="263"/>
<line hits="0" number="264"/>
<line hits="0" number="269"/>
<line hits="0" number="270"/>
<line hits="0" number="271"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="276,279" number="275"/>
<line hits="0" number="276"/>
<line hits="0" number="277"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,282" number="281"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="283,284" number="282"/>
<line hits="0" number="283"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="285,286" number="284"/>
<line hits="0" number="285"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="281,287" number="286"/>
<line hits="0" number="287"/>
<line hits="0" number="289"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,291" number="290"/>
<line hits="0" number="291"/>
<line hits="0" number="292"/>
<line hits="0" number="300"/>
<line hits="0" number="301"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="303,305" number="302"/>
<line hits="0" number="303"/>
<line hits="0" number="304"/>
<line hits="0" number="305"/>
<line hits="0" number="307"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="311,312" number="308"/>
<line hits="0" number="311"/>
<line hits="0" number="312"/>
<line hits="0" number="313"/>
<line hits="0" number="314"/>
<line hits="0" number="317"/>
<line hits="0" number="321"/>
<line hits="0" number="324"/>
<line hits="0" number="327"/>
<line hits="0" number="329"/>
<line hits="0" number="330"/>
<line hits="0" number="334"/>
<line hits="0" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="340"/>
<line hits="0" number="342"/>
<line hits="0" number="352"/>
<line hits="0" number="353"/>
<line hits="0" number="354"/>
<line hits="0" number="362"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="373,374" number="372"/>
<line hits="0" number="373"/>
<line hits="0" number="374"/>
<line hits="0" number="376"/>
<line hits="0" number="377"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="379,398" number="378"/>
<line hits="0" number="379"/>
<line hits="0" number="380"/>
<line hits="0" number="381"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="387,397" number="383"/>
<line hits="0" number="387"/>
<line hits="0" number="388"/>
<line hits="0" number="389"/>
<line hits="0" number="397"/>
<line hits="0" number="398"/>
<line hits="0" number="400"/>
<line hits="0" number="401"/>
<line hits="0" number="402"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="404,408" number="403"/>
<line hits="0" number="404"/>
<line hits="0" number="405"/>
<line hits="0" number="406"/>
<line hits="0" number="407"/>
<line hits="0" number="408"/>
<line hits="0" number="410"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="412,413" number="411"/>
<line hits="0" number="412"/>
<line hits="0" number="413"/>
<line hits="0" number="415"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="421,429" number="420"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="420,422" number="421"/>
<line hits="0" number="422"/>
<line hits="0" number="428"/>
<line hits="0" number="429"/>
<line hits="0" number="431"/>
<line hits="0" number="432"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="434,442" number="433"/>
<line hits="0" number="434"/>
<line hits="0" number="435"/>
<line hits="0" number="436"/>
<line hits="0" number="437"/>
<line hits="0" number="438"/>
<line hits="0" number="442"/>
<line hits="0" number="445"/>
<line hits="0" number="446"/>
<line hits="0" number="450"/>
<line hits="0" number="451"/>
<line hits="0" number="453"/>
<line hits="0" number="459"/>
<line hits="0" number="460"/>
<line hits="0" number="462"/>
<line hits="0" number="463"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="466,468" number="465"/>
<line hits="0" number="466"/>
<line hits="0" number="467"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="469,472" number="468"/>
<line hits="0" number="469"/>
<line hits="0" number="470"/>
<line hits="0" number="472"/>
<line hits="0" number="473"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="475,476" number="474"/>
<line hits="0" number="475"/>
<line hits="0" number="476"/>
<line hits="0" number="478"/>
<line hits="0" number="479"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="481,482" number="480"/>
<line hits="0" number="481"/>
<line hits="0" number="482"/>
<line hits="0" number="483"/>
<line hits="0" number="484"/>
<line hits="0" number="485"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,487" number="486"/>
<line hits="0" number="487"/>
<line hits="0" number="488"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/httpcache.py" line-rate="0" name="httpcache.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="50"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,62" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,61" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,61" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,67" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="81,83" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,86" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,92" number="89"/>
<line hits="0" number="90"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="93,95" number="92"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,101" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,109" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="115,117" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="118,120" number="117"/>
<line hits="0" number="118"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="128,139" number="120"/>
<line hits="0" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="130,132" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="132"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="134,139" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="146,151" number="145"/>
<line hits="0" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="148,151" number="147"/>
<line hits="0" number="148"/>
<line hits="0" number="151"/>
<line hits="0" number="153"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="155,157" number="154"/>
<line hits="0" number="155"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,158" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="160"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="166"/>
<line hits="0" number="169"/>
<line hits="0" number="170"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="172,175" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="175"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="179,186" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="182"/>
<line hits="0" number="186"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="188,191" number="187"/>
<line hits="0" number="188"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="192,195" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="195"/>
<line hits="0" number="197"/>
<line hits="0" number="200"/>
<line hits="0" number="203"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="205,207" number="204"/>
<line hits="0" number="205"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="208,214" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="209"/>
<line hits="0" number="210"/>
<line hits="0" number="211"/>
<line hits="0" number="212"/>
<line hits="0" number="214"/>
<line hits="0" number="217"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="221"/>
<line hits="0" number="222"/>
<line hits="0" number="223"/>
<line hits="0" number="225"/>
<line hits="0" number="226"/>
<line hits="0" number="227"/>
<line hits="0" number="229"/>
<line hits="0" number="231"/>
<line hits="0" number="232"/>
<line hits="0" number="234"/>
<line hits="0" number="235"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="237,238" number="236"/>
<line hits="0" number="237"/>
<line hits="0" number="238"/>
<line hits="0" number="239"/>
<line hits="0" number="240"/>
<line hits="0" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="243"/>
<line hits="0" number="244"/>
<line hits="0" number="246"/>
<line hits="0" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="254"/>
<line hits="0" number="255"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="260"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="262,264" number="261"/>
<line hits="0" number="262"/>
<line hits="0" number="264"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="266,268" number="265"/>
<line hits="0" number="266"/>
<line hits="0" number="268"/>
<line hits="0" number="270"/>
<line hits="0" number="271"/>
<line hits="0" number="274"/>
<line hits="0" number="276"/>
<line hits="0" number="277"/>
<line hits="0" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="282"/>
<line hits="0" number="283"/>
<line hits="0" number="286"/>
<line hits="0" number="287"/>
<line hits="0" number="289"/>
<line hits="0" number="291"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="293,294" number="292"/>
<line hits="0" number="293"/>
<line hits="0" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="296"/>
<line hits="0" number="297"/>
<line hits="0" number="298"/>
<line hits="0" number="299"/>
<line hits="0" number="300"/>
<line hits="0" number="301"/>
<line hits="0" number="302"/>
<line hits="0" number="303"/>
<line hits="0" number="304"/>
<line hits="0" number="306"/>
<line hits="0" number="308"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="310,311" number="309"/>
<line hits="0" number="310"/>
<line hits="0" number="311"/>
<line hits="0" number="318"/>
<line hits="0" number="319"/>
<line hits="0" number="320"/>
<line hits="0" number="321"/>
<line hits="0" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="324"/>
<line hits="0" number="325"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line hits="0" number="328"/>
<line hits="0" number="329"/>
<line hits="0" number="331"/>
<line hits="0" number="332"/>
<line hits="0" number="333"/>
<line hits="0" number="335"/>
<line hits="0" number="336"/>
<line hits="0" number="337"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="339,340" number="338"/>
<line hits="0" number="339"/>
<line hits="0" number="340"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="342,343" number="341"/>
<line hits="0" number="342"/>
<line hits="0" number="343"/>
<line hits="0" number="344"/>
<line hits="0" number="347"/>
<line hits="0" number="359"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="361,364" number="360"/>
<line hits="0" number="361"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="360,363" number="362"/>
<line hits="0" number="363"/>
<line hits="0" number="364"/>
<line hits="0" number="367"/>
<line hits="0" number="368"/>
<line hits="0" number="369"/>
<line hits="0" number="370"/>
<line hits="0" number="371"/>
<line hits="0" number="372"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/logstats.py" line-rate="0" name="logstats.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,25" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,52" number="51"/>
<line hits="0" number="52"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/memdebug.py" line-rate="0" name="memdebug.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,31" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,33" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/memusage.py" line-rate="0" name="memusage.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,27" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,52" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,64" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,65" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,71" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,79" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,91" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="92,94" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,99" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,100" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,111" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/spiderstate.py" line-rate="0" name="spiderstate.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,21" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,28" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,36" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/statsmailer.py" line-rate="0" name="statsmailer.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,32" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,34" number="33"/>
<line hits="0" number="34"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/telnet.py" line-rate="0" name="telnet.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="34"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,46" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,57" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="79"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,113" number="99"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="extensions/throttle.py" line-rate="0" name="throttle.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="14,16" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,46" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="74"/>
<line hits="0" number="77"/>
<line hits="0" number="81"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="91,93" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0.1957" complexity="0" line-rate="0.2646" name="http">
<classes>
<class branch-rate="1" complexity="0" filename="http/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="http/common.py" line-rate="0.5" name="common.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="1" number="6"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="http/cookies.py" line-rate="0" name="cookies.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,37" number="34"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,42" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,44" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,49" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,47" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,54" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,54" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,57" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="90"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,106" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="106"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="117"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="135"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line hits="0" number="149"/>
<line hits="0" number="151"/>
<line hits="0" number="153"/>
<line hits="0" number="155"/>
<line hits="0" number="157"/>
<line hits="0" number="159"/>
<line hits="0" number="161"/>
<line hits="0" number="163"/>
<line hits="0" number="165"/>
<line hits="0" number="167"/>
<line hits="0" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="176"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="177"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="187"/>
<line hits="0" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="192"/>
<line hits="0" number="193"/>
<line hits="0" number="195"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="196"/>
</lines>
</class>
<class branch-rate="0.4091" complexity="0" filename="http/headers.py" line-rate="0.623" name="headers.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="3"/>
<line hits="1" number="6"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="17"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
<line hits="1" number="20"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="22" number="21"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="24" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
<line hits="1" number="28"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
<line hits="1" number="30"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="33" number="31"/>
<line hits="1" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,36" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="1" number="38"/>
<line hits="1" number="39"/>
<line hits="1" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="1" number="44"/>
<line hits="1" number="45"/>
<line hits="1" number="46"/>
<line hits="1" number="47"/>
<line hits="1" number="48"/>
<line hits="1" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,56" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="1" number="58"/>
<line hits="0" number="59"/>
<line hits="1" number="61"/>
<line hits="0" number="62"/>
<line hits="1" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="1" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="70"/>
<line hits="1" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="73"/>
<line hits="1" number="75"/>
<line hits="0" number="76"/>
<line hits="1" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="82"/>
<line hits="1" number="87"/>
<line hits="0" number="88"/>
<line hits="1" number="89"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0.2509" name="http.request">
<classes>
<class branch-rate="0" complexity="0" filename="http/request/__init__.py" line-rate="0.3409" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line hits="1" number="21"/>
<line hits="1" number="26"/>
<line hits="1" number="39"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="48,49" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,53" number="51"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,55" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="1" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="69,70" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="1" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,76" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="1" number="78"/>
<line hits="0" number="79"/>
<line hits="1" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,93" number="88"/>
<line hits="0" number="93"/>
<line hits="1" number="95"/>
<line hits="1" number="97"/>
<line hits="0" number="98"/>
<line hits="1" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,104" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="104"/>
<line hits="1" number="106"/>
<line hits="1" number="108"/>
<line hits="0" number="110"/>
<line hits="1" number="112"/>
<line hits="0" number="113"/>
<line hits="1" number="115"/>
<line hits="1" number="117"/>
<line hits="0" number="119"/>
<line hits="1" number="121"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="124,125" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="1" number="128"/>
<line hits="1" number="129"/>
<line hits="0" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line hits="1" number="161"/>
<line hits="0" number="169"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="176,177" number="175"/>
<line hits="0" number="176"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="178,179" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="1" number="182"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,195" number="185"/>
<line hits="0" number="186"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="193,195" number="187"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="187,194" number="193"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="http/request/form.py" line-rate="0.1473" name="form.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="22"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,27" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,30" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,36" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="1" number="38"/>
<line hits="1" number="39"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,48" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,58" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,58" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="1" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,67" number="62"/>
<line hits="0" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="65,66" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="1" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,74" number="71"/>
<line hits="0" number="74"/>
<line hits="1" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="82"/>
<line hits="0" number="83"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,90" number="85"/>
<line hits="0" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,90" number="87"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="91,96" number="90"/>
<line hits="0" number="91"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="93,96" number="92"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="97,110" number="96"/>
<line hits="0" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="99,106" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,103" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="101,105" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,111" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="1" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,127" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,139" number="135"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="140,144" number="139"/>
<line hits="0" number="140"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="142,144" number="141"/>
<line hits="0" number="142"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,147" number="144"/>
<line hits="0" number="145"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,148" number="147"/>
<line hits="0" number="148"/>
<line hits="1" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="155,156" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="1" number="159"/>
<line hits="0" number="160"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="164,166" number="161"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="169,171" number="166"/>
<line hits="0" number="169"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,171" number="170"/>
<line hits="0" number="171"/>
<line hits="1" number="174"/>
<line hits="0" number="180"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,189" number="185"/>
<line hits="0" number="186"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="190,196" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="191"/>
<line hits="0" number="196"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="198,207" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line hits="0" number="201"/>
<line hits="0" number="203"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,208" number="207"/>
<line hits="0" number="208"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="210,211" number="209"/>
<line hits="0" number="210"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="212,215" number="211"/>
<line hits="0" number="212"/>
<line hits="0" number="215"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="http/request/json_request.py" line-rate="0.3421" name="json_request.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="17"/>
<line hits="1" number="19"/>
<line hits="1" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,33" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,39" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,39" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="1" number="43"/>
<line hits="0" number="45"/>
<line hits="1" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="53,55" number="52"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,58" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="58"/>
<line hits="1" number="60"/>
<line hits="0" number="62"/>
<line hits="1" number="65"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="http/request/rpc.py" line-rate="0.375" name="rpc.py">
<methods/>
<lines>
<line hits="1" number="7"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="13"/>
<line hits="1" number="16"/>
<line hits="1" number="18"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="21,25" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,22" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,34" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0.3618" name="http.response">
<classes>
<class branch-rate="0" complexity="0" filename="http/response/__init__.py" line-rate="0.3784" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="18"/>
<line hits="1" number="20"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="1" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="1" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="1" number="62"/>
<line hits="0" number="63"/>
<line hits="1" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,69" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="1" number="72"/>
<line hits="1" number="74"/>
<line hits="0" number="75"/>
<line hits="1" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,80" number="78"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="81,86" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="86"/>
<line hits="1" number="88"/>
<line hits="1" number="90"/>
<line hits="0" number="91"/>
<line hits="1" number="93"/>
<line hits="1" number="95"/>
<line hits="0" number="97"/>
<line hits="1" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="106,107" number="103"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="1" number="110"/>
<line hits="0" number="113"/>
<line hits="1" number="115"/>
<line hits="0" number="120"/>
<line hits="1" number="122"/>
<line hits="0" number="126"/>
<line hits="1" number="128"/>
<line hits="0" number="132"/>
<line hits="1" number="134"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="152,153" number="151"/>
<line hits="0" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="154,155" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="157"/>
<line hits="1" number="173"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="190,191" number="189"/>
<line hits="0" number="190"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="191"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="http/response/html.py" line-rate="1" name="html.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="http/response/text.py" line-rate="0.3193" name="text.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="17"/>
<line hits="1" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="21"/>
<line hits="1" number="22"/>
<line hits="1" number="23"/>
<line hits="1" number="25"/>
<line hits="1" number="28"/>
<line hits="1" number="30"/>
<line hits="1" number="31"/>
<line hits="1" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="1" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,44" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="1" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,54" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,52" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="1" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="1" number="60"/>
<line hits="0" number="62"/>
<line hits="1" number="64"/>
<line hits="0" number="65"/>
<line hits="1" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="76"/>
<line hits="1" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="85,86" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="1" number="88"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,97" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="1" number="99"/>
<line hits="0" number="102"/>
<line hits="1" number="104"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="1" number="109"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="111,117" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="115"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="1" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,121" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="1" number="127"/>
<line hits="0" number="129"/>
<line hits="1" number="131"/>
<line hits="0" number="133"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="135,136" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="1" number="138"/>
<line hits="0" number="139"/>
<line hits="1" number="141"/>
<line hits="0" number="142"/>
<line hits="1" number="144"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="165,166" number="164"/>
<line hits="0" number="165"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="167,168" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="168"/>
<line hits="0" number="169"/>
<line hits="1" number="185"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,214" number="213"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="215,218" number="214"/>
<line hits="0" number="215"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="219,223" number="218"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="220,221" number="219"/>
<line hits="0" number="220"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="222,223" number="221"/>
<line hits="0" number="222"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="224,229" number="223"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="227,229" number="226"/>
<line hits="0" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="229"/>
<line hits="1" number="246"/>
<line hits="1" number="252"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="256,257" number="254"/>
<line hits="0" number="256"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="258,259" number="257"/>
<line hits="0" number="258"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="260,262" number="259"/>
<line hits="0" number="260"/>
<line hits="0" number="262"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="264,265" number="263"/>
<line hits="0" number="264"/>
<line hits="0" number="265"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="http/response/xml.py" line-rate="1" name="xml.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0.1471" complexity="0" line-rate="0.4765" name="linkextractors">
<classes>
<class branch-rate="0.2381" complexity="0" filename="linkextractors/__init__.py" line-rate="0.5217" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="23"/>
<line hits="1" number="47"/>
<line hits="1" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="51"/>
<line hits="1" number="54"/>
<line hits="0" number="55"/>
<line hits="1" number="58"/>
<line hits="1" number="60"/>
<line hits="1" number="62"/>
<line hits="1" number="63"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="65" number="64"/>
<line hits="0" number="65"/>
<line hits="1" number="68"/>
<line hits="1" number="70"/>
<line hits="1" number="73"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="75"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
<line hits="1" number="80"/>
<line hits="1" number="81"/>
<line hits="1" number="83"/>
<line hits="1" number="84"/>
<line hits="1" number="87"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="90" number="88"/>
<line hits="1" number="89"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="90"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
<line hits="1" number="94"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,97" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,99" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,101" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="103,104" number="102"/>
<line hits="0" number="103"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,106" number="104"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,108" number="106"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="109,110" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="1" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="115,116" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="117,119" number="116"/>
<line hits="0" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,120" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,121" number="120"/>
<line hits="0" number="121"/>
<line hits="1" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,125" number="124"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,128" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,128" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="1" number="131"/>
<line hits="0" number="132"/>
<line hits="1" number="136"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="linkextractors/lxmlhtml.py" line-rate="0.4375" name="lxmlhtml.py">
<methods/>
<lines>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="20"/>
<line hits="1" number="22"/>
<line hits="1" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,29" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="28,29" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="1" number="32"/>
<line hits="0" number="33"/>
<line hits="1" number="36"/>
<line hits="0" number="37"/>
<line hits="1" number="40"/>
<line hits="1" number="41"/>
<line hits="1" number="44"/>
<line hits="1" number="45"/>
<line hits="1" number="46"/>
<line hits="1" number="47"/>
<line hits="1" number="48"/>
<line hits="1" number="49"/>
<line hits="1" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,53" number="52"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,55" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,57" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="58,59" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="1" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,82" number="64"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,69" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,76" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="1" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="1" number="88"/>
<line hits="0" number="93"/>
<line hits="1" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="97,98" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="1" number="101"/>
<line hits="1" number="103"/>
<line hits="1" number="120"/>
<line hits="1" number="121"/>
<line hits="1" number="129"/>
<line hits="1" number="142"/>
<line hits="0" number="151"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="153,159" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,160" number="153"/>
<line hits="0" number="159"/>
<line hits="0" number="160"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="162,164" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="loader">
<classes>
<class branch-rate="0" complexity="0" filename="loader/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,87" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="loader/common.py" line-rate="0" name="common.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="14"/>
<line hits="0" number="21"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="loader/processors.py" line-rate="0" name="processors.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="pipelines">
<classes>
<class branch-rate="0" complexity="0" filename="pipelines/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,23" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="pipelines/files.py" line-rate="0" name="files.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="34"/>
<line hits="0" number="37"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,45" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,74" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,76" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,95" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,108" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="126"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="132,133" number="131"/>
<line hits="0" number="132"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="133"/>
<line hits="0" number="142"/>
<line hits="0" number="146"/>
<line hits="0" number="173"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="175,181" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="184"/>
<line hits="0" number="186"/>
<line hits="0" number="188"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="196"/>
<line hits="0" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="204,209" number="203"/>
<line hits="0" number="204"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,210" number="209"/>
<line hits="0" number="210"/>
<line hits="0" number="215"/>
<line hits="0" number="216"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="218,222" number="217"/>
<line hits="0" number="218"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="222"/>
<line hits="0" number="224"/>
<line hits="0" number="226"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="228,230" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="230"/>
<line hits="0" number="232"/>
<line hits="0" number="233"/>
<line hits="0" number="234"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,236" number="235"/>
<line hits="0" number="236"/>
<line hits="0" number="244"/>
<line hits="0" number="246"/>
<line hits="0" number="247"/>
<line hits="0" number="248"/>
<line hits="0" number="250"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="252,253" number="251"/>
<line hits="0" number="252"/>
<line hits="0" number="253"/>
<line hits="0" number="254"/>
<line hits="0" number="255"/>
<line hits="0" number="256"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="261"/>
<line hits="0" number="262"/>
<line hits="0" number="263"/>
<line hits="0" number="269"/>
<line hits="0" number="270"/>
<line hits="0" number="271"/>
<line hits="0" number="272"/>
<line hits="0" number="273"/>
<line hits="0" number="274"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="276,277" number="275"/>
<line hits="0" number="276"/>
<line hits="0" number="277"/>
<line hits="0" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="281"/>
<line hits="0" number="283"/>
<line hits="0" number="284"/>
<line hits="0" number="285"/>
<line hits="0" number="288"/>
<line hits="0" number="307"/>
<line hits="0" number="308"/>
<line hits="0" number="309"/>
<line hits="0" number="316"/>
<line hits="0" number="317"/>
<line hits="0" number="319"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="321,323" number="320"/>
<line hits="0" number="321"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="324,326" number="323"/>
<line hits="0" number="324"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line hits="0" number="328"/>
<line hits="0" number="331"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="335,336" number="334"/>
<line hits="0" number="335"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="337,338" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="338"/>
<line hits="0" number="341"/>
<line hits="0" number="345"/>
<line hits="0" number="347"/>
<line hits="0" number="349"/>
<line hits="0" number="350"/>
<line hits="0" number="351"/>
<line hits="0" number="352"/>
<line hits="0" number="353"/>
<line hits="0" number="354"/>
<line hits="0" number="355"/>
<line hits="0" number="356"/>
<line hits="0" number="358"/>
<line hits="0" number="359"/>
<line hits="0" number="360"/>
<line hits="0" number="362"/>
<line hits="0" number="363"/>
<line hits="0" number="364"/>
<line hits="0" number="365"/>
<line hits="0" number="367"/>
<line hits="0" number="368"/>
<line hits="0" number="370"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="372,374" number="371"/>
<line hits="0" number="372"/>
<line hits="0" number="374"/>
<line hits="0" number="375"/>
<line hits="0" number="376"/>
<line hits="0" number="378"/>
<line hits="0" number="379"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="381,383" number="380"/>
<line hits="0" number="381"/>
<line hits="0" number="383"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="385,387" number="384"/>
<line hits="0" number="385"/>
<line hits="0" number="387"/>
<line hits="0" number="388"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="390,392" number="389"/>
<line hits="0" number="390"/>
<line hits="0" number="392"/>
<line hits="0" number="393"/>
<line hits="0" number="400"/>
<line hits="0" number="402"/>
<line hits="0" number="403"/>
<line hits="0" number="405"/>
<line hits="0" number="406"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,408" number="407"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,414" number="408"/>
<line hits="0" number="414"/>
<line hits="0" number="416"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="418,427" number="417"/>
<line hits="0" number="418"/>
<line hits="0" number="419"/>
<line hits="0" number="427"/>
<line hits="0" number="429"/>
<line hits="0" number="430"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="433,442" number="432"/>
<line hits="0" number="433"/>
<line hits="0" number="440"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="443,451" number="442"/>
<line hits="0" number="443"/>
<line hits="0" number="449"/>
<line hits="0" number="451"/>
<line hits="0" number="452"/>
<line hits="0" number="458"/>
<line hits="0" number="460"/>
<line hits="0" number="461"/>
<line hits="0" number="462"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="464,471" number="463"/>
<line hits="0" number="464"/>
<line hits="0" number="470"/>
<line hits="0" number="471"/>
<line hits="0" number="472"/>
<line hits="0" number="478"/>
<line hits="0" number="480"/>
<line hits="0" number="482"/>
<line hits="0" number="483"/>
<line hits="0" number="484"/>
<line hits="0" number="487"/>
<line hits="0" number="488"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="489"/>
<line hits="0" number="491"/>
<line hits="0" number="492"/>
<line hits="0" number="493"/>
<line hits="0" number="494"/>
<line hits="0" number="495"/>
<line hits="0" number="496"/>
<line hits="0" number="497"/>
<line hits="0" number="499"/>
<line hits="0" number="500"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,502" number="501"/>
<line hits="0" number="502"/>
<line hits="0" number="504"/>
<line hits="0" number="505"/>
<line hits="0" number="506"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="510,514" number="509"/>
<line hits="0" number="510"/>
<line hits="0" number="511"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="513,514" number="512"/>
<line hits="0" number="513"/>
<line hits="0" number="514"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="pipelines/images.py" line-rate="0" name="images.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="22"/>
<line hits="0" number="26"/>
<line hits="0" number="30"/>
<line hits="0" number="35"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="58,60" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,69" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="76"/>
<line hits="0" number="80"/>
<line hits="0" number="83"/>
<line hits="0" number="86"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="119,127" number="118"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="120,122" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="127"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="133"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="135,139" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,143" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="147"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="149,152" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="153,157" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="158,160" number="157"/>
<line hits="0" number="158"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="161,164" number="160"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="164"/>
<line hits="0" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="168"/>
<line hits="0" number="169"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,175" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="pipelines/media.py" line-rate="0" name="media.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="41"/>
<line hits="0" number="44"/>
<line hits="0" number="47"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,52" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,71" number="65"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,89" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,95" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="101,104" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="109,112" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,119" number="116"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="119"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,129" number="128"/>
<line hits="0" number="129"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="128,131" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="133"/>
<line hits="0" number="135"/>
<line hits="0" number="137"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="140,142" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="145"/>
<line hits="0" number="147"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,152" number="151"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="157"/>
<line hits="0" number="159"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="161,163" number="160"/>
<line hits="0" number="161"/>
<line hits="0" number="163"/>
<line hits="0" number="165"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="167,168" number="166"/>
<line hits="0" number="167"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="170,175" number="168"/>
<line hits="0" number="170"/>
<line hits="0" number="171"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="177"/>
<line hits="0" number="180"/>
<line hits="0" number="182"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="185,214" number="183"/>
<line hits="0" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="210"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="212,214" number="211"/>
<line hits="0" number="212"/>
<line hits="0" number="214"/>
<line hits="0" number="215"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,217" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="220"/>
<line hits="0" number="222"/>
<line hits="0" number="224"/>
<line hits="0" number="226"/>
<line hits="0" number="228"/>
<line hits="0" number="230"/>
<line hits="0" number="232"/>
<line hits="0" number="234"/>
<line hits="0" number="236"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="239,247" number="238"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="240,247" number="239"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="239,241" number="240"/>
<line hits="0" number="241"/>
<line hits="0" number="247"/>
<line hits="0" number="249"/>
<line hits="0" number="251"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0.4643" name="selector">
<classes>
<class branch-rate="1" complexity="0" filename="selector/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="6"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="selector/unified.py" line-rate="0.4444" name="unified.py">
<methods/>
<lines>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="11"/>
<line hits="1" number="14"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="16,17" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="1" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="1" number="26"/>
<line hits="1" number="33"/>
<line hits="1" number="64"/>
<line hits="1" number="65"/>
<line hits="1" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="69,72" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,77" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,81" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="settings">
<classes>
<class branch-rate="0" complexity="0" filename="settings/__init__.py" line-rate="0" name="__init__.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,28" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line hits="0" number="31"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,44" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,51" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="60"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,86" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="88"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,91" number="89"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line hits="0" number="106"/>
<line hits="0" number="108"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="127"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="129,130" number="128"/>
<line hits="0" number="129"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="131,132" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="136"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line hits="0" number="158"/>
<line hits="0" number="160"/>
<line hits="0" number="174"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="176,177" number="175"/>
<line hits="0" number="176"/>
<line hits="0" number="177"/>
<line hits="0" number="179"/>
<line hits="0" number="195"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="197,198" number="196"/>
<line hits="0" number="197"/>
<line hits="0" number="198"/>
<line hits="0" number="200"/>
<line hits="0" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="209"/>
<line hits="0" number="210"/>
<line hits="0" number="212"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="221,222" number="220"/>
<line hits="0" number="221"/>
<line hits="0" number="222"/>
<line hits="0" number="224"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="232,234" number="231"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="232"/>
<line hits="0" number="234"/>
<line hits="0" number="236"/>
<line hits="0" number="237"/>
<line hits="0" number="239"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="260,265" number="259"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="261,263" number="260"/>
<line hits="0" number="261"/>
<line hits="0" number="263"/>
<line hits="0" number="265"/>
<line hits="0" number="267"/>
<line hits="0" number="268"/>
<line hits="0" number="270"/>
<line hits="0" number="285"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="287,288" number="286"/>
<line hits="0" number="287"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,289" number="288"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="288,290" number="289"/>
<line hits="0" number="290"/>
<line hits="0" number="292"/>
<line hits="0" number="314"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="316,317" number="315"/>
<line hits="0" number="316"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,318" number="317"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="319,322" number="318"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,320" number="319"/>
<line hits="0" number="320"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,323" number="322"/>
<line hits="0" number="323"/>
<line hits="0" number="325"/>
<line hits="0" number="326"/>
<line hits="0" number="327"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,329" number="328"/>
<line hits="0" number="329"/>
<line hits="0" number="331"/>
<line hits="0" number="332"/>
<line hits="0" number="333"/>
<line hits="0" number="335"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,337" number="336"/>
<line hits="0" number="337"/>
<line hits="0" number="339"/>
<line hits="0" number="349"/>
<line hits="0" number="351"/>
<line hits="0" number="359"/>
<line hits="0" number="361"/>
<line hits="0" number="367"/>
<line hits="0" number="368"/>
<line hits="0" number="369"/>
<line hits="0" number="371"/>
<line hits="0" number="372"/>
<line hits="0" number="374"/>
<line hits="0" number="375"/>
<line hits="0" number="377"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="378"/>
<line hits="0" number="381"/>
<line hits="0" number="394"/>
<line hits="0" number="395"/>
<line hits="0" number="397"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="399,401" number="398"/>
<line hits="0" number="399"/>
<line hits="0" number="401"/>
<line hits="0" number="404"/>
<line hits="0" number="406"/>
<line hits="0" number="407"/>
<line hits="0" number="408"/>
<line hits="0" number="409"/>
<line hits="0" number="411"/>
<line hits="0" number="412"/>
<line hits="0" number="414"/>
<line hits="0" number="415"/>
<line hits="0" number="417"/>
<line hits="0" number="418"/>
<line hits="0" number="419"/>
<line hits="0" number="421"/>
<line hits="0" number="422"/>
<line hits="0" number="424"/>
<line hits="0" number="425"/>
<line hits="0" number="428"/>
<line hits="0" number="439"/>
<line hits="0" number="443"/>
<line hits="0" number="444"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="448,450" number="447"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="447,449" number="448"/>
<line hits="0" number="449"/>
<line hits="0" number="450"/>
<line hits="0" number="453"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,456" number="455"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="455,457" number="456"/>
<line hits="0" number="457"/>
<line hits="0" number="460"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,463" number="462"/>
<line hits="0" number="463"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="462,465" number="464"/>
<line hits="0" number="465"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="settings/default_settings.py" line-rate="0" name="default_settings.py">
<methods/>
<lines>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="0" number="85"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="94"/>
<line hits="0" number="96"/>
<line hits="0" number="115"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="121,123" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="123"/>
<line hits="0" number="125"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="0" number="143"/>
<line hits="0" number="144"/>
<line hits="0" number="152"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="163"/>
<line hits="0" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line hits="0" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
<line hits="0" number="176"/>
<line hits="0" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line hits="0" number="184"/>
<line hits="0" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
<line hits="0" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="0" number="195"/>
<line hits="0" number="197"/>
<line hits="0" number="199"/>
<line hits="0" number="200"/>
<line hits="0" number="202"/>
<line hits="0" number="203"/>
<line hits="0" number="204"/>
<line hits="0" number="205"/>
<line hits="0" number="206"/>
<line hits="0" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="209"/>
<line hits="0" number="210"/>
<line hits="0" number="212"/>
<line hits="0" number="214"/>
<line hits="0" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="218"/>
<line hits="0" number="219"/>
<line hits="0" number="220"/>
<line hits="0" number="222"/>
<line hits="0" number="223"/>
<line hits="0" number="225"/>
<line hits="0" number="226"/>
<line hits="0" number="227"/>
<line hits="0" number="228"/>
<line hits="0" number="229"/>
<line hits="0" number="231"/>
<line hits="0" number="232"/>
<line hits="0" number="233"/>
<line hits="0" number="235"/>
<line hits="0" number="237"/>
<line hits="0" number="239"/>
<line hits="0" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="243"/>
<line hits="0" number="245"/>
<line hits="0" number="246"/>
<line hits="0" number="248"/>
<line hits="0" number="249"/>
<line hits="0" number="250"/>
<line hits="0" number="251"/>
<line hits="0" number="253"/>
<line hits="0" number="254"/>
<line hits="0" number="255"/>
<line hits="0" number="257"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="260"/>
<line hits="0" number="262"/>
<line hits="0" number="264"/>
<line hits="0" number="265"/>
<line hits="0" number="267"/>
<line hits="0" number="269"/>
<line hits="0" number="279"/>
<line hits="0" number="281"/>
<line hits="0" number="282"/>
<line hits="0" number="284"/>
<line hits="0" number="286"/>
<line hits="0" number="288"/>
<line hits="0" number="290"/>
<line hits="0" number="292"/>
<line hits="0" number="293"/>
<line hits="0" number="294"/>
<line hits="0" number="295"/>
<line hits="0" number="296"/>
<line hits="0" number="298"/>
<line hits="0" number="300"/>
<line hits="0" number="301"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0" name="spidermiddlewares">
<classes>
<class branch-rate="1" complexity="0" filename="spidermiddlewares/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="spidermiddlewares/depth.py" line-rate="0" name="depth.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,50" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,37" number="35"/>
<line hits="0" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,45" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,48" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,58" number="53"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,58" number="55"/>
<line hits="0" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="58"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spidermiddlewares/httperror.py" line-rate="0" name="httperror.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,34" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,37" number="35"/>
<line hits="0" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,39" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,42" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,45" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="53"/>
<line hits="0" number="57"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spidermiddlewares/offsite.py" line-rate="0" name="offsite.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,30" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,43" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,34" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,41" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="55,56" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,72" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,62" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,66" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,71" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spidermiddlewares/referer.py" line-rate="0" name="referer.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,42" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,46" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,64" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line hits="0" number="74"/>
<line hits="0" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,79" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="85"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="99"/>
<line hits="0" number="113"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,117" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="120"/>
<line hits="0" number="130"/>
<line hits="0" number="132"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,134" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="137"/>
<line hits="0" number="146"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="152"/>
<line hits="0" number="165"/>
<line hits="0" number="167"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,172" number="168"/>
<line hits="0" number="172"/>
<line hits="0" number="175"/>
<line hits="0" number="186"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="191,193" number="190"/>
<line hits="0" number="191"/>
<line hits="0" number="193"/>
<line hits="0" number="196"/>
<line hits="0" number="213"/>
<line hits="0" number="215"/>
<line hits="0" number="216"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="218,219" number="217"/>
<line hits="0" number="218"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,223" number="219"/>
<line hits="0" number="223"/>
<line hits="0" number="226"/>
<line hits="0" number="239"/>
<line hits="0" number="241"/>
<line hits="0" number="242"/>
<line hits="0" number="245"/>
<line hits="0" number="251"/>
<line hits="0" number="252"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,268" number="255"/>
<line hits="0" number="268"/>
<line hits="0" number="271"/>
<line hits="0" number="277"/>
<line hits="0" number="278"/>
<line hits="0" number="279"/>
<line hits="0" number="280"/>
<line hits="0" number="281"/>
<line hits="0" number="282"/>
<line hits="0" number="283"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="285,287" number="284"/>
<line hits="0" number="285"/>
<line hits="0" number="287"/>
<line hits="0" number="288"/>
<line hits="0" number="291"/>
<line hits="0" number="293"/>
<line hits="0" number="294"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,296" number="295"/>
<line hits="0" number="296"/>
<line hits="0" number="299"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="302,303" number="301"/>
<line hits="0" number="302"/>
<line hits="0" number="303"/>
<line hits="0" number="306"/>
<line hits="0" number="308"/>
<line hits="0" number="310"/>
<line hits="0" number="323"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="325,329" number="324"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="326,329" number="325"/>
<line hits="0" number="326"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="328,329" number="327"/>
<line hits="0" number="328"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="330,332" number="329"/>
<line hits="0" number="330"/>
<line hits="0" number="332"/>
<line hits="0" number="333"/>
<line hits="0" number="335"/>
<line hits="0" number="336"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="338,341" number="337"/>
<line hits="0" number="338"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="340,341" number="339"/>
<line hits="0" number="340"/>
<line hits="0" number="341"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="342"/>
<line hits="0" number="344"/>
<line hits="0" number="346"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,348" number="347"/>
<line hits="0" number="348"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,356" number="350"/>
<line hits="0" number="356"/>
<line hits="0" number="357"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,360" number="359"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="361,363" number="360"/>
<line hits="0" number="361"/>
<line hits="0" number="363"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spidermiddlewares/urllength.py" line-rate="0" name="urllength.py">
<methods/>
<lines>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="20"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,25" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,38" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="40"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0" complexity="0" line-rate="0.3511" name="spiders">
<classes>
<class branch-rate="0" complexity="0" filename="spiders/__init__.py" line-rate="0.4444" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="17"/>
<line hits="1" number="22"/>
<line hits="1" number="23"/>
<line hits="1" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,28" number="26"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,30" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,32" number="31"/>
<line hits="0" number="32"/>
<line hits="1" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="1" number="39"/>
<line hits="0" number="46"/>
<line hits="1" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="1" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="1" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,66" number="61"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,76" number="66"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,74" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,77" number="76"/>
<line hits="0" number="77"/>
<line hits="1" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="87"/>
<line hits="1" number="89"/>
<line hits="0" number="90"/>
<line hits="1" number="92"/>
<line hits="0" number="93"/>
<line hits="1" number="95"/>
<line hits="0" number="97"/>
<line hits="1" number="99"/>
<line hits="0" number="101"/>
<line hits="1" number="103"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,107" number="106"/>
<line hits="0" number="107"/>
<line hits="1" number="109"/>
<line hits="0" number="110"/>
<line hits="1" number="112"/>
<line hits="1" number="116"/>
<line hits="1" number="117"/>
<line hits="1" number="118"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spiders/crawl.py" line-rate="0.3293" name="crawl.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="17"/>
<line hits="0" number="18"/>
<line hits="1" number="21"/>
<line hits="0" number="22"/>
<line hits="1" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,28" number="26"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,29" number="28"/>
<line hits="0" number="29"/>
<line hits="1" number="32"/>
<line hits="1" number="35"/>
<line hits="1" number="37"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="1" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="1" number="62"/>
<line hits="1" number="64"/>
<line hits="1" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="1" number="70"/>
<line hits="0" number="71"/>
<line hits="1" number="78"/>
<line hits="0" number="79"/>
<line hits="1" number="81"/>
<line hits="0" number="82"/>
<line hits="1" number="84"/>
<line hits="0" number="85"/>
<line hits="1" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,95" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,97" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,99" number="97"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,100" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="1" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line hits="1" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="1" number="112"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,119" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="117,119" number="116"/>
<line hits="0" number="117"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,120" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,121" number="120"/>
<line hits="0" number="121"/>
<line hits="1" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,125" number="124"/>
<line hits="0" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,127" number="126"/>
<line hits="0" number="127"/>
<line hits="1" number="129"/>
<line hits="0" number="130"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,132" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="1" number="135"/>
<line hits="0" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spiders/feed.py" line-rate="0.3846" name="feed.py">
<methods/>
<lines>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="14"/>
<line hits="1" number="24"/>
<line hits="1" number="25"/>
<line hits="1" number="26"/>
<line hits="1" number="28"/>
<line hits="0" number="36"/>
<line hits="1" number="38"/>
<line hits="0" number="43"/>
<line hits="1" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="48,49" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="1" number="51"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,60" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,62" number="61"/>
<line hits="0" number="62"/>
<line hits="1" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,68" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,71" number="69"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,75" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,80" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line hits="0" number="82"/>
<line hits="1" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,86" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="1" number="89"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,91" number="90"/>
<line hits="0" number="91"/>
<line hits="1" number="94"/>
<line hits="1" number="103"/>
<line hits="1" number="104"/>
<line hits="1" number="105"/>
<line hits="1" number="107"/>
<line hits="0" number="109"/>
<line hits="1" number="111"/>
<line hits="0" number="113"/>
<line hits="1" number="115"/>
<line hits="0" number="117"/>
<line hits="1" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,127" number="126"/>
<line hits="0" number="127"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,129" number="128"/>
<line hits="0" number="129"/>
<line hits="1" number="131"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="133,134" number="132"/>
<line hits="0" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="spiders/init.py" line-rate="0" name="init.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="31"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="spiders/sitemap.py" line-rate="0.3065" name="sitemap.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="10"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line hits="1" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,27" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,26" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="27"/>
<line hits="1" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,31" number="30"/>
<line hits="0" number="31"/>
<line hits="1" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,39" number="38"/>
<line hits="0" number="39"/>
<line hits="1" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,46" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,44" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="46"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="48,52" number="47"/>
<line hits="0" number="48"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,59" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,57" number="56"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,56,58" number="57"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,60" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,61" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,62" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,63" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="1" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,72" number="70"/>
<line hits="0" number="71"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,83" number="72"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,84" number="83"/>
<line hits="0" number="84"/>
<line hits="1" number="87"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="89,90" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="1" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,95" number="94"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="94,99" number="98"/>
<line hits="0" number="99"/>
</lines>
</class>
</classes>
</package>
<package branch-rate="0.05371" complexity="0" line-rate="0.1896" name="utils">
<classes>
<class branch-rate="1" complexity="0" filename="utils/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines/>
</class>
<class branch-rate="0" complexity="0" filename="utils/asyncgen.py" line-rate="0.3333" name="asyncgen.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="4"/>
<line hits="0" number="5"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="7,8" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/benchserver.py" line-rate="0" name="benchserver.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,19" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,26" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,35" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="utils/boto.py" line-rate="0" name="boto.py">
<methods/>
<lines>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="13"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/conf.py" line-rate="0" name="conf.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,exit,20" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,37" number="24"/>
<line hits="0" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,35" number="26"/>
<line hits="0" number="27"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,34" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="38"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,43" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,44" number="43"/>
<line hits="0" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,52" number="48"/>
<line hits="0" number="49"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="53,56" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="58"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="65"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,74" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,78" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line hits="0" number="81"/>
<line hits="0" number="86"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,89" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,91" number="90"/>
<line hits="0" number="91"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,93" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="96"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="0" number="106"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="113,114" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="114"/>
<line hits="0" number="117"/>
<line hits="0" number="118"/>
<line hits="0" number="119"/>
<line hits="0" number="120"/>
<line hits="0" number="121"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,128" number="125"/>
<line hits="0" number="126"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="132"/>
<line hits="0" number="139"/>
<line hits="0" number="143"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,145" number="144"/>
<line hits="0" number="145"/>
<line hits="0" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="154,161" number="153"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="155,158" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="158"/>
<line hits="0" number="159"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="162,177" number="161"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="163,172" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="0" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="177"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="179,193" number="178"/>
<line hits="0" number="179"/>
<line hits="0" number="180"/>
<line hits="0" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="183"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,187" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="188"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="178,190" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="193"/>
<line hits="0" number="195"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/console.py" line-rate="0" name="console.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line hits="0" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="55"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="66"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,80" number="78"/>
<line hits="0" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="81,82" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,83" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,84" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="92"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="97,99" number="96"/>
<line hits="0" number="97"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,102" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
</lines>
</class>
<class branch-rate="0.07692" complexity="0" filename="utils/curl.py" line-rate="0.3167" name="curl.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="3"/>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="7"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line hits="1" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="21"/>
<line hits="1" number="24"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="33"/>
<line hits="1" number="34"/>
<line hits="1" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,50" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,48" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,46" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,54" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line hits="1" number="57"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="70,72" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,81" number="74"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,79" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="79"/>
<line hits="0" number="81"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,97" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,99" number="97"/>
<line hits="0" number="98"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="100,106" number="99"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="104,106" number="101"/>
<line hits="0" number="104"/>
<line hits="0" number="106"/>
</lines>
</class>
<class branch-rate="0.3" complexity="0" filename="utils/datatypes.py" line-rate="0.6667" name="datatypes.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="22"/>
<line hits="1" number="23"/>
<line hits="1" number="25"/>
<line hits="0" number="26"/>
<line hits="1" number="28"/>
<line hits="0" number="29"/>
<line hits="1" number="31"/>
<line hits="1" number="32"/>
<line hits="1" number="33"/>
<line hits="1" number="35"/>
<line hits="0" number="36"/>
<line hits="1" number="37"/>
<line hits="1" number="39"/>
<line hits="0" number="41"/>
<line hits="1" number="43"/>
<line hits="0" number="45"/>
<line hits="1" number="47"/>
<line hits="1" number="48"/>
<line hits="1" number="50"/>
<line hits="0" number="51"/>
<line hits="1" number="53"/>
<line hits="1" number="54"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
<line hits="1" number="56"/>
<line hits="1" number="58"/>
<line hits="1" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="60"/>
<line hits="1" number="62"/>
<line hits="0" number="63"/>
<line hits="1" number="66"/>
<line hits="1" number="72"/>
<line hits="1" number="73"/>
<line hits="1" number="74"/>
<line hits="1" number="76"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="78,80" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,80" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="1" number="83"/>
<line hits="1" number="95"/>
<line hits="1" number="96"/>
<line hits="1" number="97"/>
<line hits="1" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="103"/>
<line hits="1" number="105"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="1" number="112"/>
<line hits="1" number="115"/>
<line hits="0" number="116"/>
<line hits="1" number="118"/>
<line hits="0" number="119"/>
</lines>
</class>
<class branch-rate="0.5" complexity="0" filename="utils/decorators.py" line-rate="0.56" name="decorators.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="4"/>
<line hits="1" number="6"/>
<line hits="1" number="9"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,20" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="1" number="22"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
<line hits="1" number="25"/>
<line hits="1" number="26"/>
<line hits="1" number="27"/>
<line hits="1" number="30"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="1" number="38"/>
<line hits="0" number="42"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/defer.py" line-rate="0.2609" name="defer.py">
<methods/>
<lines>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="20"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="1" number="33"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="1" number="46"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="48,49" number="47"/>
<line hits="0" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,52" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="1" number="55"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="65,66" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="69"/>
<line hits="1" number="72"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,80" number="79"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="80"/>
<line hits="1" number="83"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,88" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="1" number="92"/>
<line hits="0" number="94"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,101" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="102,104" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="104"/>
<line hits="0" number="105"/>
<line hits="1" number="108"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,113" number="112"/>
<line hits="0" number="113"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,115" number="114"/>
<line hits="0" number="115"/>
<line hits="1" number="118"/>
<line hits="0" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,128" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="1" number="132"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="135,136" number="134"/>
<line hits="0" number="135"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="137,144" number="136"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="140,143" number="137"/>
<line hits="0" number="140"/>
<line hits="0" number="143"/>
<line hits="0" number="144"/>
<line hits="1" number="147"/>
<line hits="0" number="153"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line hits="1" number="159"/>
<line hits="0" number="161"/>
<line hits="0" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="167,168" number="166"/>
<line hits="0" number="167"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="169,170" number="168"/>
<line hits="0" number="169"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="171,173" number="170"/>
<line hits="0" number="171"/>
<line hits="0" number="173"/>
</lines>
</class>
<class branch-rate="0.125" complexity="0" filename="utils/deprecate.py" line-rate="0.4923" name="deprecate.py">
<methods/>
<lines>
<line hits="1" number="3"/>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="1" number="17"/>
<line hits="1" number="53"/>
<line hits="1" number="55"/>
<line hits="1" number="56"/>
<line hits="1" number="58"/>
<line hits="1" number="59"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="62" number="60"/>
<line hits="1" number="61"/>
<line hits="1" number="62"/>
<line hits="1" number="64"/>
<line hits="1" number="65"/>
<line hits="1" number="66"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="68" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="73,74" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="74"/>
<line hits="1" number="75"/>
<line hits="1" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="81"/>
<line hits="1" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,92" number="85"/>
<line hits="0" number="90"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="93,95" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="95"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="96"/>
<line hits="1" number="98"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="101,104" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="1" number="106"/>
<line hits="1" number="108"/>
<line hits="1" number="109"/>
<line hits="1" number="110"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="120" number="111"/>
<line hits="1" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="118"/>
<line hits="1" number="120"/>
<line hits="1" number="123"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="125,126" number="124"/>
<line hits="0" number="125"/>
<line hits="0" number="126"/>
<line hits="1" number="129"/>
<line hits="1" number="134"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="137,142" number="136"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="136,138" number="137"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="1" number="145"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/display.py" line-rate="0" name="display.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,22" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="23,27" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="27"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,33" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="47"/>
<line hits="0" number="48"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/engine.py" line-rate="0" name="engine.py">
<methods/>
<lines>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="28,33" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="33"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,41" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="43"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/ftp.py" line-rate="0" name="ftp.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,18" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,32" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/gz.py" line-rate="0.3333" name="gz.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="3"/>
<line hits="1" number="5"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="0" number="14"/>
<line hits="1" number="17"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,41" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,40" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="38"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="1" number="44"/>
<line hits="0" number="45"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/httpobj.py" line-rate="0" name="httpobj.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="10"/>
<line hits="0" number="13"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="18,19" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/iterators.py" line-rate="0.1753" name="iterators.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="3"/>
<line hits="1" number="4"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="11"/>
<line hits="1" number="14"/>
<line hits="0" number="23"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,42" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,42" number="37"/>
<line hits="0" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,40" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,37" number="40"/>
<line hits="0" number="42"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,44" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="53"/>
<line hits="1" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="0" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,63" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,68" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="1" number="71"/>
<line hits="1" number="73"/>
<line hits="0" number="74"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,78" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="78"/>
<line hits="0" number="79"/>
<line hits="1" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="1" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="88"/>
<line hits="1" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="1" number="96"/>
<line hits="0" number="112"/>
<line hits="0" number="114"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="115"/>
<line hits="0" number="117"/>
<line hits="0" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="121,122" number="120"/>
<line hits="0" number="121"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="123,124" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,133" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,134" number="133"/>
<line hits="0" number="134"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="136,142" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="140"/>
<line hits="0" number="142"/>
<line hits="1" number="145"/>
<line hits="0" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="148,152" number="147"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,149" number="148"/>
<line hits="0" number="149"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="153,159" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="154,155" number="153"/>
<line hits="0" number="154"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="156,158" number="155"/>
<line hits="0" number="156"/>
<line hits="0" number="158"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="160,162" number="159"/>
<line hits="0" number="160"/>
<line hits="0" number="162"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/job.py" line-rate="0" name="job.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="10,11" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/log.py" line-rate="0" name="log.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,21" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="24"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,41,42" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="45"/>
<line hits="0" number="62"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="88,90" number="86"/>
<line hits="0" number="88"/>
<line hits="0" number="90"/>
<line hits="0" number="91"/>
<line hits="0" number="93"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="96,98" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="99,101" number="98"/>
<line hits="0" number="99"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,102" number="101"/>
<line hits="0" number="102"/>
<line hits="0" number="105"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="110,111" number="108"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line hits="0" number="116"/>
<line hits="0" number="117"/>
<line hits="0" number="120"/>
<line hits="0" number="123"/>
<line hits="0" number="125"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,129" number="126"/>
<line hits="0" number="127"/>
<line hits="0" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="130,132" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="132"/>
<line hits="0" number="134"/>
<line hits="0" number="138"/>
<line hits="0" number="139"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="141,142" number="140"/>
<line hits="0" number="141"/>
<line hits="0" number="142"/>
<line hits="0" number="145"/>
<line hits="0" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,153" number="148"/>
<line hits="0" number="153"/>
<line hits="0" number="154"/>
<line hits="0" number="155"/>
<line hits="0" number="156"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,158" number="157"/>
<line hits="0" number="158"/>
<line hits="0" number="165"/>
<line hits="0" number="171"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line hits="0" number="174"/>
<line hits="0" number="176"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,178" number="177"/>
<line hits="0" number="178"/>
<line hits="0" number="180"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,182" number="181"/>
<line hits="0" number="182"/>
<line hits="0" number="185"/>
<line hits="0" number="188"/>
<line hits="0" number="189"/>
<line hits="0" number="190"/>
<line hits="0" number="192"/>
<line hits="0" number="193"/>
<line hits="0" number="194"/>
<line hits="0" number="197"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="204,207" number="203"/>
<line hits="0" number="204"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="208,212" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="212"/>
<line hits="0" number="213"/>
<line hits="0" number="216"/>
<line hits="0" number="218"/>
</lines>
</class>
<class branch-rate="0.07143" complexity="0" filename="utils/misc.py" line-rate="0.3053" name="misc.py">
<methods/>
<lines>
<line hits="1" number="2"/>
<line hits="1" number="3"/>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="17"/>
<line hits="1" number="18"/>
<line hits="1" number="21"/>
<line hits="1" number="24"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
<line hits="1" number="31"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="35" number="32"/>
<line hits="1" number="33"/>
<line hits="0" number="35"/>
<line hits="1" number="38"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="49" number="48"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,52" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="1" number="55"/>
<line hits="1" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="1" number="60"/>
<line hits="1" number="61"/>
<line hits="1" number="63"/>
<line hits="1" number="64"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="1" number="68"/>
<line hits="1" number="71"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,90" number="82"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="84,90" number="83"/>
<line hits="0" number="84"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,88" number="85"/>
<line hits="0" number="86"/>
<line hits="0" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
<line hits="1" number="93"/>
<line hits="0" number="100"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,109" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="111"/>
<line hits="0" number="112"/>
<line hits="0" number="113"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="116,118" number="115"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="116"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="118"/>
<line hits="1" number="122"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="134,135" number="133"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="1" number="139"/>
<line hits="0" number="141"/>
<line hits="1" number="144"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="162,165" number="161"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="163,164" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="166,168" number="165"/>
<line hits="0" number="166"/>
<line hits="0" number="167"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="169,172" number="168"/>
<line hits="0" number="169"/>
<line hits="0" number="170"/>
<line hits="0" number="172"/>
<line hits="0" number="173"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="175,176" number="174"/>
<line hits="0" number="175"/>
<line hits="0" number="176"/>
<line hits="1" number="179"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,186" number="185"/>
<line hits="0" number="186"/>
<line hits="0" number="187"/>
<line hits="0" number="188"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,191" number="190"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="192,194" number="191"/>
<line hits="0" number="192"/>
<line hits="0" number="194"/>
<line hits="1" number="197"/>
<line hits="0" number="201"/>
<line hits="0" number="202"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,204" number="203"/>
<line hits="0" number="204"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="206,209" number="205"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="207,208" number="206"/>
<line hits="0" number="207"/>
<line hits="0" number="208"/>
<line hits="0" number="209"/>
<line hits="0" number="210"/>
<line hits="1" number="213"/>
<line hits="1" number="216"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="222,224" number="221"/>
<line hits="0" number="222"/>
<line hits="0" number="224"/>
<line hits="0" number="225"/>
<line hits="0" number="226"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="229,236" number="228"/>
<line hits="0" number="229"/>
<line hits="0" number="230"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="232,236" number="231"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="231,233" number="232"/>
<line hits="0" number="233"/>
<line hits="0" number="234"/>
<line hits="0" number="236"/>
<line hits="0" number="237"/>
<line hits="1" number="240"/>
<line hits="0" number="245"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,247" number="246"/>
<line hits="0" number="247"/>
<line hits="0" number="255"/>
<line hits="0" number="256"/>
<line hits="0" number="257"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/ossignal.py" line-rate="0" name="ossignal.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="4"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="6,12" number="5"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="5,7" number="6"/>
<line hits="0" number="7"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="5,9" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,24" number="21"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,25" number="24"/>
<line hits="0" number="25"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/project.py" line-rate="0" name="project.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,25" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,32" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,36" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="38,39" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="45"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,55" number="50"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,54" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,57" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="57"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,65" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="68,70" number="67"/>
<line hits="0" number="68"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,72" number="70"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,79" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="80,87" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="utils/py36.py" line-rate="0" name="py36.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
</lines>
</class>
<class branch-rate="0.2273" complexity="0" filename="utils/python.py" line-rate="0.3892" name="python.py">
<methods/>
<lines>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="19"/>
<line hits="0" number="36"/>
<line hits="1" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,44" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,48" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,46" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="1" number="51"/>
<line hits="0" number="72"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="75"/>
<line hits="0" number="77"/>
<line hits="0" number="78"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="80,85" number="79"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,83" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line hits="1" number="88"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
<line hits="1" number="92"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="94" number="93"/>
<line hits="0" number="94"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
<line hits="1" number="97"/>
<line hits="1" number="98"/>
<line hits="1" number="101"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="104"/>
<line hits="1" number="105"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="107" number="106"/>
<line hits="0" number="107"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="111" number="109"/>
<line hits="1" number="110"/>
<line hits="1" number="111"/>
<line hits="1" number="114"/>
<line hits="1" number="115"/>
<line hits="0" number="117"/>
<line hits="1" number="120"/>
<line hits="0" number="134"/>
<line hits="0" number="135"/>
<line hits="0" number="136"/>
<line hits="0" number="137"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="139,140" number="138"/>
<line hits="0" number="139"/>
<line hits="0" number="140"/>
<line hits="0" number="141"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="144,146" number="143"/>
<line hits="0" number="144"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="147,151" number="146"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,148" number="147"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="146,149" number="148"/>
<line hits="0" number="149"/>
<line hits="0" number="150"/>
<line hits="0" number="151"/>
<line hits="1" number="154"/>
<line hits="1" number="158"/>
<line hits="1" number="160"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="163,164" number="162"/>
<line hits="0" number="163"/>
<line hits="0" number="164"/>
<line hits="1" number="166"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="169"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="170"/>
<line hits="1" number="173"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="178" number="177"/>
<line hits="0" number="178"/>
<line branch="true" condition-coverage="100% (2/2)" hits="1" number="179"/>
<line hits="1" number="182"/>
<line hits="0" number="196"/>
<line hits="1" number="199"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="204" number="201"/>
<line hits="1" number="202"/>
<line hits="1" number="203"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="205,206" number="204"/>
<line hits="0" number="205"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="207,208" number="206"/>
<line hits="0" number="207"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="209,210" number="208"/>
<line hits="0" number="209"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="211,213" number="210"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="211"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="214,221" number="213"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="215,216" number="214"/>
<line hits="0" number="215"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="217,219" number="216"/>
<line hits="0" number="217"/>
<line hits="0" number="219"/>
<line hits="0" number="221"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="223" number="222"/>
<line hits="0" number="223"/>
<line hits="1" number="224"/>
<line hits="1" number="227"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="250,251" number="249"/>
<line hits="0" number="250"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="252,254" number="251"/>
<line hits="0" number="252"/>
<line hits="0" number="254"/>
<line hits="0" number="256"/>
<line hits="0" number="258"/>
<line hits="0" number="259"/>
<line hits="0" number="260"/>
<line hits="0" number="261"/>
<line hits="1" number="264"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="268,270" number="267"/>
<line hits="0" number="268"/>
<line hits="0" number="270"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="273,279" number="271"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="274,276" number="273"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="271,275" number="274"/>
<line hits="0" number="275"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="271,277" number="276"/>
<line hits="0" number="277"/>
<line hits="0" number="279"/>
<line hits="1" number="282"/>
<line hits="1" number="284"/>
<line hits="0" number="285"/>
<line hits="0" number="286"/>
<line hits="0" number="287"/>
<line hits="1" number="289"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="291,292" number="290"/>
<line hits="0" number="291"/>
<line hits="0" number="292"/>
<line hits="1" number="295"/>
<line hits="0" number="298"/>
<line hits="0" number="299"/>
<line hits="0" number="300"/>
<line hits="0" number="301"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="299,303" number="302"/>
<line hits="0" number="303"/>
<line hits="1" number="306"/>
<line hits="0" number="312"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="313"/>
<line hits="0" number="314"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="315"/>
<line hits="1" number="318"/>
<line hits="0" number="326"/>
<line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="330" number="329"/>
<line hits="0" number="330"/>
<line hits="0" number="332"/>
<line hits="0" number="333"/>
<line hits="1" number="335"/>
<line hits="0" number="336"/>
<line hits="1" number="339"/>
<line hits="1" number="344"/>
<line hits="0" number="345"/>
<line hits="1" number="347"/>
<line hits="0" number="348"/>
<line hits="1" number="350"/>
<line hits="0" number="351"/>
<line hits="1" number="353"/>
<line hits="0" number="354"/>
<line hits="1" number="356"/>
<line hits="0" number="358"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/reactor.py" line-rate="0.2167" name="reactor.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="4"/>
<line hits="1" number="6"/>
<line hits="1" number="9"/>
<line hits="0" number="11"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="13,14" number="12"/>
<line hits="0" number="13"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="15,16" number="14"/>
<line hits="0" number="15"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,18" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,20" number="18"/>
<line hits="0" number="19"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,21" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,25" number="24"/>
<line hits="0" number="25"/>
<line hits="1" number="28"/>
<line hits="1" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="1" number="39"/>
<line hits="0" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,42" number="41"/>
<line hits="0" number="42"/>
<line hits="1" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,46" number="45"/>
<line hits="0" number="46"/>
<line hits="1" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="1" number="53"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,68" number="58"/>
<line hits="0" number="59"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,65" number="60"/>
<line hits="0" number="61"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="1" number="75"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,82" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="85"/>
<line hits="1" number="88"/>
<line hits="0" number="89"/>
<line hits="0" number="90"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="utils/reqser.py" line-rate="0" name="reqser.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="9"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/request.py" line-rate="0" name="request.py">
<methods/>
<lines>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="24"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,63" number="61"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,63" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,77" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,76" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,76" number="71"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,73" number="72"/>
<line hits="0" number="73"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,75" number="74"/>
<line hits="0" number="75"/>
<line hits="0" number="76"/>
<line hits="0" number="77"/>
<line hits="0" number="80"/>
<line hits="0" number="84"/>
<line hits="0" number="87"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,99" number="97"/>
<line hits="0" number="98"/>
<line hits="0" number="99"/>
<line hits="0" number="100"/>
<line hits="0" number="101"/>
<line hits="0" number="104"/>
<line hits="0" number="106"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="108,109" number="107"/>
<line hits="0" number="108"/>
<line hits="0" number="109"/>
<line hits="0" number="112"/>
<line hits="0" number="118"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,120" number="119"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="121,122" number="120"/>
<line hits="0" number="121"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="123,124" number="122"/>
<line hits="0" number="123"/>
<line hits="0" number="124"/>
<line hits="0" number="127"/>
<line hits="0" number="129"/>
<line hits="0" number="130"/>
<line hits="0" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/response.py" line-rate="0.3617" name="response.py">
<methods/>
<lines>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="11"/>
<line hits="1" number="12"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="19"/>
<line hits="1" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="25,27" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="1" number="30"/>
<line hits="1" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,42" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="1" number="45"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="1" number="53"/>
<line hits="0" number="58"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,67" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line hits="0" number="68"/>
<line hits="1" number="71"/>
<line hits="0" number="78"/>
<line hits="0" number="80"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,86" number="81"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,85" number="82"/>
<line hits="0" number="83"/>
<line hits="0" number="84"/>
<line hits="0" number="85"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
<line hits="0" number="87"/>
<line hits="0" number="89"/>
<line hits="0" number="91"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/serialize.py" line-rate="0" name="serialize.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="16"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="18,19" number="17"/>
<line hits="0" number="18"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,21" number="19"/>
<line hits="0" number="20"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
<line hits="0" number="22"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,25" number="23"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,27" number="25"/>
<line hits="0" number="26"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="28,29" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,31" number="29"/>
<line hits="0" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,33" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,36" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/signal.py" line-rate="0" name="signal.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,46" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,44" number="33"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="49"/>
<line hits="0" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,60" number="55"/>
<line hits="0" number="56"/>
<line hits="0" number="60"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="64"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,70" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="67"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,69" number="68"/>
<line hits="0" number="69"/>
<line hits="0" number="70"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,72" number="71"/>
<line hits="0" number="72"/>
<line hits="0" number="75"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,80" number="79"/>
<line hits="0" number="80"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/sitemap.py" line-rate="0.24" name="sitemap.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="10"/>
<line hits="1" number="13"/>
<line hits="1" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="1" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,25" number="24"/>
<line hits="0" number="25"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,36" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,34" number="30"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,32" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="34"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="24,37" number="36"/>
<line hits="0" number="37"/>
<line hits="1" number="40"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,45" number="44"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,46" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/spider.py" line-rate="0.3636" name="spider.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
<line hits="1" number="4"/>
<line hits="1" number="5"/>
<line hits="1" number="6"/>
<line hits="1" number="7"/>
<line hits="1" number="10"/>
<line hits="1" number="13"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="15,18" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="19,22" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="1" number="25"/>
<line hits="0" number="31"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,34" number="33"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,40" number="34"/>
<line hits="0" number="40"/>
<line hits="1" number="43"/>
<line hits="0" number="55"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,59" number="56"/>
<line hits="0" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="60,63" number="59"/>
<line hits="0" number="60"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="64,67" number="63"/>
<line hits="0" number="64"/>
<line hits="0" number="67"/>
<line hits="1" number="70"/>
<line hits="1" number="71"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/ssl.py" line-rate="0" name="ssl.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="9"/>
<line hits="0" number="12"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="21"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,29" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="29"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="31,32" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,35" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
<line hits="0" number="39"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,52" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="47"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,50" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="57"/>
<line hits="0" number="58"/>
<line hits="0" number="61"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/template.py" line-rate="0" name="template.py">
<methods/>
<lines>
<line hits="0" number="3"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,19" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="36"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/test.py" line-rate="0" name="test.py">
<methods/>
<lines>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="16"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,18" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="21"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,23" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="37"/>
<line hits="0" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="45,46" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
<line hits="0" number="51"/>
<line hits="0" number="52"/>
<line hits="0" number="53"/>
<line hits="0" number="54"/>
<line hits="0" number="57"/>
<line hits="0" number="62"/>
<line hits="0" number="63"/>
<line hits="0" number="65"/>
<line hits="0" number="66"/>
<line hits="0" number="69"/>
<line hits="0" number="72"/>
<line hits="0" number="73"/>
<line hits="0" number="76"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="82"/>
<line hits="0" number="85"/>
<line hits="0" number="89"/>
<line hits="0" number="92"/>
<line hits="0" number="93"/>
<line hits="0" number="94"/>
<line hits="0" number="95"/>
<line hits="0" number="96"/>
<line hits="0" number="99"/>
<line hits="0" number="103"/>
<line hits="0" number="104"/>
<line hits="0" number="106"/>
<line hits="0" number="107"/>
<line hits="0" number="109"/>
<line hits="0" number="110"/>
<line hits="0" number="112"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/testproc.py" line-rate="0" name="testproc.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="7"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="13"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="17,18" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="20"/>
<line hits="0" number="21"/>
<line hits="0" number="22"/>
<line hits="0" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,31" number="25"/>
<line hits="0" number="26"/>
<line hits="0" number="27"/>
<line hits="0" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line hits="0" number="38"/>
<line hits="0" number="39"/>
<line hits="0" number="40"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="0" number="48"/>
<line hits="0" number="49"/>
<line hits="0" number="50"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/testsite.py" line-rate="0" name="testsite.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="3"/>
<line hits="0" number="6"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="10"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="14"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="18"/>
<line hits="0" number="19"/>
<line hits="0" number="22"/>
<line hits="0" number="23"/>
<line hits="0" number="24"/>
<line hits="0" number="25"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="0" number="32"/>
<line hits="0" number="33"/>
<line hits="0" number="34"/>
<line hits="0" number="35"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,41" number="40"/>
<line hits="0" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/trackref.py" line-rate="0.3889" name="trackref.py">
<methods/>
<lines>
<line hits="1" number="12"/>
<line hits="1" number="13"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="19"/>
<line hits="1" number="20"/>
<line hits="1" number="23"/>
<line hits="1" number="26"/>
<line hits="1" number="28"/>
<line hits="0" number="29"/>
<line hits="0" number="30"/>
<line hits="0" number="31"/>
<line hits="1" number="34"/>
<line hits="0" number="36"/>
<line hits="0" number="37"/>
<line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,40,46" number="38"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="41,42" number="40"/>
<line hits="0" number="41"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,44" number="42"/>
<line hits="0" number="43"/>
<line hits="0" number="44"/>
<line hits="0" number="45"/>
<line hits="0" number="46"/>
<line hits="1" number="49"/>
<line hits="0" number="51"/>
<line hits="1" number="54"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,57" number="56"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="56,58" number="57"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="59,60" number="58"/>
<line hits="0" number="59"/>
<line hits="0" number="60"/>
<line hits="1" number="63"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,66" number="65"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="65,67" number="66"/>
<line hits="0" number="67"/>
</lines>
</class>
<class branch-rate="0" complexity="0" filename="utils/url.py" line-rate="0.3333" name="url.py">
<methods/>
<lines>
<line hits="1" number="8"/>
<line hits="1" number="9"/>
<line hits="1" number="10"/>
<line hits="1" number="14"/>
<line hits="1" number="15"/>
<line hits="1" number="16"/>
<line hits="1" number="19"/>
<line hits="0" number="21"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="23,24" number="22"/>
<line hits="0" number="23"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,25" number="24"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="25"/>
<line hits="1" number="28"/>
<line hits="0" number="30"/>
<line hits="1" number="33"/>
<line hits="0" number="34"/>
<line hits="1" number="37"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,43" number="41"/>
<line hits="0" number="42"/>
<line hits="0" number="43"/>
<line hits="1" number="46"/>
<line hits="0" number="69"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,72" number="70"/>
<line hits="0" number="71"/>
<line hits="0" number="72"/>
<line hits="1" number="75"/>
<line hits="0" number="77"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="79,83" number="78"/>
<line hits="0" number="79"/>
<line hits="0" number="80"/>
<line hits="0" number="81"/>
<line hits="0" number="83"/>
<line hits="1" number="86"/>
<line hits="0" number="87"/>
<line hits="1" number="108"/>
<line hits="0" number="109"/>
<line hits="1" number="124"/>
<line hits="0" number="125"/>
<line hits="1" number="128"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="132,133" number="131"/>
<line hits="0" number="132"/>
<line hits="0" number="133"/>
<line hits="1" number="136"/>
<line hits="0" number="148"/>
<line hits="0" number="149"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="151,152" number="150"/>
<line hits="0" number="151"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="153,157" number="152"/>
<line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="156,157" number="153"/>
<line hits="0" number="156"/>
<line hits="0" number="157"/>
</lines>
</class>
<class branch-rate="1" complexity="0" filename="utils/versions.py" line-rate="0" name="versions.py">
<methods/>
<lines>
<line hits="0" number="1"/>
<line hits="0" number="2"/>
<line hits="0" number="4"/>
<line hits="0" number="5"/>
<line hits="0" number="6"/>
<line hits="0" number="7"/>
<line hits="0" number="8"/>
<line hits="0" number="9"/>
<line hits="0" number="11"/>
<line hits="0" number="12"/>
<line hits="0" number="15"/>
<line hits="0" number="16"/>
<line hits="0" number="17"/>
<line hits="0" number="19"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>