text:
</signal>
<signal name="FUZZ1:N$58">
<contactref element="FUZZ1:R46" pad="2"/>
<contactref element="FUZZ1:R44" pad="1"/>
<contactref element="FUZZ1:C42" pad="1"/>
<wire x1="74.422" y1="281.94" x2="85.598" y2="281.94" width="0" layer="19" extent="1-1"/>
<wire x1="66.548" y1="281.94" x2="74.422" y2="281.94" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="FUZZ1:N$59">
<contactref element="FUZZ1:R44" pad="2"/>
<contactref element="FUZZ1:Q2" pad="C"/>
<contactref element="FUZZ1:JP1" pad="1"/>
<wire x1="128.27" y1="277.495" x2="129.54" y2="284.31" width="0" layer="19" extent="1-1"/>
<wire x1="87.122" y1="281.94" x2="128.27" y2="277.495" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="FUZZ1:N$57">
<contactref element="FUZZ1:C42" pad="2"/>
<contactref element="FUZZ1:R42" pad="P$3"/>
<wire x1="68.072" y1="281.94" x2="94.02" y2="61.08" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$61">
<contactref element="CREAM1:R48" pad="2"/>
<contactref element="CREAM1:R49" pad="2"/>
<contactref element="CREAM1:C44" pad="1"/>
<contactref element="CREAM1:C28" pad="+"/>
<contactref element="CREAM1:T1" pad="B"/>
<wire x1="185.08" y1="248.92" x2="246.888" y2="223.52" width="0" layer="19" extent="1-1"/>
<wire x1="147.64" y1="246.55" x2="185.08" y2="248.92" width="0" layer="19" extent="1-1"/>
<wire x1="118.872" y1="200.66" x2="147.64" y2="246.55" width="0" layer="19" extent="1-1"/>
<wire x1="113.792" y1="200.66" x2="118.872" y2="200.66" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$62">
<contactref element="CREAM1:R50" pad="1"/>
<contactref element="CREAM1:T1" pad="E"/>
<wire x1="107.188" y1="200.66" x2="149.54" y2="246.55" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$63">
<contactref element="CREAM1:R49" pad="1"/>
<contactref element="CREAM1:C44" pad="2"/>
<contactref element="CREAM1:R51" pad="2"/>
<contactref element="CREAM1:C45" pad="1"/>
<contactref element="CREAM1:T1" pad="C"/>
<wire x1="248.412" y1="223.52" x2="240.538" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="148.59" y1="248.75" x2="240.538" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="112.268" y1="200.66" x2="148.59" y2="248.75" width="0" layer="19" extent="1-1"/>
<wire x1="103.632" y1="200.66" x2="112.268" y2="200.66" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$64">
<contactref element="CREAM1:C45" pad="2"/>
<contactref element="CREAM1:R71" pad="P$3"/>
<wire x1="119.42" y1="48.38" x2="242.062" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$65">
<contactref element="CREAM1:R53" pad="2"/>
<contactref element="CREAM1:R54" pad="2"/>
<contactref element="CREAM1:R56" pad="2"/>
<contactref element="CREAM1:C47" pad="1"/>
<contactref element="CREAM1:C1" pad="-"/>
<contactref element="CREAM1:T2" pad="B"/>
<wire x1="169.25" y1="248.92" x2="230.378" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="137.48" y1="246.55" x2="169.25" y2="248.92" width="0" layer="19" extent="1-1"/>
<wire x1="93.472" y1="200.66" x2="137.48" y2="246.55" width="0" layer="19" extent="1-1"/>
<wire x1="88.392" y1="200.66" x2="93.472" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="78.232" y1="200.66" x2="88.392" y2="200.66" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$68">
<contactref element="CREAM1:C47" pad="2"/>
<contactref element="CREAM1:R56" pad="1"/>
<contactref element="CREAM1:R57" pad="2"/>
<contactref element="CREAM1:C49" pad="1"/>
<contactref element="CREAM1:T2" pad="C"/>
<contactref element="CREAM1:D2" pad="ANODE"/>
<contactref element="CREAM1:D1" pad="CATHODE"/>
<wire x1="225.298" y1="261.62" x2="231.902" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="138.43" y1="248.75" x2="225.298" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="76.708" y1="200.66" x2="138.43" y2="248.75" width="0" layer="19" extent="1-1"/>
<wire x1="73.152" y1="200.66" x2="76.708" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="255.27" y1="167.32" x2="231.902" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="250.81" y1="165.42" x2="255.27" y2="167.32" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$66">
<contactref element="CREAM1:C1" pad="+"/>
<contactref element="CREAM1:D2" pad="CATHODE"/>
<contactref element="CREAM1:D1" pad="ANODE"/>
<wire x1="251.46" y1="167.32" x2="173.65" y2="248.92" width="0" layer="19" extent="1-1"/>
<wire x1="254.62" y1="165.42" x2="251.46" y2="167.32" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$67">
<contactref element="CREAM1:R55" pad="2"/>
<contactref element="CREAM1:T2" pad="E"/>
<wire x1="83.312" y1="200.66" x2="139.38" y2="246.55" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$69">
<contactref element="CREAM1:R58" pad="1"/>
<contactref element="CREAM1:C49" pad="2"/>
<wire x1="66.548" y1="200.66" x2="226.822" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$70">
<contactref element="CREAM1:R58" pad="2"/>
<contactref element="CREAM1:R59" pad="2"/>
<contactref element="CREAM1:R61" pad="2"/>
<contactref element="CREAM1:C50" pad="1"/>
<contactref element="CREAM1:C2" pad="-"/>
<contactref element="CREAM1:T3" pad="B"/>
<wire x1="62.992" y1="200.66" x2="52.832" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="68.072" y1="200.66" x2="62.992" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="127.32" y1="246.55" x2="68.072" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="157.82" y1="248.92" x2="127.32" y2="246.55" width="0" layer="19" extent="1-1"/>
<wire x1="220.218" y1="261.62" x2="157.82" y2="248.92" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$71">
<contactref element="CREAM1:R60" pad="2"/>
<contactref element="CREAM1:T3" pad="E"/>
<wire x1="57.912" y1="200.66" x2="129.22" y2="246.55" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$72">
<contactref element="CREAM1:R61" pad="1"/>
<contactref element="CREAM1:C50" pad="2"/>
<contactref element="CREAM1:R62" pad="2"/>
<contactref element="CREAM1:C52" pad="1"/>
<contactref element="CREAM1:R63" pad="1"/>
<contactref element="CREAM1:T3" pad="C"/>
<contactref element="CREAM1:D4" pad="CATHODE"/>
<contactref element="CREAM1:D3" pad="ANODE"/>
<wire x1="47.752" y1="200.66" x2="51.308" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="41.148" y1="200.66" x2="47.752" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="128.27" y1="248.75" x2="51.308" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="215.138" y1="261.62" x2="128.27" y2="248.75" width="0" layer="19" extent="1-1"/>
<wire x1="221.742" y1="261.62" x2="215.138" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="243.84" y1="167.32" x2="221.742" y2="261.62" width="0" layer="19" extent="1-1"/>
<wire x1="247" y1="165.42" x2="243.84" y2="167.32" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$76">
<contactref element="CREAM1:C2" pad="+"/>
<contactref element="CREAM1:D4" pad="ANODE"/>
<contactref element="CREAM1:D3" pad="CATHODE"/>
<wire x1="243.19" y1="165.42" x2="247.65" y2="167.32" width="0" layer="19" extent="1-1"/>
<wire x1="162.22" y1="248.92" x2="243.19" y2="165.42" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$74">
<contactref element="CREAM1:R63" pad="2"/>
<contactref element="CREAM1:R70" pad="P$1"/>
<contactref element="CREAM1:C55" pad="2"/>
<wire x1="201.422" y1="261.62" x2="42.672" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="116.88" y1="25.52" x2="42.672" y2="200.66" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$75">
<contactref element="CREAM1:R70" pad="P$3"/>
<contactref element="CREAM1:C52" pad="2"/>
<contactref element="CREAM1:R64" pad="1"/>
<wire x1="216.662" y1="261.62" x2="36.068" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="121.96" y1="25.52" x2="36.068" y2="200.66" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$73">
<contactref element="CREAM1:R70" pad="P$2"/>
<contactref element="CREAM1:C53" pad="1"/>
<wire x1="119.38" y1="25.52" x2="212.598" y2="238.76" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$77">
<contactref element="CREAM1:C53" pad="2"/>
<contactref element="CREAM1:R65" pad="2"/>
<contactref element="CREAM1:R66" pad="1"/>
<contactref element="CREAM1:T4" pad="B"/>
<wire x1="25.908" y1="200.66" x2="32.512" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="117.16" y1="246.55" x2="32.512" y2="200.66" width="0" layer="19" extent="1-1"/>
<wire x1="214.122" y1="238.76" x2="117.16" y2="246.55" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$78">
<contactref element="CREAM1:R67" pad="1"/>
<contactref element="CREAM1:C54" pad="1"/>
<contactref element="CREAM1:T4" pad="C"/>
<wire x1="204.978" y1="261.62" x2="257.048" y2="223.52" width="0" layer="19" extent="1-1"/>
<wire x1="118.11" y1="248.75" x2="204.978" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$79">
<contactref element="CREAM1:R68" pad="2"/>
<contactref element="CREAM1:T4" pad="E"/>
<wire x1="119.06" y1="246.55" x2="253.492" y2="223.52" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$80">
<contactref element="CREAM1:C54" pad="2"/>
<contactref element="CREAM1:R69" pad="P$3"/>
<wire x1="121.96" y1="71.24" x2="206.502" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$84">
<contactref element="CREAM1:R71" pad="P$1"/>
<contactref element="CREAM1:R52" pad="1"/>
<wire x1="97.028" y1="200.66" x2="114.34" y2="48.38" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$85">
<contactref element="CREAM1:R53" pad="1"/>
<contactref element="CREAM1:C46" pad="2"/>
<wire x1="91.948" y1="200.66" x2="236.982" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$86">
<contactref element="CREAM1:R71" pad="P$2"/>
<contactref element="CREAM1:C46" pad="1"/>
<wire x1="116.84" y1="48.38" x2="235.458" y2="261.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CREAM1:N$1">
<contactref element="CREAM1:R47" pad="2"/>
<contactref element="CREAM1:C28" pad="-"/>
<wire x1="123.952" y1="200.66" x2="180.68" y2="248.92" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="ACID1:TO4.5V">
<contactref element="ACID1:R72" pad="1"/>
<contactref element="ACID1:JP6" pad="1"/>
<wire x1="38.608" y1="90.17" x2="43.18" y2="92.71" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$8">
<contactref element="U$22" pad="P$12"/>
<contactref element="FUZZ1:C28" pad="+"/>
<wire x1="109.22" y1="12.7" x2="183.81" y2="284.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$15">
<contactref element="R1" pad="1"/>
<contactref element="R2" pad="1"/>
<contactref element="IC2" pad="3"/>
<wire x1="235.458" y1="107.95" x2="206.36" y2="152.0222" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="105.41" x2="235.458" y2="107.95" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$18">
<contactref element="R4" pad="1"/>
<contactref element="IC2" pad="1"/>
<contactref element="J8" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J8" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="205.06" y1="152.0222" x2="20.32" y2="103.56" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="100.33" x2="205.06" y2="152.0222" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$19">
<contactref element="R5" pad="1"/>
<contactref element="R6" pad="1"/>
<contactref element="IC2" pad="5"/>
<wire x1="243.078" y1="96.52" x2="207.66" y2="152.0222" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="86.36" x2="243.078" y2="96.52" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$20">
<contactref element="R8" pad="2"/>
<contactref element="IC2" pad="6"/>
<contactref element="R7" pad="1"/>
<wire x1="240.538" y1="86.36" x2="208.31" y2="152.0222" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="82.55" x2="240.538" y2="86.36" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$24">
<contactref element="R9" pad="1"/>
<contactref element="R10" pad="1"/>
<contactref element="IC2" pad="10"/>
<wire x1="230.378" y1="68.58" x2="207.66" y2="157.8578" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="68.58" x2="230.378" y2="68.58" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$25">
<contactref element="R11" pad="1"/>
<contactref element="R12" pad="2"/>
<contactref element="IC2" pad="9"/>
<wire x1="230.378" y1="64.77" x2="208.31" y2="157.8578" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="64.77" x2="230.378" y2="64.77" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$28">
<contactref element="R12" pad="1"/>
<contactref element="IC2" pad="8"/>
<contactref element="J12" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J12" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="208.96" y1="157.8578" x2="91.44" y2="103.56" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="64.77" x2="208.96" y2="157.8578" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$29">
<contactref element="R13" pad="1"/>
<contactref element="R14" pad="1"/>
<contactref element="IC2" pad="12"/>
<wire x1="230.378" y1="50.8" x2="206.36" y2="157.8578" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="50.8" x2="230.378" y2="50.8" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$30">
<contactref element="R15" pad="1"/>
<contactref element="R16" pad="2"/>
<contactref element="IC2" pad="13"/>
<wire x1="230.378" y1="46.99" x2="205.71" y2="157.8578" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="46.99" x2="230.378" y2="46.99" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$33">
<contactref element="R16" pad="1"/>
<contactref element="IC2" pad="14"/>
<contactref element="J15" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J15" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="205.06" y1="157.8578" x2="127" y2="103.56" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="46.99" x2="205.06" y2="157.8578" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$34">
<contactref element="IC6" pad="5"/>
<contactref element="R17" pad="1"/>
<contactref element="R18" pad="1"/>
<wire x1="235.458" y1="33.02" x2="234.33" y2="36.4522" width="0" layer="19" extent="1-1"/>
<wire x1="230.378" y1="33.02" x2="235.458" y2="33.02" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$35">
<contactref element="IC6" pad="6"/>
<contactref element="R19" pad="1"/>
<contactref element="R20" pad="2"/>
<wire x1="236.982" y1="29.21" x2="234.98" y2="36.4522" width="0" layer="19" extent="1-1"/>
<wire x1="230.378" y1="29.21" x2="236.982" y2="29.21" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$38">
<contactref element="IC6" pad="7"/>
<contactref element="R20" pad="1"/>
<contactref element="J10" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J10" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="235.458" y1="29.21" x2="235.63" y2="36.4522" width="0" layer="19" extent="1-1"/>
<wire x1="175.26" y1="73.08" x2="235.63" y2="36.4522" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$39">
<contactref element="R21" pad="1"/>
<contactref element="R22" pad="1"/>
<contactref element="IC6" pad="3"/>
<wire x1="230.378" y1="15.24" x2="235.458" y2="15.24" width="0" layer="19" extent="1-1"/>
<wire x1="233.03" y1="36.4522" x2="235.458" y2="15.24" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$40">
<contactref element="R23" pad="1"/>
<contactref element="R24" pad="2"/>
<contactref element="IC6" pad="2"/>
<wire x1="230.378" y1="11.43" x2="236.982" y2="11.43" width="0" layer="19" extent="1-1"/>
<wire x1="232.38" y1="36.4522" x2="230.378" y2="11.43" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$43">
<contactref element="R24" pad="1"/>
<contactref element="IC6" pad="1"/>
<contactref element="J18" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J18" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="231.73" y1="36.4522" x2="235.458" y2="11.43" width="0" layer="19" extent="1-1"/>
<wire x1="162.56" y1="103.56" x2="231.73" y2="36.4522" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="4.5V">
<contactref element="U$44" pad="P$1" route="any" routetag="G$1.VOLTAGE"/>
<contactref element="U$44" pad="P$3" route="any" routetag="G$1.VOLTAGE"/>
<contactref element="U$44" pad="P$2" route="any" routetag="G$1.VOLTAGE"/>
<contactref element="R25" pad="1"/>
<contactref element="R26" pad="2"/>
<contactref element="ACID1:R72" pad="2"/>
<contactref element="CLIP1:R34" pad="2"/>
<wire x1="87.122" y1="40.64" x2="90.678" y2="38.1" width="0" layer="19" extent="1-1"/>
<wire x1="86.36" y1="35.56" x2="90.678" y2="38.1" width="0" layer="19" extent="1-1"/>
<wire x1="40.132" y1="90.17" x2="87.122" y2="40.64" width="0" layer="19" extent="1-1"/>
<wire x1="-107.315" y1="4.318" x2="40.132" y2="90.17" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCA_OUTPUT1">
<contactref element="R41" pad="2"/>
<contactref element="J6" pad="SWITCH_B@1" route="any" routetag="G$1.SWITCH"/>
<contactref element="J6" pad="SWITCH_T@3" route="any" routetag="G$1.SWITCH"/>
<contactref element="R18" pad="2"/>
<contactref element="R90" pad="2"/>
<wire x1="-72.898" y1="147.32" x2="13.86" y2="101.6" width="0" layer="19" extent="1-16"/>
<wire x1="-42.418" y1="304.8" x2="-72.898" y2="147.32" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="33.02" x2="13.86" y2="101.6" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="N$14">
<contactref element="R28" pad="2"/>
<contactref element="C23" pad="2"/>
<contactref element="C28" pad="+"/>
<contactref element="IC3" pad="3"/>
<wire x1="26.035" y1="51.562" x2="29.195" y2="50.4222" width="0" layer="19" extent="1-1"/>
<wire x1="-12.192" y1="63.5" x2="26.035" y2="51.562" width="0" layer="19" extent="1-1"/>
<wire x1="-20.025" y1="60.325" x2="-12.192" y2="63.5" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="GUITAR_IN">
<contactref element="R27" pad="2"/>
<contactref element="C28" pad="-"/>
<contactref element="U$68" pad="6"/>
<contactref element="U$68" pad="5"/>
<wire x1="16.51" y1="57.15" x2="19.05" y2="57.15" width="0" layer="19" extent="1-1"/>
<wire x1="-13.843" y1="63.5" x2="16.51" y2="57.15" width="0" layer="19" extent="1-1"/>
<wire x1="-24.425" y1="60.325" x2="-13.843" y2="63.5" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$17">
<contactref element="R31" pad="1"/>
<contactref element="C24" pad="1"/>
<contactref element="R29" pad="2"/>
<contactref element="IC3" pad="1"/>
<wire x1="26.035" y1="47.752" x2="27.94" y2="47.752" width="0" layer="19" extent="1-1"/>
<wire x1="27.895" y1="50.4222" x2="27.94" y2="47.752" width="0" layer="19" extent="1-1"/>
<wire x1="-31.242" y1="86.36" x2="26.035" y2="47.752" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$44">
<contactref element="C24" pad="2"/>
<contactref element="R29" pad="1"/>
<contactref element="R30" pad="2"/>
<contactref element="IC3" pad="2"/>
<wire x1="27.94" y1="46.228" x2="28.545" y2="50.4222" width="0" layer="19" extent="1-1"/>
<wire x1="27.94" y1="44.577" x2="27.94" y2="46.228" width="0" layer="19" extent="1-1"/>
<wire x1="26.035" y1="46.228" x2="27.94" y2="46.228" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="GUITAR_OUT">
<contactref element="R31" pad="2"/>
<contactref element="R32" pad="2"/>
<contactref element="U$15" pad="P$1" route="any" routetag="G$1.VOLTAGE"/>
<contactref element="U$15" pad="P$3" route="any" routetag="G$1.VOLTAGE"/>
<contactref element="U$15" pad="P$2" route="any" routetag="G$1.VOLTAGE"/>
<wire x1="-29.718" y1="86.36" x2="-121.92" y2="-49.53" width="0" layer="19" extent="1-1"/>
<wire x1="-24.638" y1="86.36" x2="-29.718" y2="86.36" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$45">
<contactref element="R30" pad="1"/>
<contactref element="C29" pad="+"/>
<wire x1="27.94" y1="40.3" x2="27.94" y2="43.053" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$46">
<contactref element="R33" pad="2"/>
<contactref element="R48" pad="2"/>
<contactref element="C18" pad="2"/>
<contactref element="IC3" pad="7"/>
<wire x1="-19.558" y1="86.36" x2="31.795" y2="50.4222" width="0" layer="19" extent="1-1"/>
<wire x1="-19.558" y1="91.44" x2="-19.558" y2="86.36" width="0" layer="19" extent="1-1"/>
<wire x1="-24.638" y1="91.44" x2="-19.558" y2="91.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$47">
<contactref element="R34" pad="2"/>
<contactref element="IC3" pad="5"/>
<wire x1="-29.718" y1="91.44" x2="30.495" y2="50.4222" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="EURORACK_IN">
<contactref element="R34" pad="1"/>
<contactref element="J20" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J20" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="7.62" y1="34.98" x2="-31.242" y2="91.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$48">
<contactref element="IC5" pad="4"/>
<contactref element="R38" pad="1"/>
<contactref element="R37" pad="1"/>
<wire x1="-33.782" y1="314.96" x2="-28.575" y2="325.06" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="309.88" x2="-33.782" y2="314.96" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$49">
<contactref element="R35" pad="2"/>
<contactref element="IC5" pad="3"/>
<contactref element="R36" pad="2"/>
<wire x1="-37.338" y1="314.96" x2="-29.845" y2="325.06" width="0" layer="19" extent="1-1"/>
<wire x1="-42.418" y1="314.96" x2="-37.338" y2="314.96" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$50">
<contactref element="IC5" pad="5"/>
<contactref element="R39" pad="1"/>
<contactref element="IC4" pad="3"/>
<wire x1="-27.305" y1="325.06" x2="-18.43" y2="324.7422" width="0" layer="19" extent="1-1"/>
<wire x1="-38.862" y1="309.88" x2="-27.305" y2="325.06" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$51">
<contactref element="R40" pad="1"/>
<contactref element="C22" pad="1"/>
<contactref element="IC4" pad="2"/>
<wire x1="-33.782" y1="309.88" x2="-19.08" y2="324.7422" width="0" layer="19" extent="1-1"/>
<wire x1="-33.782" y1="299.72" x2="-33.782" y2="309.88" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$52">
<contactref element="R40" pad="2"/>
<contactref element="C22" pad="2"/>
<contactref element="R41" pad="1"/>
<contactref element="IC4" pad="1"/>
<wire x1="-32.258" y1="309.88" x2="-19.73" y2="324.7422" width="0" layer="19" extent="1-1"/>
<wire x1="-32.258" y1="299.72" x2="-32.258" y2="309.88" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="304.8" x2="-32.258" y2="309.88" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$53">
<contactref element="R38" pad="2"/>
<contactref element="U$71" pad="2"/>
<wire x1="-42.418" y1="309.88" x2="-12.7" y2="308.84" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCA_SIG_IN">
<contactref element="R33" pad="1"/>
<contactref element="R32" pad="1"/>
<contactref element="IC3" pad="10"/>
<wire x1="-21.082" y1="86.36" x2="30.495" y2="56.2578" width="0" layer="19" extent="1-1"/>
<wire x1="-26.162" y1="86.36" x2="-21.082" y2="86.36" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$54">
<contactref element="Q1" pad="B"/>
<contactref element="IC4" pad="7"/>
<contactref element="D17" pad="ANODE"/>
<wire x1="-23.81" y1="313.86" x2="-15.83" y2="324.7422" width="0" layer="19" extent="1-1"/>
<wire x1="-28.59" y1="314.01" x2="-23.81" y2="313.86" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$55">
<contactref element="R43" pad="1"/>
<contactref element="R44" pad="2"/>
<contactref element="R45" pad="2"/>
<contactref element="IC4" pad="6"/>
<contactref element="D17" pad="CATHODE"/>
<wire x1="-27.94" y1="315.91" x2="-16.48" y2="324.7422" width="0" layer="19" extent="1-1"/>
<wire x1="-33.782" y1="304.8" x2="-27.94" y2="315.91" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="299.72" x2="-33.782" y2="304.8" width="0" layer="19" extent="1-1"/>
<wire x1="-42.418" y1="299.72" x2="-37.338" y2="299.72" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$56">
<contactref element="R43" pad="2"/>
<contactref element="R42" pad="2"/>
<contactref element="Q1" pad="E"/>
<wire x1="-32.258" y1="304.8" x2="-21.91" y2="313.86" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="304.8" x2="-32.258" y2="304.8" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$57">
<contactref element="Q1" pad="C"/>
<contactref element="IC5" pad="1"/>
<wire x1="-32.385" y1="325.06" x2="-22.86" y2="316.06" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$58">
<contactref element="R45" pad="1"/>
<contactref element="U$70" pad="2"/>
<wire x1="-38.862" y1="299.72" x2="-20.32" y2="308.84" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCA_CV_IN1">
<contactref element="R69" pad="P$3"/>
<contactref element="J21" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J21" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="7.62" y1="47.68" x2="22.9" y2="35.68" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$59">
<contactref element="R44" pad="1"/>
<contactref element="R69" pad="P$2"/>
<wire x1="-43.942" y1="299.72" x2="20.32" y2="35.68" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="MIX_OUT">
<contactref element="R35" pad="1"/>
<contactref element="IC3" pad="9"/>
<contactref element="IC3" pad="8"/>
<contactref element="D15" pad="ANODE"/>
<wire x1="31.795" y1="56.2578" x2="31.145" y2="56.2578" width="0" layer="19" extent="1-1"/>
<wire x1="-20.97" y1="80.33" x2="31.145" y2="56.2578" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="314.96" x2="-20.97" y2="80.33" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$60">
<contactref element="R47" pad="2"/>
<contactref element="IC3" pad="13"/>
<contactref element="IC3" pad="14"/>
<wire x1="27.895" y1="56.2578" x2="28.545" y2="56.2578" width="0" layer="19" extent="1-1"/>
<wire x1="-19.558" y1="71.12" x2="27.895" y2="56.2578" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$61">
<contactref element="R46" pad="2"/>
<contactref element="C17" pad="+"/>
<contactref element="IC3" pad="12"/>
<contactref element="D15" pad="CATHODE"/>
<wire x1="-19.558" y1="76.2" x2="29.195" y2="56.2578" width="0" layer="19" extent="1-1"/>
<wire x1="-20.32" y1="82.23" x2="-19.558" y2="76.2" width="0" layer="19" extent="1-1"/>
<wire x1="-38.44" y1="88.9" x2="-20.32" y2="82.23" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="ENVELOPE_OUT">
<contactref element="R47" pad="1"/>
<contactref element="J1" pad="SWITCH_B@1" route="any" routetag="G$1.SWITCH"/>
<contactref element="J1" pad="SWITCH_T@3" route="any" routetag="G$1.SWITCH"/>
<contactref element="J24" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J24" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="7.62" y1="60.38" x2="178.96" y2="81.28" width="0" layer="19" extent="1-16"/>
<wire x1="-21.082" y1="71.12" x2="7.62" y2="60.38" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$62">
<contactref element="R48" pad="1"/>
<contactref element="C18" pad="1"/>
<contactref element="IC3" pad="6"/>
<wire x1="-21.082" y1="91.44" x2="31.145" y2="50.4222" width="0" layer="19" extent="1-1"/>
<wire x1="-26.162" y1="91.44" x2="-21.082" y2="91.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$106">
<contactref element="R101" pad="1"/>
<contactref element="R100" pad="1"/>
<contactref element="IC5" pad="13"/>
<wire x1="-38.862" y1="345.44" x2="-38.862" y2="350.52" width="0" layer="19" extent="1-1"/>
<wire x1="-28.575" y1="330.26" x2="-38.862" y2="345.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$107">
<contactref element="R98" pad="2"/>
<contactref element="R99" pad="2"/>
<contactref element="IC5" pad="14"/>
<wire x1="-32.258" y1="345.44" x2="-32.258" y2="350.52" width="0" layer="19" extent="1-1"/>
<wire x1="-29.845" y1="330.26" x2="-32.258" y2="345.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$108">
<contactref element="R102" pad="1"/>
<contactref element="IC5" pad="12"/>
<contactref element="IC4" pad="12"/>
<wire x1="-27.305" y1="330.26" x2="-18.43" y2="330.5778" width="0" layer="19" extent="1-1"/>
<wire x1="-33.782" y1="340.36" x2="-27.305" y2="330.26" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$109">
<contactref element="R103" pad="1"/>
<contactref element="C44" pad="1"/>
<contactref element="IC4" pad="13"/>
<wire x1="-38.862" y1="335.28" x2="-19.08" y2="330.5778" width="0" layer="19" extent="1-1"/>
<wire x1="-38.862" y1="340.36" x2="-38.862" y2="335.28" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$110">
<contactref element="R103" pad="2"/>
<contactref element="C44" pad="2"/>
<contactref element="R104" pad="1"/>
<contactref element="IC4" pad="14"/>
<wire x1="-33.782" y1="335.28" x2="-19.73" y2="330.5778" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="335.28" x2="-33.782" y2="335.28" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="340.36" x2="-37.338" y2="335.28" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$111">
<contactref element="R101" pad="2"/>
<contactref element="U$111" pad="2"/>
<wire x1="-37.338" y1="350.52" x2="-33.02" y2="359.64" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$112">
<contactref element="Q3" pad="B"/>
<contactref element="IC4" pad="8"/>
<contactref element="D18" pad="ANODE"/>
<wire x1="-15.83" y1="330.5778" x2="-23.81" y2="346.88" width="0" layer="19" extent="1-1"/>
<wire x1="-43.83" y1="339.41" x2="-23.81" y2="346.88" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$113">
<contactref element="R106" pad="1"/>
<contactref element="R107" pad="2"/>
<contactref element="R108" pad="2"/>
<contactref element="IC4" pad="9"/>
<contactref element="D18" pad="CATHODE"/>
<wire x1="-42.418" y1="330.2" x2="-16.48" y2="330.5778" width="0" layer="19" extent="1-1"/>
<wire x1="-42.418" y1="335.28" x2="-42.418" y2="330.2" width="0" layer="19" extent="1-1"/>
<wire x1="-43.18" y1="341.31" x2="-42.418" y2="335.28" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="345.44" x2="-43.18" y2="341.31" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$114">
<contactref element="R106" pad="2"/>
<contactref element="R105" pad="2"/>
<contactref element="Q3" pad="E"/>
<wire x1="-42.418" y1="345.44" x2="-21.91" y2="346.88" width="0" layer="19" extent="1-1"/>
<wire x1="-42.418" y1="350.52" x2="-42.418" y2="345.44" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$115">
<contactref element="Q3" pad="C"/>
<contactref element="IC5" pad="16"/>
<wire x1="-32.385" y1="330.26" x2="-22.86" y2="349.08" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$116">
<contactref element="R108" pad="1"/>
<contactref element="U$112" pad="2"/>
<wire x1="-43.942" y1="330.2" x2="-40.64" y2="359.64" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$117">
<contactref element="R107" pad="1"/>
<contactref element="R109" pad="P$2"/>
<wire x1="-43.942" y1="335.28" x2="162.56" y2="61.08" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCA_OUTPUT2">
<contactref element="R104" pad="2"/>
<contactref element="R19" pad="2"/>
<contactref element="J3" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J3" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="R89" pad="2"/>
<contactref element="R91" pad="1"/>
<wire x1="231.902" y1="29.21" x2="175.26" y2="60.38" width="0" layer="19" extent="1-1"/>
<wire x1="-69.342" y1="147.32" x2="175.26" y2="60.38" width="0" layer="19" extent="1-1"/>
<wire x1="-77.978" y1="147.32" x2="-69.342" y2="147.32" width="0" layer="19" extent="1-1"/>
<wire x1="-32.258" y1="335.28" x2="-69.342" y2="147.32" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$4">
<contactref element="U$22" pad="P$4"/>
<contactref element="ACID1:C22" pad="1"/>
<contactref element="ACID1:C23" pad="1"/>
<wire x1="25.908" y1="88.265" x2="25.908" y2="90.17" width="0" layer="19" extent="1-1"/>
<wire x1="36.83" y1="12.7" x2="25.908" y2="88.265" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$5">
<contactref element="U$22" pad="P$2"/>
<contactref element="ACID1:R24" pad="P$2"/>
<wire x1="36.83" y1="10.16" x2="33.02" y2="73.78" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="INPUT_B">
<contactref element="J4" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J4" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="U$22" pad="P$7"/>
<contactref element="R6" pad="2"/>
<wire x1="39.37" y1="12.7" x2="45.72" y2="106.1" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="86.36" x2="45.72" y2="106.1" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$7">
<contactref element="U$22" pad="P$8"/>
<contactref element="CLIP1:C29" pad="1"/>
<contactref element="CLIP1:R32" pad="1"/>
<wire x1="-77.47" y1="-7.112" x2="-108.458" y2="12.7" width="0" layer="19" extent="1-1"/>
<wire x1="39.37" y1="7.62" x2="-77.47" y2="-7.112" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$12">
<contactref element="U$22" pad="P$6"/>
<contactref element="CLIP1:R29" pad="P$2"/>
<wire x1="39.37" y1="10.16" x2="63.5" y2="71.24" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OUTPUT_B">
<contactref element="U$22" pad="P$5"/>
<contactref element="J9" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J9" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="R7" pad="2"/>
<contactref element="J11" pad="SWITCH_B@1" route="any" routetag="G$1.SWITCH"/>
<contactref element="J11" pad="SWITCH_T@3" route="any" routetag="G$1.SWITCH"/>
<wire x1="66.04" y1="106.1" x2="84.98" y2="101.6" width="0" layer="19" extent="1-16"/>
<wire x1="39.37" y1="15.24" x2="66.04" y2="106.1" width="0" layer="19" extent="1-1"/>
<wire x1="242.062" y1="86.36" x2="84.98" y2="101.6" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="N$118">
<contactref element="R4" pad="2"/>
<contactref element="IC2" pad="2"/>
<contactref element="R3" pad="1"/>
<wire x1="235.458" y1="102.87" x2="205.71" y2="152.0222" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="100.33" x2="235.458" y2="102.87" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$23">
<contactref element="R8" pad="1"/>
<contactref element="IC2" pad="7"/>
<contactref element="J5" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J5" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="208.96" y1="152.0222" x2="55.88" y2="103.56" width="0" layer="19" extent="1-1"/>
<wire x1="235.458" y1="82.55" x2="208.96" y2="152.0222" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$9">
<contactref element="FUZZ1:R42" pad="P$2"/>
<contactref element="U$22" pad="P$10"/>
<wire x1="109.22" y1="10.16" x2="91.44" y2="61.08" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OUTPUT_C">
<contactref element="J13" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J13" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="U$22" pad="P$9"/>
<contactref element="R11" pad="2"/>
<contactref element="J14" pad="SWITCH_B@1" route="any" routetag="G$1.SWITCH"/>
<contactref element="J14" pad="SWITCH_T@3" route="any" routetag="G$1.SWITCH"/>
<wire x1="101.6" y1="106.1" x2="120.54" y2="101.6" width="0" layer="19" extent="1-16"/>
<wire x1="109.22" y1="5.08" x2="120.54" y2="101.6" width="0" layer="19" extent="16-16"/>
<wire x1="231.902" y1="64.77" x2="120.54" y2="101.6" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="INPUT_D">
<contactref element="J14" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J14" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="U$22" pad="P$15"/>
<contactref element="R14" pad="2"/>
<wire x1="143.51" y1="7.62" x2="116.84" y2="106.1" width="0" layer="19" extent="1-1"/>
<wire x1="236.982" y1="50.8" x2="143.51" y2="7.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OUTPUT_D">
<contactref element="J16" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J16" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="U$22" pad="P$13"/>
<contactref element="R15" pad="2"/>
<contactref element="J17" pad="SWITCH_B@1" route="any" routetag="G$1.SWITCH"/>
<contactref element="J17" pad="SWITCH_T@3" route="any" routetag="G$1.SWITCH"/>
<wire x1="156.1" y1="101.6" x2="137.16" y2="106.1" width="0" layer="19" extent="1-16"/>
<wire x1="231.902" y1="46.99" x2="156.1" y2="101.6" width="0" layer="19" extent="1-16"/>
<wire x1="143.51" y1="5.08" x2="156.1" y2="101.6" width="0" layer="19" extent="16-16"/>
</signal>
<signal name="N$10">
<contactref element="U$22" pad="P$16"/>
<contactref element="CREAM1:R47" pad="1"/>
<wire x1="122.428" y1="200.66" x2="143.51" y2="12.7" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$11">
<contactref element="U$22" pad="P$14"/>
<contactref element="CREAM1:R69" pad="P$2"/>
<wire x1="143.51" y1="10.16" x2="119.38" y2="71.24" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$63">
<contactref element="U$74" pad="P$3"/>
<contactref element="R51" pad="1"/>
<wire x1="-48.26" y1="166.1" x2="-43.942" y2="167.64" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$64">
<contactref element="IC8" pad="9"/>
<contactref element="R61" pad="1"/>
<contactref element="R60" pad="2"/>
<contactref element="C32" pad="2"/>
<wire x1="-49.022" y1="162.56" x2="-34.26" y2="201.0378" width="0" layer="19" extent="1-1"/>
<wire x1="-52.578" y1="162.56" x2="-49.022" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-62.738" y1="142.24" x2="-52.578" y2="162.56" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="BIASMAINLINE">
<contactref element="R60" pad="1"/>
<contactref element="IC8" pad="8"/>
<contactref element="C32" pad="1"/>
<contactref element="D10" pad="ANODE"/>
<contactref element="D6" pad="ANODE"/>
<contactref element="D8" pad="ANODE"/>
<contactref element="D9" pad="ANODE"/>
<contactref element="D4" pad="ANODE"/>
<wire x1="-54.102" y1="162.56" x2="-33.61" y2="201.0378" width="0" layer="19" extent="1-1"/>
<wire x1="-61.61" y1="164.15" x2="-54.102" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-64.15" y1="164.15" x2="-61.61" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-66.69" y1="164.15" x2="-64.15" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-71.77" y1="164.15" x2="-66.69" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-76.85" y1="164.15" x2="-71.77" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-64.262" y1="142.24" x2="-64.15" y2="164.15" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$65">
<contactref element="R57" pad="2"/>
<contactref element="R49" pad="P$2"/>
<wire x1="-67.818" y1="162.56" x2="142.24" y2="53.46" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$66">
<contactref element="R49" pad="P$3"/>
<contactref element="J22" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J22" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="144.82" y1="53.46" x2="144.78" y2="85.78" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$67">
<contactref element="R58" pad="1"/>
<contactref element="R57" pad="1"/>
<contactref element="D14" pad="CATHODE"/>
<contactref element="R59" pad="2"/>
<contactref element="T1" pad="E"/>
<wire x1="-50.8" y1="166.05" x2="-57.47" y2="174.16" width="0" layer="19" extent="1-1"/>
<wire x1="-57.658" y1="162.56" x2="-50.8" y2="166.05" width="0" layer="19" extent="1-1"/>
<wire x1="-64.262" y1="162.56" x2="-57.658" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-69.342" y1="162.56" x2="-64.262" y2="162.56" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$68">
<contactref element="R50" pad="P$2"/>
<contactref element="R58" pad="2"/>
<wire x1="-62.738" y1="162.56" x2="144.78" y2="33.14" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$69">
<contactref element="U$74" pad="P$1"/>
<contactref element="R75" pad="2"/>
<contactref element="U$74" pad="P$2"/>
<contactref element="R74" pad="2"/>
<contactref element="C38" pad="2"/>
<wire x1="-42.418" y1="157.48" x2="-37.338" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-47.41" y1="164.1" x2="-42.418" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-49.11" y1="164.1" x2="-47.41" y2="164.1" width="0" layer="19" extent="1-1"/>
<wire x1="-32.258" y1="142.24" x2="-37.338" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$70">
<contactref element="IC8" pad="7"/>
<contactref element="R62" pad="1"/>
<contactref element="C33" pad="1"/>
<contactref element="R63" pad="2"/>
<contactref element="R64" pad="2"/>
<wire x1="-32.258" y1="162.56" x2="-33.61" y2="195.2022" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="162.56" x2="-32.258" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="162.56" x2="-37.338" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-59.182" y1="142.24" x2="-43.942" y2="162.56" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$71">
<contactref element="IC8" pad="6"/>
<contactref element="R62" pad="2"/>
<contactref element="C33" pad="2"/>
<contactref element="C39" pad="2"/>
<wire x1="-42.418" y1="162.56" x2="-34.26" y2="195.2022" width="0" layer="19" extent="1-1"/>
<wire x1="-57.658" y1="142.24" x2="-42.418" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-83.058" y1="137.16" x2="-57.658" y2="142.24" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$72">
<contactref element="C39" pad="1"/>
<contactref element="R52" pad="1"/>
<contactref element="IC10" pad="5"/>
<wire x1="-38.862" y1="167.64" x2="-37.465" y2="182.82" width="0" layer="19" extent="1-1"/>
<wire x1="-84.582" y1="137.16" x2="-38.862" y2="167.64" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$73">
<contactref element="R63" pad="1"/>
<contactref element="D5" pad="ANODE"/>
<contactref element="D6" pad="CATHODE"/>
<contactref element="IC9" pad="3"/>
<wire x1="-71.12" y1="166.05" x2="-38.862" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-74.31" y1="164.15" x2="-71.12" y2="166.05" width="0" layer="19" extent="1-1"/>
<wire x1="-81.93" y1="179.9622" x2="-74.31" y2="164.15" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$74">
<contactref element="IC9" pad="1"/>
<contactref element="R79" pad="2"/>
<contactref element="R65" pad="1"/>
<contactref element="R80" pad="2"/>
<contactref element="C34" pad="1"/>
<wire x1="-84.582" y1="157.48" x2="-83.23" y2="179.9622" width="0" layer="19" extent="1-1"/>
<wire x1="-72.898" y1="152.4" x2="-84.582" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-67.818" y1="152.4" x2="-72.898" y2="152.4" width="0" layer="19" extent="1-1"/>
<wire x1="-54.102" y1="142.24" x2="-67.818" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$75">
<contactref element="R79" pad="1"/>
<contactref element="D7" pad="ANODE"/>
<contactref element="D8" pad="CATHODE"/>
<contactref element="IC9" pad="5"/>
<wire x1="-69.23" y1="164.15" x2="-66.04" y2="166.05" width="0" layer="19" extent="1-1"/>
<wire x1="-74.422" y1="152.4" x2="-69.23" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-80.63" y1="179.9622" x2="-69.23" y2="164.15" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$76">
<contactref element="IC9" pad="2"/>
<contactref element="R65" pad="2"/>
<contactref element="C34" pad="2"/>
<contactref element="R64" pad="1"/>
<wire x1="-52.578" y1="142.24" x2="-33.782" y2="162.56" width="0" layer="19" extent="1-1"/>
<wire x1="-83.058" y1="157.48" x2="-52.578" y2="142.24" width="0" layer="19" extent="1-1"/>
<wire x1="-82.58" y1="179.9622" x2="-83.058" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$77">
<contactref element="IC9" pad="6"/>
<contactref element="R80" pad="1"/>
<contactref element="R66" pad="2"/>
<contactref element="C35" pad="2"/>
<wire x1="-77.978" y1="157.48" x2="-79.98" y2="179.9622" width="0" layer="19" extent="1-1"/>
<wire x1="-69.342" y1="152.4" x2="-77.978" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-47.498" y1="142.24" x2="-69.342" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$78">
<contactref element="R81" pad="2"/>
<contactref element="IC9" pad="7"/>
<contactref element="R67" pad="2"/>
<contactref element="R66" pad="1"/>
<contactref element="C35" pad="1"/>
<wire x1="-79.502" y1="157.48" x2="-79.33" y2="179.9622" width="0" layer="19" extent="1-1"/>
<wire x1="-72.898" y1="157.48" x2="-79.502" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-62.738" y1="152.4" x2="-72.898" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-49.022" y1="142.24" x2="-62.738" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$79">
<contactref element="D9" pad="CATHODE"/>
<contactref element="IC9" pad="10"/>
<contactref element="R81" pad="1"/>
<contactref element="D12" pad="ANODE"/>
<wire x1="-63.5" y1="166.05" x2="-80.63" y2="185.7978" width="0" layer="19" extent="1-1"/>
<wire x1="-56.53" y1="164.15" x2="-63.5" y2="166.05" width="0" layer="19" extent="1-1"/>
<wire x1="-64.262" y1="152.4" x2="-63.5" y2="166.05" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$80">
<contactref element="IC9" pad="8"/>
<contactref element="R82" pad="2"/>
<contactref element="R83" pad="2"/>
<contactref element="R84" pad="1"/>
<contactref element="C36" pad="1"/>
<wire x1="-57.658" y1="152.4" x2="-79.33" y2="185.7978" width="0" layer="19" extent="1-1"/>
<wire x1="-52.578" y1="152.4" x2="-57.658" y2="152.4" width="0" layer="19" extent="1-1"/>
<wire x1="-49.022" y1="152.4" x2="-52.578" y2="152.4" width="0" layer="19" extent="1-1"/>
<wire x1="-43.942" y1="142.24" x2="-49.022" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$81">
<contactref element="R67" pad="1"/>
<contactref element="IC9" pad="9"/>
<contactref element="R84" pad="2"/>
<contactref element="C36" pad="2"/>
<wire x1="-74.422" y1="157.48" x2="-79.98" y2="185.7978" width="0" layer="19" extent="1-1"/>
<wire x1="-47.498" y1="152.4" x2="-74.422" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-42.418" y1="142.24" x2="-47.498" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$82">
<contactref element="R82" pad="1"/>
<contactref element="D11" pad="ANODE"/>
<contactref element="D10" pad="CATHODE"/>
<contactref element="IC9" pad="12"/>
<wire x1="-60.96" y1="166.05" x2="-59.07" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-59.182" y1="152.4" x2="-59.07" y2="164.15" width="0" layer="19" extent="1-1"/>
<wire x1="-81.93" y1="185.7978" x2="-60.96" y2="166.05" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$83">
<contactref element="R83" pad="1"/>
<contactref element="IC9" pad="13"/>
<contactref element="R68" pad="2"/>
<contactref element="C40" pad="2"/>
<wire x1="-67.818" y1="157.48" x2="-82.58" y2="185.7978" width="0" layer="19" extent="1-1"/>
<wire x1="-54.102" y1="152.4" x2="-67.818" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-77.978" y1="137.16" x2="-67.818" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$84">
<contactref element="IC9" pad="14"/>
<contactref element="R68" pad="1"/>
<contactref element="R78" pad="1"/>
<contactref element="R77" pad="1"/>
<contactref element="C40" pad="1"/>
<wire x1="-69.342" y1="157.48" x2="-83.23" y2="185.7978" width="0" layer="19" extent="1-1"/>
<wire x1="-79.502" y1="152.4" x2="-69.342" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-84.582" y1="152.4" x2="-79.502" y2="152.4" width="0" layer="19" extent="1-1"/>
<wire x1="-79.502" y1="137.16" x2="-79.502" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$85">
<contactref element="R77" pad="2"/>
<contactref element="D3" pad="ANODE"/>
<contactref element="D4" pad="CATHODE"/>
<contactref element="IC8" pad="3"/>
<wire x1="-76.2" y1="166.05" x2="-36.21" y2="195.2022" width="0" layer="19" extent="1-1"/>
<wire x1="-79.39" y1="164.15" x2="-76.2" y2="166.05" width="0" layer="19" extent="1-1"/>
<wire x1="-83.058" y1="152.4" x2="-79.39" y2="164.15" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$86">
<contactref element="R78" pad="2"/>
<contactref element="IC8" pad="2"/>
<contactref element="R76" pad="1"/>
<contactref element="C41" pad="2"/>
<wire x1="-33.782" y1="157.48" x2="-36.86" y2="195.2022" width="0" layer="19" extent="1-1"/>
<wire x1="-72.898" y1="137.16" x2="-33.782" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-77.978" y1="152.4" x2="-72.898" y2="137.16" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$87">
<contactref element="R76" pad="2"/>
<contactref element="IC8" pad="1"/>
<contactref element="C41" pad="1"/>
<contactref element="R75" pad="1"/>
<contactref element="U$92" pad="P$1"/>
<wire x1="-38.862" y1="157.48" x2="-37.51" y2="195.2022" width="0" layer="19" extent="1-1"/>
<wire x1="-32.258" y1="157.48" x2="-38.862" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-74.422" y1="137.16" x2="-38.862" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-85.09" y1="165.1" x2="-74.422" y2="137.16" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$88">
<contactref element="C38" pad="1"/>
<contactref element="R73" pad="2"/>
<contactref element="IC8" pad="12"/>
<wire x1="-47.498" y1="157.48" x2="-36.21" y2="201.0378" width="0" layer="19" extent="1-1"/>
<wire x1="-33.782" y1="142.24" x2="-47.498" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$89">
<contactref element="IC8" pad="14"/>
<contactref element="R70" pad="2"/>
<contactref element="C37" pad="1"/>
<wire x1="-62.738" y1="157.48" x2="-37.51" y2="201.0378" width="0" layer="19" extent="1-1"/>
<wire x1="-38.862" y1="142.24" x2="-62.738" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$90">
<contactref element="IC8" pad="13"/>
<contactref element="C37" pad="2"/>
<contactref element="R72" pad="1"/>
<contactref element="R71" pad="2"/>
<wire x1="-54.102" y1="157.48" x2="-36.86" y2="201.0378" width="0" layer="19" extent="1-1"/>
<wire x1="-57.658" y1="157.48" x2="-54.102" y2="157.48" width="0" layer="19" extent="1-1"/>
<wire x1="-37.338" y1="142.24" x2="-54.102" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$91">
<contactref element="R56" pad="1"/>
<contactref element="D13" pad="CATHODE"/>
<contactref element="T1" pad="B"/>
<wire x1="-53.34" y1="166.05" x2="-59.37" y2="174.16" width="0" layer="19" extent="1-1"/>
<wire x1="-74.422" y1="162.56" x2="-59.37" y2="174.16" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$92">
<contactref element="T1" pad="C"/>
<contactref element="R53" pad="1"/>
<wire x1="-58.42" y1="176.36" x2="-33.782" y2="167.64" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$93">
<contactref element="R53" pad="2"/>
<contactref element="IC10" pad="1"/>
<wire x1="-32.258" y1="167.64" x2="-42.545" y2="182.82" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$94">
<contactref element="R85" pad="1"/>
<contactref element="R54" pad="2"/>
<contactref element="IC10" pad="3"/>
<wire x1="-43.942" y1="152.4" x2="-40.005" y2="182.82" width="0" layer="19" extent="1-1"/>
<wire x1="-83.058" y1="162.56" x2="-43.942" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$95">
<contactref element="R86" pad="2"/>
<contactref element="U$93" pad="2"/>
<wire x1="-37.338" y1="152.4" x2="-50.8" y2="174.22" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$96">
<contactref element="R55" pad="2"/>
<contactref element="R86" pad="1"/>
<contactref element="IC10" pad="4"/>
<wire x1="-38.862" y1="152.4" x2="-38.735" y2="182.82" width="0" layer="19" extent="1-1"/>
<wire x1="-77.978" y1="162.56" x2="-38.862" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="BIASINPUT">
<contactref element="R61" pad="2"/>
<contactref element="J23" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J23" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="-47.498" y1="162.56" x2="154.94" y2="85.78" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$97">
<contactref element="R89" pad="1"/>
<contactref element="R87" pad="2"/>
<contactref element="IC10" pad="13"/>
<wire x1="-32.258" y1="152.4" x2="-38.735" y2="188.02" width="0" layer="19" extent="1-1"/>
<wire x1="-79.502" y1="147.32" x2="-32.258" y2="152.4" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$98">
<contactref element="R90" pad="1"/>
<contactref element="R88" pad="2"/>
<contactref element="IC10" pad="14"/>
<wire x1="-74.422" y1="147.32" x2="-40.005" y2="188.02" width="0" layer="19" extent="1-1"/>
<wire x1="-83.058" y1="147.32" x2="-74.422" y2="147.32" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="CROSSFADER_OUT">
<contactref element="R110" pad="1"/>
<contactref element="J26" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="J26" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="IC6" pad="14"/>
<wire x1="231.73" y1="42.2878" x2="175.26" y2="34.98" width="0" layer="19" extent="1-16"/>
<wire x1="-99.822" y1="-43.18" x2="175.26" y2="34.98" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="CV_IN">
<contactref element="R112" pad="2"/>
<contactref element="J25" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="J25" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<wire x1="-34.798" y1="20.955" x2="175.26" y2="47.68" width="0" layer="19" extent="1-16"/>
</signal>
<signal name="INPUT_WS">
<contactref element="R85" pad="2"/>
<contactref element="U$22" pad="P$20"/>
<wire x1="-42.418" y1="152.4" x2="146.05" y2="7.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OUTPUT_WS">
<contactref element="R71" pad="1"/>
<contactref element="WSOUT" pad="P$1"/>
<contactref element="R70" pad="1"/>
<contactref element="U$22" pad="P$18"/>
<wire x1="-43.18" y1="172.72" x2="146.05" y2="10.16" width="0" layer="19" extent="16-16"/>
<wire x1="-59.182" y1="157.48" x2="-43.18" y2="172.72" width="0" layer="19" extent="1-16"/>
<wire x1="-64.262" y1="157.48" x2="-59.182" y2="157.48" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="INPUT_E">
<contactref element="U$22" pad="P$19"/>
<contactref element="J17" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J17" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="R22" pad="2"/>
<wire x1="146.05" y1="12.7" x2="236.982" y2="15.24" width="0" layer="19" extent="1-1"/>
<wire x1="152.4" y1="106.1" x2="146.05" y2="12.7" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OUTPUT_E">
<contactref element="U$22" pad="P$17"/>
<contactref element="J19" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J19" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<contactref element="R23" pad="2"/>
<contactref element="R98" pad="1"/>
<wire x1="146.05" y1="15.24" x2="231.902" y2="11.43" width="0" layer="19" extent="1-1"/>
<wire x1="172.72" y1="106.1" x2="146.05" y2="15.24" width="0" layer="19" extent="1-1"/>
<wire x1="-33.782" y1="350.52" x2="172.72" y2="106.1" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="ACID1:N$2">
<contactref element="ACID1:D3" pad="C"/>
<contactref element="ACID1:D4" pad="A"/>
<contactref element="ACID1:JP1" pad="3"/>
<wire x1="3.175" y1="95.25" x2="3.175" y2="99.695" width="0" layer="19" extent="1-1"/>
<wire x1="3.175" y1="91.44" x2="3.175" y2="95.25" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="ACID1:N$3">
<contactref element="ACID1:D2" pad="ANODE"/>
<contactref element="ACID1:D1" pad="CATHODE"/>
<contactref element="ACID1:JP1" pad="1"/>
<wire x1="16.51" y1="93.025" x2="20.335" y2="93.025" width="0" layer="19" extent="1-1"/>
<wire x1="3.175" y1="104.775" x2="16.51" y2="93.025" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OTA_OUT">
<contactref element="R110" pad="2"/>
<contactref element="IC6" pad="13"/>
<contactref element="R91" pad="2"/>
<contactref element="IC10" pad="12"/>
<wire x1="-67.818" y1="147.32" x2="-37.465" y2="188.02" width="0" layer="19" extent="1-1"/>
<wire x1="-98.298" y1="-43.18" x2="-67.818" y2="147.32" width="0" layer="19" extent="1-1"/>
<wire x1="232.38" y1="42.2878" x2="-37.465" y2="188.02" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="OTA_CONTROL">
<contactref element="Q4" pad="C"/>
<contactref element="IC10" pad="16"/>
<wire x1="-42.545" y1="188.02" x2="-116.84" y2="-44.62" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$16">
<contactref element="R112" pad="1"/>
<contactref element="R111" pad="2"/>
<contactref element="R113" pad="1"/>
<contactref element="IC6" pad="9"/>
<wire x1="-31.242" y1="20.955" x2="234.98" y2="42.2878" width="0" layer="19" extent="1-1"/>
<wire x1="-36.322" y1="20.955" x2="-31.242" y2="20.955" width="0" layer="19" extent="1-1"/>
<wire x1="-39.878" y1="20.955" x2="-36.322" y2="20.955" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$21">
<contactref element="R111" pad="1"/>
<contactref element="Q4" pad="E"/>
<wire x1="-41.402" y1="20.955" x2="-115.89" y2="-46.82" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$22">
<contactref element="Q4" pad="B"/>
<contactref element="IC6" pad="8"/>
<wire x1="235.63" y1="42.2878" x2="-117.79" y2="-46.82" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$26">
<contactref element="R114" pad="P$3"/>
<contactref element="R115" pad="2"/>
<wire x1="-100.838" y1="-50.8" x2="165.14" y2="35.68" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$27">
<contactref element="R113" pad="2"/>
<contactref element="R114" pad="P$2"/>
<wire x1="-29.718" y1="20.955" x2="162.56" y2="35.68" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="VCA_CV_IN2">
<contactref element="R109" pad="P$3"/>
<contactref element="J1" pad="TIP_T@3" route="any" routetag="G$1.TIP"/>
<contactref element="J1" pad="TIP_B@1" route="any" routetag="G$1.TIP"/>
<wire x1="165.14" y1="61.08" x2="175.26" y2="85.78" width="0" layer="19" extent="1-1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFFFEFEFE"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
</eagle>

license: MIT

repository: ThisIsNotRocketScience/Eurorack-Modules

license_type: permissive

repo_name: ThisIsNotRocketScience/Eurorack-Modules

branch_name: refs/heads/master

extension: brd


text:
// Ivan Carvalho
// Solution to https://dmoj.ca/problem/coci08c6p1
#!/usr/bin/env python2.7
a = int(raw_input())
b = raw_input()
c = int(raw_input())
if b == "+":
	print a + c
else:
	print a*c

repository: adityanjr/code-DS-ALGO

path: /Olympiad Solutions/DMOJ/coci08c6p1.cpp

repo_name: adityanjr/code-DS-ALGO

gha_license_id: MIT

extension: cpp


text:
SUMMARY = "Fence Agents for Red Hat Cluster"
DESCRIPTION = " \
	Red Hat Fence Agents is a collection of scripts to handle remote\
	power management for several devices.  They allow failed or\
	unreachable nodes to be forcibly restarted and removed from the\
	cluster."
HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"

# Override value of DEBIAN_GIT_BRANCH variable in debian-package class
DEBIAN_GIT_BRANCH = "jessie-backports-master"

PR = "r1"

inherit debian-package
inherit autotools pythonnative
PV = "4.0.25"

DEPENDS += "autoconf automake python-suds-native python-pexpect-native \
            python-pycurl-native python-requests-native"

RDEPENDS_${PN} = "\
	perl \
	python-pexpect \
	python-pycurl \
	python \
	python-suds \
	"
RRECOMMENDS_${PN} += "\
	libnet-telnet-perl \
	openssh-client \
	snmp \
	"
RSUGGESTS_${PN} = "\
	python-requests \
	"
LICENSE = "GPL-2+ & LGPL-2.1+"
LIC_FILES_CHKSUM = "\
	file://doc/COPYING.applications;md5=751419260aa954499f7abaabaa882bbe \
	file://doc/COPYING.libraries;md5=2d5025d4aa3495befef8f17206a5b0a1"

# skip creating fence_kdump.8 to enable cross build
SRC_URI += "file://0001-skip-creating-fence_kdump.8.patch"

do_install_append_class-target() {
	# ${PYTHON} is python-native, so it should be replaced in target
	find ${D}${sbindir} ${D}${datadir}/fence ${D}${datadir}/cluster \
	\( -name "*.py" -or -name "fence_*" \) \
	-exec sed -i -e "1s|${PYTHON}|${bindir}/python|" {} \;
}

FILES_${PN} += "/run ${datadir}"
# Avoid a parallel build problem
PARALLEL_MAKE = ""

repository: meta-debian/meta-debian-extra

repo_name: meta-debian/meta-debian-extra

branch_name: refs/heads/morty

gha_language: BitBake

extension: bb


text:
@article{madsen_synthetic_2019-1,
 abstract = {People who are engineering biological organisms often find it useful to communicate in diagrams, both about the structure of the nucleic acid sequences that they are engineering and about the functional relationships between sequence features and other molecular species . Some typical practices and conventions have begun to emerge for such diagrams. The Synthetic Biology Open Language Visual (SBOL Visual) has been developed as a standard for organizing and systematizing such conventions in order to produce a coherent language for expressing the structure and function of genetic designs. This document details version 2.1 of SBOL Visual, which builds on the prior SBOL Visual 2.0 standard by expanding diagram syntax to include methods for showing modular structure and mappings between elements of a system, interactions arrows that can split or join (with the glyph at the split or join indicating either superposition or a chemical process), and adding new glyphs for indicating genomic context (e.g., integration into a plasmid or genome) and for stop codons.},
 author = {Madsen, Curtis and Goni Moreno, Angel and Palchick, Zachary and P, Umesh and Roehner, Nicholas and Bartley, Bryan and Bhatia, Swapnil and Bhakta, Shyam and Bissell, Mike and Clancy, Kevin and Cox, Robert Sidney and Gorochowski, Thomas and Grunberg, Raik and Luna, Augustin and McLaughlin, James and Nguyen, Tramy and Le Novere, Nicolas and Pocock, Matthew and Sauro, Herbert and Scott-Brown, James and Sexton, John T. and Stan, Guy-Bart and Tabor, Jeffrey J. and Voigt, Christopher A. and Zundel, Zach and Myers, Chris and Beal, Jacob and Wipat, Anil},
 date = {2019-06-13},
 doi = {10.1515/jib-2018-0101},
 issn = {1613-4516},
 journaltitle = {Journal of Integrative Bioinformatics},
 keywords = {SBOL, genetic circuit},
 note = {00000},
 number = {2},
 title = {Synthetic Biology Open Language Visual (SBOL Visual) Version 2.1},
 url = {https://www.degruyter.com/view/journals/jib/16/2/article-20180101.xml},
 urldate = {2020-09-16},
 volume = {16}
}

gha_language: TeX

extension: bib


text:
package render

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestBlockSyntax(t *testing.T) {
	cfg := NewConfig()
	cfg.AddBlock("if").Clause("else")
	cfg.AddBlock("case").Clause("else")
	cfg.AddBlock("unless")

	require.Panics(t, func() { cfg.AddBlock("if") })

	g := cfg.grammar
	ifBlock, _ := g.findBlockDef("if")
	elseBlock, _ := g.findBlockDef("else")
	unlessBlock, _ := g.findBlockDef("unless")
	require.True(t, elseBlock.CanHaveParent(ifBlock))
	require.False(t, elseBlock.CanHaveParent(unlessBlock))
	require.Equal(t, []string{"case", "if"}, elseBlock.ParentTags())
}

repository: osteele/liquid

repo_name: osteele/liquid

branch_name: refs/heads/main

gha_language: Go

extension: go


text:
package sqlstore

import (
	"bytes"
	"errors"
	"fmt"
	"strings"
	"time"

	"github.com/grafana/grafana/pkg/models"
	"github.com/grafana/grafana/pkg/services/annotations"
)

// Update the item so that EpochEnd >= Epoch
func validateTimeRange(item *annotations.Item) error {
	if item.EpochEnd == 0 {
		if item.Epoch == 0 {
			return errors.New("Missing Time Range")
		}
		item.EpochEnd = item.Epoch
	}
	if item.Epoch == 0 {
		item.Epoch = item.EpochEnd
	}
	if item.EpochEnd < item.Epoch {
		tmp := item.Epoch
		item.Epoch = item.EpochEnd
		item.EpochEnd = tmp
	}
	return nil
}

type SqlAnnotationRepo struct {
}

func (r *SqlAnnotationRepo) Save(item *annotations.Item) error {
	return inTransaction(func(sess *DBSession) error {
		tags := models.ParseTagPairs(item.Tags)
		item.Tags = models.JoinTagPairs(tags)
		item.Created = time.Now().UnixNano() / int64(time.Millisecond)
		item.Updated = item.Created
		if item.Epoch == 0 {
			item.Epoch = item.Created
		}
		if err := validateTimeRange(item); err != nil {
			return err
		}

		if _, err := sess.Table("annotation").Insert(item); err != nil {
			return err
		}

		if item.Tags != nil {
			tags, err := EnsureTagsExist(sess, tags)
			if err != nil {
				return err
			}
			for _, tag := range tags {
				if _, err := sess.Exec("INSERT INTO annotation_tag (annotation_id, tag_id) VALUES(?,?)", item.Id, tag.Id); err != nil {
					return err
				}
			}
		}

		return nil
	})
}

func (r *SqlAnnotationRepo) Update(item *annotations.Item) error {
	return inTransaction(func(sess *DBSession) error {
		var (
			isExist bool
			err     error
		)
		existing := new(annotations.Item)

		isExist, err = sess.Table("annotation").Where("id=? AND org_id=?", item.Id, item.OrgId).Get(existing)

		if err != nil {
			return err
		}
		if !isExist {
			return errors.New("Annotation not found")
		}

		existing.Updated = time.Now().UnixNano() / int64(time.Millisecond)
		existing.Text = item.Text

		if item.Epoch != 0 {
			existing.Epoch = item.Epoch
		}
		if item.EpochEnd != 0 {
			existing.EpochEnd = item.EpochEnd
		}

		if err := validateTimeRange(existing); err != nil {
			return err
		}

		if item.Tags != nil {
			tags, err := EnsureTagsExist(sess, models.ParseTagPairs(item.Tags))
			if err != nil {
				return err
			}
			if _, err := sess.Exec("DELETE FROM annotation_tag WHERE annotation_id = ?", existing.Id); err != nil {
				return err
			}
			for _, tag := range tags {
				if _, err := sess.Exec("INSERT INTO annotation_tag (annotation_id, tag_id) VALUES(?,?)", existing.Id, tag.Id); err != nil {
					return err
				}
			}
		}

		existing.Tags = item.Tags

		_, err = sess.Table("annotation").ID(existing.Id).Cols("epoch", "text", "epoch_end", "updated", "tags").Update(existing)
		return err
	})
}

func (r *SqlAnnotationRepo) Find(query *annotations.ItemQuery) ([]*annotations.ItemDTO, error) {
	var sql bytes.Buffer
	params := make([]interface{}, 0)

	sql.WriteString(`
		SELECT
			annotation.id,
			annotation.epoch as time,
			annotation.epoch_end as time_end,
			annotation.dashboard_id,
			annotation.panel_id,
			annotation.new_state,
			annotation.prev_state,
			annotation.alert_id,
			annotation.text,
			annotation.tags,
			annotation.data,
			annotation.created,
			annotation.updated,
			usr.email,
			usr.login,
			alert.name as alert_name
		FROM annotation
		LEFT OUTER JOIN ` + dialect.Quote("user") + ` as usr on usr.id = annotation.user_id
		LEFT OUTER JOIN alert on alert.id = annotation.alert_id
		INNER JOIN (
			SELECT a.id from annotation a
		`)

	sql.WriteString(`WHERE a.org_id = ?`)
	params = append(params, query.OrgId)

	if query.AnnotationId != 0 {
		// fmt.Print("annotation query")
		sql.WriteString(` AND a.id = ?`)
		params = append(params, query.AnnotationId)
	}

	if query.AlertId != 0 {
		sql.WriteString(` AND a.alert_id = ?`)
		params = append(params, query.AlertId)
	}

	if query.DashboardId != 0 {
		sql.WriteString(` AND a.dashboard_id = ?`)
		params = append(params, query.DashboardId)
	}

	if query.PanelId != 0 {
		sql.WriteString(` AND a.panel_id = ?`)
		params = append(params, query.PanelId)
	}

	if query.UserId != 0 {
		sql.WriteString(` AND a.user_id = ?`)
		params = append(params, query.UserId)
	}

	if query.From > 0 && query.To > 0 {
		sql.WriteString(` AND a.epoch <= ? AND a.epoch_end >= ?`)
		params = append(params, query.To, query.From)
	}

	if query.Type == "alert" {
		sql.WriteString(` AND a.alert_id > 0`)
	} else if query.Type == "annotation" {
		sql.WriteString(` AND a.alert_id = 0`)
	}

	if len(query.Tags) > 0 {
		keyValueFilters := []string{}

		tags := models.ParseTagPairs(query.Tags)
		for _, tag := range tags {
			if tag.Value == "" {
				keyValueFilters = append(keyValueFilters, "(tag."+dialect.Quote("key")+" = ?)")
				params = append(params, tag.Key)
			} else {
				keyValueFilters = append(keyValueFilters, "(tag."+dialect.Quote("key")+" = ? AND tag."+dialect.Quote("value")+" = ?)")
				params = append(params, tag.Key, tag.Value)
			}
		}

		if len(tags) > 0 {
			tagsSubQuery := fmt.Sprintf(`
        SELECT SUM(1) FROM annotation_tag at
          INNER JOIN tag on tag.id = at.tag_id
          WHERE at.annotation_id = a.id
            AND (
              %s
            )
      `, strings.Join(keyValueFilters, " OR "))

			if query.MatchAny {
				sql.WriteString(fmt.Sprintf(" AND (%s) > 0 ", tagsSubQuery))
			} else {
				sql.WriteString(fmt.Sprintf(" AND (%s) = %d ", tagsSubQuery, len(tags)))
			}

		}
	}

	if query.Limit == 0 {
		query.Limit = 100
	}

	// order of ORDER BY arguments match the order of a sql index for performance
	sql.WriteString(" ORDER BY a.org_id, a.epoch_end DESC, a.epoch DESC" + dialect.Limit(query.Limit) + " ) dt on dt.id = annotation.id")

	items := make([]*annotations.ItemDTO, 0)

	if err := x.SQL(sql.String(), params...).Find(&items); err != nil {
		return nil, err
	}

	return items, nil
}

func (r *SqlAnnotationRepo) Delete(params *annotations.DeleteParams) error {
	return inTransaction(func(sess *DBSession) error {
		var (
			sql         string
			annoTagSql  string
			queryParams []interface{}
		)

		sqlog.Info("delete", "orgId", params.OrgId)
		if params.Id != 0 {
			annoTagSql = "DELETE FROM annotation_tag WHERE annotation_id IN (SELECT id FROM annotation WHERE id = ? AND org_id = ?)"
			sql = "DELETE FROM annotation WHERE id = ? AND org_id = ?"
			queryParams = []interface{}{params.Id, params.OrgId}
		} else {
			annoTagSql = "DELETE FROM annotation_tag WHERE annotation_id IN (SELECT id FROM annotation WHERE dashboard_id = ? AND panel_id = ? AND org_id = ?)"
			sql = "DELETE FROM annotation WHERE dashboard_id = ? AND panel_id = ? AND org_id = ?"
			queryParams = []interface{}{params.DashboardId, params.PanelId, params.OrgId}
		}

		sqlOrArgs := append([]interface{}{annoTagSql}, queryParams...)

		if _, err := sess.Exec(sqlOrArgs...); err != nil {
			return err
		}

		sqlOrArgs = append([]interface{}{sql}, queryParams...)

		if _, err := sess.Exec(sqlOrArgs...); err != nil {
			return err
		}

		return nil
	})
}

gha_language: TypeScript


text:
SUMMARY = "OP-TEE sanity testsuite"
DESCRIPTION = "Open Portable Trusted Execution Environment - Test suite"
HOMEPAGE = "https://www.op-tee.org/"

LICENSE = "BSD & GPLv2"
LIC_FILES_CHKSUM = "file://${S}/LICENSE.md;md5=daa2bcccc666345ab8940aab1315a4fa"

inherit python3native
require optee.inc

DEPENDS = "optee-client optee-os python3-pycryptodomex-native"

PV = "3.8.0+git${SRCPV}"

SRCREV = "30481e381cb4285706e7516853495a7699c93b2c"
SRC_URI = "git://github.com/OP-TEE/optee_test.git \
           file://0001-host-xtest-Adjust-order-of-including-compiler.h.patch \
          "

S = "${WORKDIR}/git"
B = "${WORKDIR}/build"

OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}"
TEEC_EXPORT         = "${STAGING_DIR_HOST}${prefix}"
TA_DEV_KIT_DIR      = "${STAGING_INCDIR}/optee/export-user_ta"

EXTRA_OEMAKE = " TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
                 OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \
                 TEEC_EXPORT=${TEEC_EXPORT} \
                 CROSS_COMPILE_HOST=${TARGET_PREFIX} \
                 CROSS_COMPILE_TA=${TARGET_PREFIX} \
                 V=1 \
                 O=${B} \
               "

do_compile() {
    cd ${S}
    # Top level makefile doesn't seem to handle parallel make gracefully
    oe_runmake xtest
    oe_runmake ta
}
do_compile[cleandirs] = "${B}"

do_install () {
    install -D -p -m0755 ${B}/xtest/xtest ${D}${bindir}/xtest

    # install path should match the value set in optee-client/tee-supplicant
    # default TEEC_LOAD_PATH is /lib
    mkdir -p ${D}${nonarch_base_libdir}/optee_armtz/
    install -D -p -m0444 ${B}/ta/*/*.ta ${D}${nonarch_base_libdir}/optee_armtz/
}

FILES_${PN} += "${nonarch_base_libdir}/optee_armtz/"

# Imports machine specific configs from staging to build
PACKAGE_ARCH = "${MACHINE_ARCH}"

repository: MarekBykowski/meta-arm-bsp

repo_name: MarekBykowski/meta-arm-bsp


text:
package storage

import (
	"github.com/syndtr/goleveldb/leveldb"
	"github.com/syndtr/goleveldb/leveldb/opt"
	"github.com/syndtr/goleveldb/leveldb/util"
)

// LevelDBStorage ...
type LevelDBStorage struct {
	db *leveldb.DB
}

/// NewLevelDBStorage ...
func NewLevelDBStorage(path string) (storage *LevelDBStorage, err error) {
	var db *leveldb.DB
	db, err = leveldb.OpenFile(path, nil)
	if err != nil {
		return
	}
	return &LevelDBStorage{
		db: db,
	}, nil
}

// Get ...
func (storage *LevelDBStorage) Get(key string) (value string, err error) {
	var data []byte
	data, err = storage.db.Get([]byte(key), nil)
	if err != nil {
		return
	}
	value = string(data)
	return
}

// Set ...
func (storage *LevelDBStorage) Set(key string, value string) error {
	return storage.db.Put([]byte(key), []byte(value), &opt.WriteOptions{
		NoWriteMerge: true,
		Sync:         true,
	})
}

// GetAllKeys ...
func (storage *LevelDBStorage) GetAllKeys() (keys []string, err error) {
	iter := storage.db.NewIterator(nil, nil)
	for iter.Next() {
		// Remember that the contents of the returned slice should not be modified, and
		// only valid until the next call to Next.
		key := iter.Key()
		keys = append(keys, string(key))
	}
	iter.Release()
	err = iter.Error()
	return
}

// GetAll ...
func (storage *LevelDBStorage) GetAll() (values map[string]string, err error) {
	values = make(map[string]string)
	iter := storage.db.NewIterator(nil, nil)
	for iter.Next() {
		// Remember that the contents of the returned slice should not be modified, and
		// only valid until the next call to Next.
		key := iter.Key()
		value := iter.Value()
		values[string(key)] = string(value)
	}
	iter.Release()
	err = iter.Error()
	return
}

// GetAllKeysByPrefix ...
func (storage *LevelDBStorage) GetAllKeysByPrefix(prefix string) (keys []string, err error) {
	iter := storage.db.NewIterator(util.BytesPrefix([]byte(prefix)), nil)
	for iter.Next() {
		// Remember that the contents of the returned slice should not be modified, and
		// only valid until the next call to Next.
		key := iter.Key()
		keys = append(keys, string(key))
	}
	iter.Release()
	err = iter.Error()
	return
}

// GetAllByPrefix ...
func (storage *LevelDBStorage) GetAllByPrefix(prefix string) (values map[string]string, err error) {
	values = make(map[string]string)
	iter := storage.db.NewIterator(util.BytesPrefix([]byte(prefix)), nil)
	for iter.Next() {
		// Remember that the contents of the returned slice should not be modified, and
		// only valid until the next call to Next.
		key := iter.Key()
		value := iter.Value()
		values[string(key)] = string(value)
	}
	iter.Release()
	err = iter.Error()
	return
}

// Delete ...
func (storage *LevelDBStorage) Delete(key string) error {
	return storage.db.Delete([]byte(key), nil)
}

// Close ...
func (storage *LevelDBStorage) Close() (err error) {
	err = storage.db.Close()
	return
}

repository: cargoboat/storage

repo_name: cargoboat/storage


text:
# console image for omap3

inherit image

DEPENDS = "task-base"

IMAGE_EXTRA_INSTALL ?= ""

AUDIO_INSTALL = " \
  alsa-utils \
  alsa-utils-aplay \
  alsa-utils-amixer \
  angstrom-zeroconf-audio \
 "

BASE_INSTALL = " \
  task-base-extended \
 "

FIRMWARE_INSTALL = " \
#  linux-firmware \
  libertas-sd-firmware \
  rt73-firmware \
  zd1211-firmware \
 "

GLES_INSTALL = " \
#  libgles-omap3 \
 "

TOOLS_INSTALL = " \
  bash \
  bzip2 \
  ckermit \
  devmem2 \
  dhcp-client \
  dosfstools \
  fbgrab \
  fbset \
  fbset-modes \
  i2c-tools \
  ksymoops \
  mkfs-jffs2 \
  mtd-utils \
  nano \
  ntp ntpdate \
  openssh-misc \
  openssh-scp \
  openssh-ssh \
  omap3-writeprom \
  procps \
  socat \
  strace \
  sudo \
  syslog-ng \
  task-proper-tools \
  u-boot-utils \
 "

IMAGE_INSTALL += " \
  ${BASE_INSTALL} \
  ${AUDIO_INSTALL} \
  ${FIRMWARE_INSTALL} \
  ${GLES_INSTALL} \
  ${IMAGE_EXTRA_INSTALL} \
  ${TOOLS_INSTALL} \
 "

IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"

#ROOTFS_POSTPROCESS_COMMAND += '${@base_conditional("DISTRO_TYPE", "release", "zap_root_password; ", "",d)}'

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
package models

import (
	"time"

	"github.com/astaxie/beego"

	"github.com/astaxie/beego/orm"
)

// ItemIDLength  is the length of all item ids
// Change in model tags!!
const ItemIDLength = 11

// PostType specifies with type of content the post holds
type PostType string

const (

	// PostTypeImage  image png,jpeg or gif
	PostTypeImage = PostType("image")

	//PostTypeText post is plain text
	PostTypeText = PostType("text")

	// PostTypeLink post is an URL
	PostTypeLink = PostType("link")
)

// Post is the model for a post entry in the database
type Post struct {

	// unique identifier for every post and comment
	Id string `orm:"pk;size(11)"`

	// User that submitted the post
	User *User `orm:"rel(fk);null;on_delete(do_nothing)"`

	// Point in time when the post was submitted
	Date time.Time `orm:"auto_now_add"`

	// The post's title
	Title string

	// Content depends on the type of the post.
	// Text and Link is stored as plain text in the content field
	// For images the image id (see table media) is saved in the field
	Content string

	// Type of the post. Image, text, or link
	Type PostType

	// A refrence to the topic which the post belongs to
	Topic *Topic `orm:"rel(fk);null;on_delete(do_nothing)"`
}

// ReadPost reads given post from database
func ReadPost(id string, loadRelated bool) (*Post, error) {
	p := Post{Id: id}
	return &p, p.Read(loadRelated, "id")
}

// Posts is a helper to query the post table
func Posts() orm.QuerySeter {
	var table Post
	return orm.NewOrm().QueryTable(table)
}

// Insert the post to database
func (p *Post) Insert() error {
	_, err := orm.NewOrm().Insert(p)
	return err
}

// Delete post from database
func (p *Post) Delete() error {
	_, err := orm.NewOrm().Delete(p)
	return err
}

// Read post from database by the given field
// If loadRelated related is true, the user and topic field is also loaded
func (p *Post) Read(loadRelated bool, fields ...string) error {
	o := orm.NewOrm()
	if err := o.Read(p, fields...); err != nil {
		return err
	}
	// read user and topic data for post
	if loadRelated {
		if _, err := o.LoadRelated(p, "user"); err != nil {
			return err
		}
		if _, err := o.LoadRelated(p, "topic"); err != nil {
			return err
		}
	}
	return nil
}

// PostList is a list of posts
type PostList []*Post

// PostMetaDataList is a list of post meta data
type PostMetaDataList []*PostMetaData

// ToMetaData turns a list of posts into a list of  PostMetaData
// Important: None of the meta data is loaded!
func (p *PostList) ToMetaData() *PostMetaDataList {
	metas := make(PostMetaDataList, len(*p))
	for i, post := range *p {
		metas[i] = post.NewMetaData()
	}
	return &metas
}

// ReadVoteData reads vote data for every post in list
// See post.ReadVoteData(..)
func (p *PostMetaDataList) ReadVoteData(u *User) error {
	for _, i := range *p {
		if err := i.ReadVoteData(u); err != nil {
			return err
		}
	}
	return nil
}

// PostMetaData is a wrapper for the post model and adds additional fields like votes and a list of comments to the model.
// All added fields are not stored in the database and are calculated at runtime
type PostMetaData struct {
	*Post
	Votes    int
	Rank     float64
	VoteDir  VoteDirection
	Comments []*CommentMetaData
}

// NewMetaData creates a new MetaData wrapper from a post
// This sould be the only way new meta data objects are created!
func (p *Post) NewMetaData() *PostMetaData {
	return &PostMetaData{
		Post: p,
	}
}

// ReadVoteData reads the user's vote on the post
// See user.ReadVoteOnPost(...)
func (p *PostMetaData) ReadVoteData(u *User) error {
	if u != nil {
		// Get user vote on post
		if err := u.ReadVoteOnPost(p); err != nil {
			return err
		}
	}
	return p.ReadVoteSum()
}

// ReadVoteSum calculates the vote-sum (upvotes - downvotes) for the post
func (p *PostMetaData) ReadVoteSum() error {
	var votes []*Vote
	p.Votes = 0
	if _, err := getVotesOnItem(p.Id).All(&votes); err != nil {
		return err
	}
	for _, v := range votes {
		if v.Action == VoteDirectionUp {
			p.Votes++
		} else if v.Action == VoteDirectionDown {
			p.Votes--
		} else {
			beego.Error("Invalid vote direction for vote", v.Id, ":", v.Action)
		}
	}
	return nil
}

// ReadComments loads all comments on the post recursivly
// It also loads the user's votes on this comments.
func (p *PostMetaData) ReadComments(u *User) error {
	var comments CommentList
	if _, err := Comments().Filter("replyto", p.Id).RelatedSel("user").All(&comments); err != nil {
		return err
	}
	p.Comments = *comments.ToMetaData()
	for _, c := range p.Comments {
		if err := c.ReadVoteData(u); err != nil {
			beego.Error(err)
		}
		if err := c.LoadReplies(u); err != nil {
			beego.Error(err)
		}
	}
	return nil
}

repository: KeKsBoTer/socialloot

repo_name: KeKsBoTer/socialloot