text:
.515" y1="36.83" x2="54.61" y2="36.83" width="0.1524" layer="1"/>
<wire x1="52.705" y1="17.78" x2="52.705" y2="18.05" width="0.1524" layer="1"/>
<wire x1="52.705" y1="18.05" x2="53.705" y2="19.05" width="0.1524" layer="1" curve="-90"/>
<wire x1="43.33875" y1="5.3975" x2="37.126309375" y2="5.3975" width="0.15875" layer="1"/>
<wire x1="37.126309375" y1="5.3975" x2="36.126309375" y2="4.3975" width="0.15875" layer="1" curve="90"/>
<wire x1="36.126309375" y1="4.3975" x2="36.126309375" y2="2.56801875" width="0.15875" layer="1"/>
<wire x1="45.4025" y1="5.3975" x2="49.32375" y2="5.3975" width="0.15875" layer="1"/>
<wire x1="49.32375" y1="5.3975" x2="50.32375" y2="6.3975" width="0.15875" layer="1" curve="90"/>
<wire x1="50.32375" y1="6.3975" x2="50.32375" y2="7.5725" width="0.15875" layer="1"/>
<wire x1="51.32375" y1="8.5725" x2="50.32375" y2="7.5725" width="0.15875" layer="1" curve="90"/>
<wire x1="52.705" y1="10.16" x2="52.705" y2="9.5725" width="0.15875" layer="1"/>
<wire x1="52.705" y1="9.5725" x2="51.705" y2="8.5725" width="0.15875" layer="1" curve="-90"/>
<wire x1="51.705" y1="8.5725" x2="51.32375" y2="8.5725" width="0.15875" layer="1"/>
</signal>
<signal name="VCNT2">
<contactref element="IC2" pad="9"/>
<contactref element="IC10" pad="4"/>
<contactref element="D2" pad="A"/>
<contactref element="J1" pad="13"/>
<wire x1="73.025" y1="16.51" x2="65.27" y2="16.51" width="0.1524" layer="16"/>
<wire x1="65.27" y1="16.51" x2="64.77" y2="17.01" width="0.1524" layer="16" curve="-90"/>
<wire x1="64.77" y1="17.01" x2="64.77" y2="17.28" width="0.1524" layer="16"/>
<wire x1="64.77" y1="17.28" x2="64.27" y2="17.78" width="0.1524" layer="16" curve="90"/>
<wire x1="64.27" y1="17.78" x2="62.23" y2="17.78" width="0.1524" layer="16"/>
<wire x1="74.93" y1="36.83" x2="74.025" y2="36.83" width="0.1524" layer="1"/>
<wire x1="74.025" y1="36.83" x2="73.025" y2="35.83" width="0.1524" layer="1" curve="90"/>
<wire x1="73.025" y1="35.83" x2="73.025" y2="16.51" width="0.1524" layer="1"/>
<wire x1="42.38625" y1="3.81" x2="39.07625" y2="3.81" width="0.1524" layer="16"/>
<wire x1="39.07625" y1="3.81" x2="38.57625" y2="3.31" width="0.1524" layer="16" curve="90"/>
<wire x1="38.57625" y1="3.31" x2="38.57625" y2="2.54" width="0.1524" layer="16"/>
<wire x1="54.13375" y1="38.1" x2="56.15" y2="38.1" width="0.1524" layer="1"/>
<wire x1="57.15" y1="37.1" x2="56.15" y2="38.1" width="0.1524" layer="1" curve="90"/>
<wire x1="57.15" y1="11.43" x2="57.15" y2="37.1" width="0.1524" layer="1"/>
<via x="73.025" y="16.51" extent="1-16" drill="0.35"/>
<via x="42.38625" y="3.81" extent="1-16" drill="0.35"/>
<wire x1="54.61" y1="34.29" x2="57.92" y2="34.29" width="0.1524" layer="16"/>
<wire x1="57.92" y1="34.29" x2="58.42" y2="34.79" width="0.1524" layer="16" curve="90"/>
<wire x1="58.42" y1="34.79" x2="58.42" y2="35.06" width="0.1524" layer="16"/>
<wire x1="58.42" y1="35.06" x2="58.92" y2="35.56" width="0.1524" layer="16" curve="-90"/>
<wire x1="52.705" y1="36.83" x2="52.705" y2="35.29" width="0.1524" layer="1"/>
<wire x1="52.705" y1="35.29" x2="53.705" y2="34.29" width="0.1524" layer="1" curve="90"/>
<wire x1="53.705" y1="34.29" x2="54.61" y2="34.29" width="0.1524" layer="1"/>
<wire x1="72.39" y1="36.33" x2="72.89" y2="36.83" width="0.15875" layer="16" curve="-90"/>
<wire x1="72.89" y1="36.83" x2="74.93" y2="36.83" width="0.15875" layer="16"/>
<wire x1="42.38625" y1="3.81" x2="49.95875" y2="3.81" width="0.15875" layer="1"/>
<wire x1="49.95875" y1="3.81" x2="50.95875" y2="4.81" width="0.15875" layer="1" curve="90"/>
<wire x1="50.95875" y1="4.81" x2="50.95875" y2="6.943853125" width="0.15875" layer="1"/>
<wire x1="52.705" y1="36.83" x2="52.705" y2="37.1" width="0.15875" layer="1"/>
<wire x1="52.705" y1="37.1" x2="53.705" y2="38.1" width="0.15875" layer="1" curve="-90"/>
<wire x1="53.705" y1="38.1" x2="54.13375" y2="38.1" width="0.15875" layer="1"/>
<wire x1="50.95875" y1="6.943853125" x2="51.95875" y2="7.943853125" width="0.15875" layer="1" curve="-90"/>
<wire x1="51.95875" y1="7.943853125" x2="56.15" y2="7.943853125" width="0.15875" layer="1"/>
<wire x1="56.15" y1="7.943853125" x2="57.15" y2="8.943853125" width="0.15875" layer="1" curve="90"/>
<wire x1="57.15" y1="8.943853125" x2="57.15" y2="11.43" width="0.15875" layer="1"/>
<wire x1="58.92" y1="35.56" x2="71.89" y2="35.56" width="0.15875" layer="16"/>
<wire x1="71.89" y1="35.56" x2="72.39" y2="36.06" width="0.15875" layer="16" curve="90"/>
<wire x1="72.39" y1="36.06" x2="72.39" y2="36.33" width="0.15875" layer="16"/>
</signal>
<signal name="VCNT4">
<contactref element="IC3" pad="3"/>
<contactref element="D1" pad="A"/>
<contactref element="J1" pad="15"/>
<wire x1="64.135" y1="41.41" x2="64.135" y2="41.14" width="0.1524" layer="16"/>
<wire x1="64.635" y1="40.64" x2="64.135" y2="41.14" width="0.1524" layer="16" curve="-90"/>
<wire x1="62.23" y1="41.91" x2="63.635" y2="41.91" width="0.1524" layer="16"/>
<wire x1="63.635" y1="41.91" x2="64.135" y2="41.41" width="0.1524" layer="16" curve="-90"/>
<wire x1="62.23" y1="41.91" x2="61.325" y2="41.91" width="0.15875" layer="1"/>
<wire x1="61.325" y1="41.91" x2="60.325" y2="40.91" width="0.15875" layer="1" curve="90"/>
<wire x1="60.325" y1="40.91" x2="60.325" y2="25.13" width="0.15875" layer="1"/>
<wire x1="60.325" y1="25.13" x2="61.325" y2="24.13" width="0.15875" layer="1" curve="90"/>
<wire x1="60.69" y1="21.59" x2="63.135" y2="21.59" width="0.15875" layer="1"/>
<wire x1="63.135" y1="21.59" x2="64.135" y2="22.59" width="0.15875" layer="1" curve="90"/>
<wire x1="64.135" y1="22.59" x2="64.135" y2="23.13" width="0.15875" layer="1"/>
<wire x1="64.135" y1="23.13" x2="63.135" y2="24.13" width="0.15875" layer="1" curve="90"/>
<wire x1="63.135" y1="24.13" x2="61.325" y2="24.13" width="0.15875" layer="1"/>
<via x="52.86375" y="5.08" extent="1-16" drill="0.3048"/>
<wire x1="59.101521875" y1="12.22375" x2="59.69" y2="12.812228125" width="0.15875" layer="1" curve="90"/>
<wire x1="59.69" y1="12.812228125" x2="59.69" y2="20.59" width="0.15875" layer="1"/>
<wire x1="59.69" y1="20.59" x2="60.69" y2="21.59" width="0.15875" layer="1" curve="-90"/>
<wire x1="43.65625" y1="2.54" x2="43.65625" y2="4.58" width="0.15875" layer="16"/>
<wire x1="43.65625" y1="4.58" x2="44.15625" y2="5.08" width="0.15875" layer="16" curve="-90"/>
<wire x1="44.15625" y1="5.08" x2="52.86375" y2="5.08" width="0.15875" layer="16"/>
<wire x1="58.09835625" y1="7.98544375" x2="58.101521875" y2="11.22330625" width="0.15875" layer="1"/>
<wire x1="58.101521875" y1="11.22330625" x2="59.101521875" y2="12.22375" width="0.15875" layer="1" curve="-89.943958"/>
<wire x1="52.86375" y1="5.08" x2="52.86375" y2="5.985" width="0.15875" layer="1"/>
<wire x1="52.86375" y1="5.985" x2="53.86375" y2="6.985" width="0.15875" layer="1" curve="-90"/>
<wire x1="53.86375" y1="6.985" x2="57.09835625" y2="6.985" width="0.15875" layer="1"/>
<wire x1="57.09835625" y1="6.985" x2="58.09835625" y2="7.98544375" width="0.15875" layer="1" curve="90.025425"/>
<wire x1="72.89" y1="41.43375" x2="72.39" y2="40.93375" width="0.15875" layer="16" curve="90"/>
<wire x1="72.89" y1="41.43375" x2="74.93" y2="41.43375" width="0.15875" layer="16"/>
<wire x1="72.39" y1="40.93375" x2="72.09625" y2="40.64" width="0.15875" layer="16" curve="-90"/>
<wire x1="72.09625" y1="40.64" x2="64.635" y2="40.64" width="0.15875" layer="16"/>
</signal>
<signal name="VCNT5">
<contactref element="IC3" pad="4"/>
<contactref element="IC10" pad="13"/>
<contactref element="J1" pad="16"/>
<wire x1="64.135" y1="23.36" x2="64.135" y2="23.63" width="0.1524" layer="16"/>
<wire x1="64.135" y1="23.63" x2="63.635" y2="24.13" width="0.1524" layer="16" curve="90"/>
<wire x1="63.635" y1="24.13" x2="59.21375" y2="24.13" width="0.1524" layer="16"/>
<wire x1="62.23" y1="39.37" x2="63.135" y2="39.37" width="0.1524" layer="1"/>
<wire x1="63.135" y1="39.37" x2="64.135" y2="40.37" width="0.1524" layer="1" curve="90"/>
<wire x1="64.135" y1="40.37" x2="64.135" y2="47.26" width="0.1524" layer="1"/>
<wire x1="64.135" y1="47.26" x2="63.135" y2="48.26" width="0.1524" layer="1" curve="90"/>
<via x="59.21375" y="24.13" extent="1-16" drill="0.35"/>
<via x="52.07" y="4.445" extent="1-16" drill="0.3048"/>
<wire x1="69.85" y1="22.86" x2="64.635" y2="22.86" width="0.1524" layer="16"/>
<wire x1="64.635" y1="22.86" x2="64.135" y2="23.36" width="0.1524" layer="16" curve="-90"/>
<wire x1="59.21375" y1="24.13" x2="59.055" y2="24.13" width="0.15875" layer="1"/>
<wire x1="46.19625" y1="2.54" x2="46.19625" y2="3.945" width="0.15875" layer="16"/>
<wire x1="46.19625" y1="3.945" x2="46.69625" y2="4.445" width="0.15875" layer="16" curve="-90"/>
<wire x1="46.69625" y1="4.445" x2="52.07" y2="4.445" width="0.15875" layer="16"/>
<wire x1="57.785" y1="8.3025" x2="57.785" y2="11.7475" width="0.15875" layer="1"/>
<wire x1="58.7375" y1="12.7" x2="57.785" y2="11.7475" width="0.15875" layer="1" curve="90"/>
<wire x1="52.07" y1="4.445" x2="52.07" y2="6.3025" width="0.15875" layer="1"/>
<wire x1="52.07" y1="6.3025" x2="53.07" y2="7.3025" width="0.15875" layer="1" curve="-90"/>
<wire x1="53.07" y1="7.3025" x2="56.785" y2="7.3025" width="0.15875" layer="1"/>
<wire x1="56.785" y1="7.3025" x2="57.785" y2="8.3025" width="0.15875" layer="1" curve="90"/>
<wire x1="59.055" y1="24.13" x2="59.055" y2="13.0175" width="0.15875" layer="1"/>
<wire x1="59.055" y1="13.0175" x2="58.7375" y2="12.7" width="0.15875" layer="1" curve="-90"/>
<wire x1="63.135" y1="48.26" x2="60.21375" y2="48.26" width="0.15875" layer="1"/>
<wire x1="60.21375" y1="48.26" x2="59.21375" y2="47.26" width="0.15875" layer="1" curve="90"/>
<wire x1="59.21375" y1="47.26" x2="59.21375" y2="24.13" width="0.15875" layer="1"/>
</signal>
<signal name="VCNT6">
<contactref element="IC3" pad="5"/>
<contactref element="IC10" pad="12"/>
<contactref element="J1" pad="17"/>
<wire x1="62.23" y1="36.83" x2="67.445" y2="36.83" width="0.15875" layer="16"/>
<wire x1="67.445" y1="36.83" x2="67.945" y2="37.33" width="0.15875" layer="16" curve="90"/>
<wire x1="67.945" y1="37.33" x2="67.945" y2="38.1" width="0.15875" layer="16"/>
<via x="67.945" y="38.1" extent="1-16" drill="0.35"/>
<wire x1="67.945" y1="38.1" x2="70.755" y2="38.1" width="0.15875" layer="1"/>
<wire x1="70.755" y1="38.1" x2="71.755" y2="37.1" width="0.15875" layer="1" curve="-90"/>
<wire x1="71.755" y1="37.1" x2="71.755" y2="21.32" width="0.15875" layer="1"/>
<wire x1="71.755" y1="21.32" x2="70.755" y2="20.32" width="0.15875" layer="1" curve="-90"/>
<wire x1="70.755" y1="20.32" x2="69.85" y2="20.32" width="0.15875" layer="1"/>
<wire x1="66.3575" y1="19.32" x2="66.3575" y2="9.89" width="0.15875" layer="1"/>
<wire x1="66.3575" y1="9.89" x2="65.3575" y2="8.89" width="0.15875" layer="1" curve="-90"/>
<wire x1="65.3575" y1="8.89" x2="59.7375" y2="8.89" width="0.15875" layer="1"/>
<wire x1="59.7375" y1="8.89" x2="58.7375" y2="7.89" width="0.15875" layer="1" curve="90"/>
<wire x1="58.7375" y1="7.89" x2="58.7375" y2="6.08" width="0.15875" layer="1"/>
<wire x1="66.3575" y1="19.32" x2="67.3575" y2="20.32" width="0.15875" layer="1" curve="-90"/>
<wire x1="67.3575" y1="20.32" x2="69.85" y2="20.32" width="0.15875" layer="1"/>
<via x="57.62625" y="5.08" extent="1-16" drill="0.3048"/>
<wire x1="57.62625" y1="5.08" x2="53.99875" y2="5.08" width="0.15875" layer="16"/>
<wire x1="53.99875" y1="5.08" x2="53.49875" y2="4.58" width="0.15875" layer="16" curve="90"/>
<wire x1="53.49875" y1="4.58" x2="53.49875" y2="4.31" width="0.15875" layer="16"/>
<wire x1="53.49875" y1="4.31" x2="52.99875" y2="3.81" width="0.15875" layer="16" curve="-90"/>
<wire x1="52.99875" y1="3.81" x2="49.23625" y2="3.81" width="0.15875" layer="16"/>
<wire x1="49.23625" y1="3.81" x2="48.73625" y2="3.31" width="0.15875" layer="16" curve="90"/>
<wire x1="48.73625" y1="3.31" x2="48.73625" y2="2.54" width="0.15875" layer="16"/>
<wire x1="58.7375" y1="6.08" x2="57.7375" y2="5.08" width="0.15875" layer="1" curve="-90"/>
<wire x1="57.7375" y1="5.08" x2="57.62625" y2="5.08" width="0.15875" layer="1"/>
</signal>
<signal name="VCNT8">
<contactref element="IC3" pad="11"/>
<contactref element="IC10" pad="9"/>
<contactref element="J1" pad="19"/>
<wire x1="69.85" y1="39.37" x2="71.0725" y2="39.37" width="0.1524" layer="1"/>
<wire x1="71.0725" y1="39.37" x2="72.0725" y2="38.37" width="0.1524" layer="1" curve="-90"/>
<wire x1="72.0725" y1="38.37" x2="72.0725" y2="13.7" width="0.1524" layer="1"/>
<wire x1="72.0725" y1="13.7" x2="71.0725" y2="12.7" width="0.1524" layer="1" curve="-90"/>
<wire x1="71.0725" y1="12.7" x2="69.85" y2="12.7" width="0.1524" layer="1"/>
<wire x1="69.770625" y1="12.620625" x2="69.85" y2="12.7" width="0.1524" layer="1"/>
<via x="57.62625" y="3.96875" extent="1-16" drill="0.3048"/>
<wire x1="68.10375" y1="11.7" x2="68.10375" y2="11.1506" width="0.1524" layer="1"/>
<wire x1="68.10375" y1="11.7" x2="69.10375" y2="12.7" width="0.1524" layer="1" curve="-90"/>
<wire x1="69.10375" y1="12.7" x2="69.770625" y2="12.7" width="0.1524" layer="1"/>
<wire x1="69.770625" y1="12.7" x2="69.770625" y2="12.620625" width="0.1524" layer="1"/>
<wire x1="53.81625" y1="2.54" x2="53.81625" y2="3.46875" width="0.15875" layer="16"/>
<wire x1="53.81625" y1="3.46875" x2="54.31625" y2="3.96875" width="0.15875" layer="16" curve="-90"/>
<wire x1="54.31625" y1="3.96875" x2="57.62625" y2="3.96875" width="0.15875" layer="16"/>
<wire x1="60.055" y1="8.5725" x2="59.055" y2="7.5725" width="0.15875" layer="1" curve="90"/>
<wire x1="59.055" y1="7.5725" x2="59.055" y2="4.96875" width="0.15875" layer="1"/>
<wire x1="59.055" y1="4.96875" x2="58.055" y2="3.96875" width="0.15875" layer="1" curve="-90"/>
<wire x1="58.055" y1="3.96875" x2="57.62625" y2="3.96875" width="0.15875" layer="1"/>
<wire x1="68.10375" y1="11.1506" x2="68.10375" y2="9.5725" width="0.15875" layer="1"/>
<wire x1="68.10375" y1="9.5725" x2="67.10375" y2="8.5725" width="0.15875" layer="1" curve="-90"/>
<wire x1="67.10375" y1="8.5725" x2="60.055" y2="8.5725" width="0.15875" layer="1"/>
</signal>
<signal name="VCNT9">
<contactref element="IC3" pad="10"/>
<contactref element="IC10" pad="1"/>
<contactref element="J1" pad="20"/>
<wire x1="64.77" y1="12.43" x2="64.77" y2="26.6225" width="0.1524" layer="1"/>
<wire x1="64.77" y1="26.6225" x2="63.77" y2="27.6225" width="0.1524" layer="1" curve="90"/>
<wire x1="63.77" y1="27.6225" x2="63.23" y2="27.6225" width="0.1524" layer="1"/>
<wire x1="63.23" y1="27.6225" x2="62.23" y2="26.6225" width="0.1524" layer="1" curve="90"/>
<wire x1="62.23" y1="26.6225" x2="62.23" y2="25.4" width="0.1524" layer="1"/>
<wire x1="58.42" y1="7.14375" x2="58.42" y2="10.43" width="0.1524" layer="1"/>
<wire x1="58.42" y1="10.43" x2="59.42" y2="11.43" width="0.1524" layer="1" curve="-90"/>
<wire x1="59.42" y1="11.43" x2="63.77" y2="11.43" width="0.1524" layer="1"/>
<wire x1="63.77" y1="11.43" x2="64.77" y2="12.43" width="0.1524" layer="1" curve="90"/>
<wire x1="57.94375" y1="6.6675" x2="58.42" y2="7.14375" width="0.1524" layer="1" curve="90"/>
<wire x1="67.31" y1="26.67" x2="67.31" y2="35.83" width="0.1524" layer="1"/>
<wire x1="67.31" y1="35.83" x2="68.31" y2="36.83" width="0.1524" layer="1" curve="-90"/>
<wire x1="68.31" y1="36.83" x2="69.85" y2="36.83" width="0.1524" layer="1"/>
<via x="67.31" y="26.67" extent="1-16" drill="0.35"/>
<wire x1="67.31" y1="26.67" x2="67.31" y2="25.9" width="0.1524" layer="16"/>
<wire x1="67.31" y1="25.9" x2="66.81" y2="25.4" width="0.1524" layer="16" curve="-90"/>
<wire x1="66.81" y1="25.4" x2="62.23" y2="25.4" width="0.1524" layer="16"/>
<wire x1="57.94375" y1="6.6675" x2="57.35625" y2="6.6675" width="0.15875" layer="1"/>
<wire x1="57.35625" y1="6.6675" x2="56.35625" y2="5.6675" width="0.15875" layer="1" curve="90"/>
<wire x1="56.35625" y1="5.6675" x2="56.35625" y2="2.54" width="0.15875" layer="1"/>
</signal>
<signal name="/VBLANK">
<contactref element="IC9" pad="8"/>
<contactref element="IC9" pad="12"/>
<contactref element="J1" pad="28"/>
<wire x1="83.82" y1="10.16" x2="85.09" y2="10.16" width="0.1524" layer="1"/>
<wire x1="83.185" y1="10.31875" x2="83.185" y2="19.32" width="0.1524" layer="1"/>
<wire x1="83.185" y1="19.32" x2="84.185" y2="20.32" width="0.1524" layer="1" curve="-90"/>
<wire x1="84.185" y1="20.32" x2="85.09" y2="20.32" width="0.1524" layer="1"/>
<wire x1="83.185" y1="10.16" x2="83.185" y2="10.31875" width="0.1524" layer="1"/>
<wire x1="85.09" y1="10.16" x2="83.185" y2="10.16" width="0.1524" layer="1"/>
<wire x1="76.67625" y1="2.54" x2="76.67625" y2="7.255" width="0.15875" layer="1"/>
<wire x1="76.67625" y1="7.255" x2="77.67625" y2="8.255" width="0.15875" layer="1" curve="-90"/>
<wire x1="77.67625" y1="8.255" x2="82.185" y2="8.255" width="0.15875" layer="1"/>
<wire x1="82.185" y1="8.255" x2="83.185" y2="9.255" width="0.15875" layer="1" curve="90"/>
<wire x1="83.185" y1="9.255" x2="83.185" y2="10.31875" width="0.15875" layer="1"/>
</signal>
<signal name="VBLANK">
<contactref element="IC9" pad="11"/>
<contactref element="IC9" pad="10"/>
<contactref element="J1" pad="27"/>
<wire x1="85.09" y1="17.78" x2="85.09" y2="15.24" width="0.1524" layer="1"/>
<wire x1="86.995" y1="14.74" x2="86.495" y2="15.24" width="0.1524" layer="16" curve="90"/>
<wire x1="86.495" y1="15.24" x2="85.09" y2="15.24" width="0.1524" layer="16"/>
<wire x1="74.13625" y1="2.54" x2="74.13625" y2="3.31" width="0.15875" layer="16"/>
<wire x1="74.13625" y1="3.31" x2="74.63625" y2="3.81" width="0.15875" layer="16" curve="-90"/>
<wire x1="74.63625" y1="3.81" x2="86.495" y2="3.81" width="0.15875" layer="16"/>
<wire x1="86.495" y1="3.81" x2="86.995" y2="4.31" width="0.15875" layer="16" curve="90"/>
<wire x1="86.995" y1="4.31" x2="86.995" y2="14.74" width="0.15875" layer="16"/>
</signal>
<signal name="N$4">
<contactref element="IC9" pad="9"/>
<contactref element="D3" pad="A"/>
<contactref element="IC10" pad="8"/>
<wire x1="79.375" y1="12.2" x2="79.375" y2="11.93" width="0.1524" layer="16"/>
<wire x1="79.375" y1="11.93" x2="78.875" y2="11.43" width="0.1524" layer="16" curve="-90"/>
<wire x1="71.755" y1="10.66" x2="71.755" y2="10.93" width="0.1524" layer="16"/>
<wire x1="71.755" y1="10.93" x2="72.255" y2="11.43" width="0.1524" layer="16" curve="-90"/>
<wire x1="72.255" y1="11.43" x2="78.875" y2="11.43" width="0.1524" layer="16"/>
<wire x1="73.66" y1="11.16" x2="73.66" y2="30.75" width="0.1524" layer="1"/>
<wire x1="73.66" y1="30.75" x2="74.66" y2="31.75" width="0.1524" layer="1" curve="-90"/>
<wire x1="74.66" y1="31.75" x2="74.93" y2="31.75" width="0.1524" layer="1"/>
<wire x1="69.85" y1="10.16" x2="72.66" y2="10.16" width="0.1524" layer="1"/>
<wire x1="72.66" y1="10.16" x2="73.66" y2="11.16" width="0.1524" layer="1" curve="90"/>
<wire x1="69.85" y1="10.16" x2="71.255" y2="10.16" width="0.1524" layer="16"/>
<wire x1="71.255" y1="10.16" x2="71.755" y2="10.66" width="0.1524" layer="16" curve="90"/>
<wire x1="85.09" y1="12.7" x2="79.875" y2="12.7" width="0.1524" layer="16"/>
<wire x1="79.875" y1="12.7" x2="79.375" y2="12.2" width="0.1524" layer="16" curve="90"/>
</signal>
<signal name="N$8">
<contactref element="IC9" pad="13"/>
<contactref element="IC10" pad="6"/>
<contactref element="IC8" pad="3"/>
<via x="63.5" y="26.9875" extent="1-16" drill="0.35"/>
<wire x1="79.875" y1="22.86" x2="79.375" y2="23.36" width="0.1524" layer="16" curve="-90"/>
<wire x1="79.875" y1="22.86" x2="85.09" y2="22.86" width="0.1524" layer="16"/>
<wire x1="29.21" y1="29.075" x2="29.21" y2="29.345" width="0.15875" layer="16"/>
<wire x1="29.21" y1="29.345" x2="29.71" y2="29.845" width="0.15875" layer="16" curve="-90"/>
<wire x1="29.71" y1="29.845" x2="40.14" y2="29.845" width="0.15875" layer="16"/>
<wire x1="40.14" y1="29.845" x2="40.64" y2="29.345" width="0.15875" layer="16" curve="-90"/>
<wire x1="40.64" y1="29.345" x2="40.64" y2="27.805" width="0.15875" layer="16"/>
<wire x1="40.64" y1="27.805" x2="41.14" y2="27.305" width="0.15875" layer="16" curve="90"/>
<wire x1="41.14" y1="27.305" x2="63.5" y2="27.305" width="0.15875" layer="16"/>
<wire x1="62.23" y1="12.7" x2="63.4525" y2="12.7" width="0.15875" layer="1"/>
<wire x1="63.4525" y1="12.7" x2="64.4525" y2="13.7" width="0.15875" layer="1" curve="90"/>
<wire x1="64.4525" y1="13.7" x2="64.4525" y2="26.035" width="0.15875" layer="1"/>
<wire x1="64.4525" y1="26.035" x2="63.5" y2="26.9875" width="0.15875" layer="1" curve="90"/>
<wire x1="63.5" y1="26.9875" x2="63.5" y2="27.305" width="0.15875" layer="16"/>
<wire x1="24.9" y1="29.845" x2="25.4" y2="29.345" width="0.15875" layer="16" curve="-90"/>
<wire x1="25.4" y1="29.345" x2="25.4" y2="29.075" width="0.15875" layer="16"/>
<wire x1="25.4" y1="29.075" x2="25.9" y2="28.575" width="0.15875" layer="16" curve="90"/>
<wire x1="25.9" y1="28.575" x2="28.71" y2="28.575" width="0.15875" layer="16"/>
<wire x1="28.71" y1="28.575" x2="29.21" y2="29.075" width="0.15875" layer="16" curve="90"/>
<wire x1="16.51" y1="41.91" x2="14.47" y2="41.91" width="0.15875" layer="16"/>
<wire x1="14.47" y1="41.91" x2="13.97" y2="41.41" width="0.15875" layer="16" curve="90"/>
<wire x1="13.97" y1="41.41" x2="13.97" y2="30.345" width="0.15875" layer="16"/>
<wire x1="13.97" y1="30.345" x2="14.47" y2="29.845" width="0.15875" layer="16" curve="90"/>
<wire x1="14.47" y1="29.845" x2="24.9" y2="29.845" width="0.15875" layer="16"/>
<wire x1="79.375" y1="23.36" x2="79.375" y2="26.805" width="0.15875" layer="16"/>
<wire x1="79.375" y1="26.805" x2="78.875" y2="27.305" width="0.15875" layer="16" curve="90"/>
<wire x1="78.875" y1="27.305" x2="63.5" y2="27.305" width="0.15875" layer="16"/>
</signal>
<signal name="VSYNC">
<contactref element="IC7" pad="8"/>
<contactref element="J1" pad="23"/>
<wire x1="62.07125" y1="4.945" x2="62.57125" y2="4.445" width="0.15875" layer="16" curve="90"/>
<wire x1="62.57125" y1="4.445" x2="63.97625" y2="4.445" width="0.15875" layer="16"/>
<via x="63.97625" y="4.445" extent="1-16" drill="0.3048"/>
<wire x1="63.97625" y1="4.445" x2="63.97625" y2="2.54" width="0.15875" layer="1"/>
<wire x1="62.0649" y1="6.79615" x2="61.5649" y2="7.29615" width="0.15875" layer="16" curve="90"/>
<wire x1="62.0649" y1="6.79615" x2="62.0649" y2="4.945" width="0.15875" layer="16"/>
<wire x1="62.0649" y1="4.945" x2="62.07125" y2="4.945" width="0.15875" layer="16"/>
<wire x1="61.5649" y1="7.29615" x2="55.11" y2="7.29615" width="0.15875" layer="16"/>
<wire x1="55.11" y1="7.29615" x2="54.61" y2="7.79615" width="0.15875" layer="16" curve="-90"/>
<wire x1="54.61" y1="7.79615" x2="54.61" y2="10.16" width="0.15875" layer="16"/>
</signal>
<signal name="N$1">
<contactref element="D3" pad="C"/>
<contactref element="D2" pad="C"/>
<contactref element="D1" pad="C"/>
<contactref element="IC9" pad="4"/>
<contactref element="IC9" pad="5"/>
<contactref element="R1" pad="2"/>
<wire x1="86.6775" y1="43.18" x2="85.09" y2="41.43375" width="0.3048" layer="1"/>
<wire x1="85.09" y1="41.43375" x2="85.09" y2="36.83" width="0.3048" layer="1"/>
<wire x1="85.09" y1="36.83" x2="85.09" y2="31.75" width="0.3048" layer="1"/>
<wire x1="77.47" y1="17.78" x2="77.47" y2="15.24" width="0.1524" layer="1"/>
<wire x1="79.375" y1="21.09" x2="79.875" y2="21.59" width="0.1524" layer="16" curve="-90"/>
<wire x1="79.375" y1="21.09" x2="79.375" y2="18.28" width="0.1524" layer="16"/>
<wire x1="79.375" y1="18.28" x2="78.875" y2="17.78" width="0.1524" layer="16" curve="-90"/>
<wire x1="78.875" y1="17.78" x2="77.47" y2="17.78" width="0.1524" layer="16"/>
<wire x1="85.09" y1="31.75" x2="87.13" y2="31.75" width="0.15875" layer="16"/>
<wire x1="87.63" y1="31.25" x2="87.13" y2="31.75" width="0.15875" layer="16" curve="90"/>
<wire x1="79.875" y1="21.59" x2="87.13" y2="21.59" width="0.15875" layer="16"/>
<wire x1="87.13" y1="21.59" x2="87.63" y2="22.09" width="0.15875" layer="16" curve="90"/>
<wire x1="87.63" y1="22.09" x2="87.63" y2="31.25" width="0.15875" layer="16"/>
</signal>
<signal name="N$5">
<contactref element="IC7" pad="9"/>
<contactref element="IC9" pad="6"/>
<wire x1="54.61" y1="12.7" x2="58.555" y2="12.7" width="0.1524" layer="16"/>
<wire x1="59.055" y1="13.2" x2="58.555" y2="12.7" width="0.1524" layer="16" curve="-90"/>
<wire x1="77.47" y1="12.7" x2="72.255" y2="12.7" width="0.1524" layer="16"/>
<wire x1="71.755" y1="13.2" x2="72.255" y2="12.7" width="0.1524" layer="16" curve="90"/>
<wire x1="71.755" y1="13.47" x2="71.255" y2="13.97" width="0.15875" layer="16" curve="90"/>
<wire x1="71.755" y1="13.47" x2="71.755" y2="13.2" width="0.15875" layer="16"/>
<wire x1="71.255" y1="13.97" x2="59.555" y2="13.97" width="0.15875" layer="16"/>
<wire x1="59.555" y1="13.97" x2="59.055" y2="13.47" width="0.15875" layer="16" curve="90"/>
<wire x1="59.055" y1="13.47" x2="59.055" y2="13.2" width="0.15875" layer="16"/>
</signal>
<signal name="VCC">
<contactref element="IC1" pad="14"/>
<contactref element="IC10" pad="14"/>
<contactref element="IC9" pad="14"/>
<contactref element="IC8" pad="14"/>
<contactref element="IC7" pad="14"/>
<contactref element="IC6" pad="14"/>
<contactref element="IC4" pad="14"/>
<contactref element="IC3" pad="14"/>
<contactref element="IC2" pad="14"/>
<wire x1="69.85" y1="25.4" x2="68.58" y2="25.4" width="0.4064" layer="1"/>
<wire x1="66.3575" y1="45.99" x2="66.3575" y2="26.4" width="0.4064" layer="1"/>
<wire x1="66.3575" y1="26.4" x2="67.3575" y2="25.4" width="0.4064" layer="1" curve="90"/>
<wire x1="67.3575" y1="25.4" x2="68.58" y2="25.4" width="0.4064" layer="1"/>
<wire x1="68.58" y1="46.99" x2="67.3575" y2="46.99" width="0.4064" layer="1"/>
<wire x1="67.3575" y1="46.99" x2="66.3575" y2="45.99" width="0.4064" layer="1" curve="90"/>
<wire x1="54.61" y1="25.4" x2="53.18125" y2="25.4" width="0.4064" layer="1"/>
<wire x1="53.18125" y1="25.4" x2="52.1175" y2="25.4" width="0.4064" layer="1"/>
<wire x1="52.1175" y1="25.4" x2="51.1175" y2="26.4" width="0.4064" layer="1" curve="-90"/>
<wire x1="53.34" y1="46.99" x2="52.1175" y2="46.99" width="0.4064" layer="1"/>
<wire x1="52.1175" y1="46.99" x2="51.1175" y2="45.99" width="0.4064" layer="1" curve="90"/>
<wire x1="51.1175" y1="45.99" x2="51.1175" y2="26.4" width="0.4064" layer="1"/>
<wire x1="54.61" y1="46.99" x2="53.34" y2="46.99" width="0.4064" layer="1"/>
<wire x1="69.85" y1="46.99" x2="68.58" y2="46.99" width="0.4064" layer="1"/>
<wire x1="39.37" y1="25.4" x2="38.1" y2="25.4" width="0.4064" layer="1"/>
<wire x1="38.1" y1="25.4" x2="36.8775" y2="25.4" width="0.4064" layer="1"/>
<wire x1="36.8775" y1="25.4" x2="35.8775" y2="26.4" width="0.4064" layer="1" curve="-90"/>
<wire x1="38.1" y1="46.99" x2="36.8775" y2="46.99" width="0.4064" layer="1"/>
<wire x1="36.8775" y1="46.99" x2="35.8775" y2="45.99" width="0.4064" layer="1" curve="90"/>
<wire x1="35.8775" y1="45.99" x2="35.8775" y2="26.4" width="0.4064" layer="1"/>
<wire x1="24.13" y1="25.4" x2="21.6375" y2="25.4" width="0.4064" layer="1"/>
<wire x1="21.6375" y1="25.4" x2="20.6375" y2="26.4" width="0.4064" layer="1" curve="-90"/>
<wire x1="20.6375" y1="26.4" x2="20.6375" y2="28.575" width="0.4064" layer="1"/>
<wire x1="22.86" y1="46.99" x2="21.6375" y2="46.99" width="0.4064" layer="1"/>
<wire x1="21.6375" y1="46.99" x2="20.6375" y2="45.99" width="0.4064" layer="1" curve="90"/>
<wire x1="20.6375" y1="45.99" x2="20.6375" y2="28.575" width="0.4064" layer="1"/>
<wire x1="24.13" y1="46.99" x2="22.86" y2="46.99" width="0.4064" layer="1"/>
<wire x1="39.37" y1="46.99" x2="38.1" y2="46.99" width="0.4064" layer="1"/>
<wire x1="85.09" y1="25.4" x2="83.82" y2="25.4" width="0.4064" layer="1"/>
<wire x1="81.5975" y1="50.00625" x2="81.5975" y2="26.4" width="0.4064" layer="1"/>
<wire x1="81.5975" y1="26.4" x2="82.5975" y2="25.4" width="0.4064" layer="1" curve="90"/>
<wire x1="82.5975" y1="25.4" x2="83.82" y2="25.4" width="0.4064" layer="1"/>
<contactref element="J1" pad="29"/>
<contactref element="C1" pad="1"/>
<contactref element="C10" pad="1"/>
<contactref element="C2" pad="1"/>
<contactref element="C3" pad="1"/>
<contactref element="C4" pad="1"/>
<contactref element="C5" pad="1"/>
<contactref element="C6" pad="1"/>
<contactref element="C7" pad="1"/>
<contactref element="C8" pad="1"/>
<contactref element="C9" pad="1"/>
<wire x1="20.6375" y1="28.575" x2="22.86" y2="28.575" width="0.4064" layer="1"/>
<wire x1="81.5975" y1="50.00625" x2="83.82" y2="50.00625" width="0.4064" layer="1"/>
<wire x1="68.58" y1="28.575" x2="68.58" y2="25.4" width="0.4064" layer="1"/>
<wire x1="68.58" y1="50.00625" x2="68.58" y2="46.99" width="0.4064" layer="1"/>
<wire x1="53.34" y1="50.00625" x2="53.34" y2="46.99" width="0.4064" layer="1"/>
<wire x1="38.1" y1="50.00625" x2="38.1" y2="46.99" width="0.4064" layer="1"/>
<wire x1="38.1" y1="28.575" x2="38.1" y2="25.4" width="0.4064" layer="1"/>
<wire x1="53.34" y1="28.575" x2="53.34" y2="25.55875" width="0.4064" layer="1"/>
<wire x1="53.34" y1="25.55875" x2="53.18125" y2="25.4" width="0.4064" layer="1"/>
<wire x1="83.82" y1="28.575" x2="83.82" y2="25.4" width="0.4064" layer="1"/>
<wire x1="22.86" y1="50.00625" x2="22.86" y2="46.99" width="0.4064" layer="1"/>
<wire x1="22.86" y1="50.00625" x2="22.86" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="22.86" y1="51.59375" x2="38.1" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="38.1" y1="51.59375" x2="53.34" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="53.34" y1="51.59375" x2="68.58" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="68.58" y1="51.59375" x2="83.82" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="83.82" y1="50.00625" x2="83.82" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="68.58" y1="50.00625" x2="68.58" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="53.34" y1="50.00625" x2="53.34" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="38.1" y1="50.00625" x2="38.1" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="83.82" y1="50.00625" x2="83.82" y2="49.8475" width="0.8128" layer="1"/>
<wire x1="88.9205" y1="49.8475" x2="83.82" y2="49.8475" width="0.8128" layer="1"/>
<wire x1="79.21625" y1="2.54" x2="79.21625" y2="5.50875" width="0.8128" layer="1"/>
<wire x1="79.21625" y1="5.50875" x2="80.21625" y2="6.50875" width="0.8128" layer="1" curve="-90"/>
<wire x1="80.21625" y1="6.50875" x2="87.9205" y2="6.50875" width="0.8128" layer="1"/>
<wire x1="87.9205" y1="6.50875" x2="88.9205" y2="7.50875" width="0.8128" layer="1" curve="90"/>
<wire x1="88.9205" y1="7.50875" x2="88.9205" y2="49.8475" width="0.8128" layer="1"/>
<contactref element="QG1" pad="14"/>
<contactref element="QG2" pad="8"/>
<contactref element="C11" pad="1"/>
<wire x1="10.795" y1="30.1625" x2="10.795" y2="26.3525" width="0.8128" layer="1"/>
<wire x1="22.86" y1="51.59375" x2="11.795" y2="51.59375" width="0.8128" layer="1"/>
<wire x1="11.795" y1="51.59375" x2="10.795" y2="50.59375" width="0.8128" layer="1" curve="90"/>
<wire x1="10.795" y1="50.59375" x2="10.795" y2="48.26" width="0.8128" layer="1"/>
<wire x1="10.795" y1="48.26" x2="10.795" y2="35.8775" width="0.8128" layer="1"/>
<wire x1="10.795" y1="35.8775" x2="10.795" y2="30.1625" width="0.8128" layer="1"/>
<wire x1="9.525" y1="35.8775" x2="10.795" y2="35.8775" width="0.8128" layer="1"/>
<contactref element="D4" pad="A"/>
<wire x1="10.795" y1="48.26" x2="8.89" y2="48.26" width="0.15875" layer="1"/>
</signal>
<signal name="25.175MHZ">
<contactref element="IC1" pad="1"/>
<contactref element="QG1" pad="8"/>
<contactref element="QG2" pad="5"/>
<wire x1="10.795" y1="18.7325" x2="10.795" y2="21.5425" width="0.15875" layer="1"/>
<wire x1="10.795" y1="21.5425" x2="11.795" y2="22.5425" width="0.15875" layer="1" curve="-90"/>
<wire x1="11.795" y1="22.5425" x2="12.7" y2="23.4475" width="0.15875" layer="1" curve="90"/>
<wire x1="13.7" y1="48.26" x2="13.81125" y2="48.26" width="0.15875" layer="1"/>
<via x="19.05" y="48.26" extent="1-16" drill="0.3048"/>
<wire x1="13.81125" y1="48.26" x2="19.05" y2="48.26" width="0.15875" layer="1"/>
<wire x1="19.05" y1="48.26" x2="24.13" y2="48.26" width="0.15875" layer="16"/>
<via x="24.13" y="48.26" extent="1-16" drill="0.3048"/>
<wire x1="27.6225" y1="47.51375" x2="28.305" y2="46.99" width="0.15875" layer="1" curve="90"/>
<wire x1="28.305" y1="46.99" x2="31.75" y2="46.99" width="0.15875" layer="1"/>
<wire x1="24.13" y1="48.26" x2="26.87625" y2="48.26" width="0.15875" layer="1"/>
<wire x1="26.87625" y1="48.26" x2="27.6225" y2="47.51375" width="0.15875" layer="1" curve="-90"/>
<wire x1="10.795" y1="18.7325" x2="10.795" y2="14.9225" width="0.15875" layer="1"/>
<wire x1="12.7" y1="23.4475" x2="12.7" y2="47.26" width="0.15875" layer="1"/>
<wire x1="12.7" y1="47.26" x2="13.7" y2="48.26" width="0.15875" layer="1" curve="-90"/>
</signal>
<signal name="HCNT3">
<contactref element="IC1" pad="11"/>
<contactref element="J1" pad="4"/>
<wire x1="39.37" y1="39.37" x2="34.94875" y2="39.37" width="0.1524" layer="16"/>
<wire x1="34.94875" y1="39.37" x2="34.44875" y2="38.87" width="0.1524" layer="16" curve="90"/>
<wire x1="34.44875" y1="38.87" x2="34.44875" y2="38.1" width="0.1524" layer="16"/>
<wire x1="34.44875" y1="38.1" x2="34.44875" y2="30.98" width="0.15875" layer="16"/>
<wire x1="34.44875" y1="30.98" x2="33.94875" y2="30.48" width="0.15875" layer="16" curve="-90"/>
<wire x1="33.94875" y1="30.48" x2="27.6225" y2="30.48" width="0.15875" layer="16"/>
<via x="27.6225" y="30.48" extent="1-16" drill="0.3048"/>
<wire x1="27.6225" y1="30.48" x2="27.6225" y2="8.9375" width="0.15875" layer="1"/>
<wire x1="27.6225" y1="8.9375" x2="26.6225" y2="7.9375" width="0.15875" layer="1" curve="-90"/>
<wire x1="26.6225" y1="7.9375" x2="16.71625" y2="7.9375" width="0.15875" layer="1"/>
<wire x1="16.71625" y1="7.9375" x2="15.71625" y2="6.9375" width="0.15875" layer="1" curve="90"/>
<wire x1="15.71625" y1="6.9375" x2="15.71625" y2="2.54" width="0.15875" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="D4" pad="K"/>
<contactref element="R2" pad="2"/>
<wire x1="6.35" y1="48.26" x2="4.945" y2="48.26" width="0.15875" layer="16"/>
<wire x1="4.945" y1="48.26" x2="4.445" y2="47.76" width="0.15875" layer="16" curve="90"/>
<wire x1="4.445" y1="47.76" x2="4.445" y2="46.83125" width="0.15875" layer="16"/>
</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>
<compatibility>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>


text:
package main

import (
	"fmt"
)

type Vertex struct {
	X int
	Y int
}

func (v Vertex) String() string {
	return fmt.Sprintf("X = %d,Y = %d",v.X,v.Y)
}

func main() {
	v := Vertex{1,2}
	v.X = 4
	fmt.Println(v)
}

license: MIT

license_type: permissive

branch_name: refs/heads/master

extension: go


text:
import Ffmpeg from 'fluent-ffmpeg';

export default async function convert(playlist_url: string, output_name: string) {
    const command: Ffmpeg.FfmpegCommand = Ffmpeg(playlist_url).output(`${output_name}.mp4`).addOption("-c copy")
        .on('start', function (t) {
            console.log('Start processing...');
            console.log(t);
        })
        .on('error', function (err) {
            console.log('An error occurred: ' + err.message);
        })
        .on('progress', function (progress) {
            let percent = Math.round((progress.percent + Number.EPSILON) * 100) / 100
            if (progress.percent === undefined) {
                percent = 0;
            }
            console.log('Processing: ' + percent + '%')
        })
        .on('end', function () {
            console.log('[OK] Finished!')
        });

    await command.run();
}

repository: tybantarnusa/hibi-dl

repo_name: tybantarnusa/hibi-dl

branch_name: refs/heads/main

extension: ts


text:
// Code generated by go-swagger; DO NOT EDIT.

package external

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"
	"net/http"
	"time"

	"github.com/go-openapi/errors"
	"github.com/go-openapi/runtime"
	cr "github.com/go-openapi/runtime/client"
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// NewProductExternalSearchParams creates a new ProductExternalSearchParams object
// with the default values initialized.
func NewProductExternalSearchParams() *ProductExternalSearchParams {
	var (
		countDefault = int64(1000)
		fromDefault  = int64(0)
	)
	return &ProductExternalSearchParams{
		Count: &countDefault,
		From:  &fromDefault,

		timeout: cr.DefaultTimeout,
	}
}

// NewProductExternalSearchParamsWithTimeout creates a new ProductExternalSearchParams object
// with the default values initialized, and the ability to set a timeout on a request
func NewProductExternalSearchParamsWithTimeout(timeout time.Duration) *ProductExternalSearchParams {
	var (
		countDefault = int64(1000)
		fromDefault  = int64(0)
	)
	return &ProductExternalSearchParams{
		Count: &countDefault,
		From:  &fromDefault,

		timeout: timeout,
	}
}

// NewProductExternalSearchParamsWithContext creates a new ProductExternalSearchParams object
// with the default values initialized, and the ability to set a context for a request
func NewProductExternalSearchParamsWithContext(ctx context.Context) *ProductExternalSearchParams {
	var (
		countDefault = int64(1000)
		fromDefault  = int64(0)
	)
	return &ProductExternalSearchParams{
		Count: &countDefault,
		From:  &fromDefault,

		Context: ctx,
	}
}

// NewProductExternalSearchParamsWithHTTPClient creates a new ProductExternalSearchParams object
// with the default values initialized, and the ability to set a custom HTTPClient for a request
func NewProductExternalSearchParamsWithHTTPClient(client *http.Client) *ProductExternalSearchParams {
	var (
		countDefault = int64(1000)
		fromDefault  = int64(0)
	)
	return &ProductExternalSearchParams{
		Count:      &countDefault,
		From:       &fromDefault,
		HTTPClient: client,
	}
}

/*ProductExternalSearchParams contains all the parameters to send to the API endpoint
for the product external search operation typically these are written to a http.Request
*/
type ProductExternalSearchParams struct {

	/*Count
	  Number of elements to return

	*/
	Count *int64
	/*ElNumber
	  List of valid el numbers

	*/
	ElNumber *string
	/*Fields
	  Fields filter pattern

	*/
	Fields *string
	/*From
	  From index

	*/
	From *int64
	/*IsInactive
	  Equals

	*/
	IsInactive *bool
	/*Name
	  Containing

	*/
	Name *string
	/*NrfNumber
	  List of valid nrf numbers

	*/
	NrfNumber *string
	/*OrganizationNumber
	  Wholesaler organization number. Mandatory if Wholesaler is not selected. If Wholesaler is selected, this field is ignored.

	*/
	OrganizationNumber *string
	/*Sorting
	  Sorting pattern

	*/
	Sorting *string
	/*Wholesaler
	  Wholesaler

	*/
	Wholesaler *string

	timeout    time.Duration
	Context    context.Context
	HTTPClient *http.Client
}

// WithTimeout adds the timeout to the product external search params
func (o *ProductExternalSearchParams) WithTimeout(timeout time.Duration) *ProductExternalSearchParams {
	o.SetTimeout(timeout)
	return o
}

// SetTimeout adds the timeout to the product external search params
func (o *ProductExternalSearchParams) SetTimeout(timeout time.Duration) {
	o.timeout = timeout
}

// WithContext adds the context to the product external search params
func (o *ProductExternalSearchParams) WithContext(ctx context.Context) *ProductExternalSearchParams {
	o.SetContext(ctx)
	return o
}

// SetContext adds the context to the product external search params
func (o *ProductExternalSearchParams) SetContext(ctx context.Context) {
	o.Context = ctx
}

// WithHTTPClient adds the HTTPClient to the product external search params
func (o *ProductExternalSearchParams) WithHTTPClient(client *http.Client) *ProductExternalSearchParams {
	o.SetHTTPClient(client)
	return o
}

// SetHTTPClient adds the HTTPClient to the product external search params
func (o *ProductExternalSearchParams) SetHTTPClient(client *http.Client) {
	o.HTTPClient = client
}

// WithCount adds the count to the product external search params
func (o *ProductExternalSearchParams) WithCount(count *int64) *ProductExternalSearchParams {
	o.SetCount(count)
	return o
}

// SetCount adds the count to the product external search params
func (o *ProductExternalSearchParams) SetCount(count *int64) {
	o.Count = count
}

// WithElNumber adds the elNumber to the product external search params
func (o *ProductExternalSearchParams) WithElNumber(elNumber *string) *ProductExternalSearchParams {
	o.SetElNumber(elNumber)
	return o
}

// SetElNumber adds the elNumber to the product external search params
func (o *ProductExternalSearchParams) SetElNumber(elNumber *string) {
	o.ElNumber = elNumber
}

// WithFields adds the fields to the product external search params
func (o *ProductExternalSearchParams) WithFields(fields *string) *ProductExternalSearchParams {
	o.SetFields(fields)
	return o
}

// SetFields adds the fields to the product external search params
func (o *ProductExternalSearchParams) SetFields(fields *string) {
	o.Fields = fields
}

// WithFrom adds the from to the product external search params
func (o *ProductExternalSearchParams) WithFrom(from *int64) *ProductExternalSearchParams {
	o.SetFrom(from)
	return o
}

// SetFrom adds the from to the product external search params
func (o *ProductExternalSearchParams) SetFrom(from *int64) {
	o.From = from
}

// WithIsInactive adds the isInactive to the product external search params
func (o *ProductExternalSearchParams) WithIsInactive(isInactive *bool) *ProductExternalSearchParams {
	o.SetIsInactive(isInactive)
	return o
}

// SetIsInactive adds the isInactive to the product external search params
func (o *ProductExternalSearchParams) SetIsInactive(isInactive *bool) {
	o.IsInactive = isInactive
}

// WithName adds the name to the product external search params
func (o *ProductExternalSearchParams) WithName(name *string) *ProductExternalSearchParams {
	o.SetName(name)
	return o
}

// SetName adds the name to the product external search params
func (o *ProductExternalSearchParams) SetName(name *string) {
	o.Name = name
}

// WithNrfNumber adds the nrfNumber to the product external search params
func (o *ProductExternalSearchParams) WithNrfNumber(nrfNumber *string) *ProductExternalSearchParams {
	o.SetNrfNumber(nrfNumber)
	return o
}

// SetNrfNumber adds the nrfNumber to the product external search params
func (o *ProductExternalSearchParams) SetNrfNumber(nrfNumber *string) {
	o.NrfNumber = nrfNumber
}

// WithOrganizationNumber adds the organizationNumber to the product external search params
func (o *ProductExternalSearchParams) WithOrganizationNumber(organizationNumber *string) *ProductExternalSearchParams {
	o.SetOrganizationNumber(organizationNumber)
	return o
}

// SetOrganizationNumber adds the organizationNumber to the product external search params
func (o *ProductExternalSearchParams) SetOrganizationNumber(organizationNumber *string) {
	o.OrganizationNumber = organizationNumber
}

// WithSorting adds the sorting to the product external search params
func (o *ProductExternalSearchParams) WithSorting(sorting *string) *ProductExternalSearchParams {
	o.SetSorting(sorting)
	return o
}

// SetSorting adds the sorting to the product external search params
func (o *ProductExternalSearchParams) SetSorting(sorting *string) {
	o.Sorting = sorting
}

// WithWholesaler adds the wholesaler to the product external search params
func (o *ProductExternalSearchParams) WithWholesaler(wholesaler *string) *ProductExternalSearchParams {
	o.SetWholesaler(wholesaler)
	return o
}

// SetWholesaler adds the wholesaler to the product external search params
func (o *ProductExternalSearchParams) SetWholesaler(wholesaler *string) {
	o.Wholesaler = wholesaler
}

// WriteToRequest writes these params to a swagger request
func (o *ProductExternalSearchParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {

	if err := r.SetTimeout(o.timeout); err != nil {
		return err
	}
	var res []error

	if o.Count != nil {

		// query param count
		var qrCount int64
		if o.Count != nil {
			qrCount = *o.Count
		}
		qCount := swag.FormatInt64(qrCount)
		if qCount != "" {
			if err := r.SetQueryParam("count", qCount); err != nil {
				return err
			}
		}

	}

	if o.ElNumber != nil {

		// query param elNumber
		var qrElNumber string
		if o.ElNumber != nil {
			qrElNumber = *o.ElNumber
		}
		qElNumber := qrElNumber
		if qElNumber != "" {
			if err := r.SetQueryParam("elNumber", qElNumber); err != nil {
				return err
			}
		}

	}

	if o.Fields != nil {

		// query param fields
		var qrFields string
		if o.Fields != nil {
			qrFields = *o.Fields
		}
		qFields := qrFields
		if qFields != "" {
			if err := r.SetQueryParam("fields", qFields); err != nil {
				return err
			}
		}

	}

	if o.From != nil {

		// query param from
		var qrFrom int64
		if o.From != nil {
			qrFrom = *o.From
		}
		qFrom := swag.FormatInt64(qrFrom)
		if qFrom != "" {
			if err := r.SetQueryParam("from", qFrom); err != nil {
				return err
			}
		}

	}

	if o.IsInactive != nil {

		// query param isInactive
		var qrIsInactive bool
		if o.IsInactive != nil {
			qrIsInactive = *o.IsInactive
		}
		qIsInactive := swag.FormatBool(qrIsInactive)
		if qIsInactive != "" {
			if err := r.SetQueryParam("isInactive", qIsInactive); err != nil {
				return err
			}
		}

	}

	if o.Name != nil {

		// query param name
		var qrName string
		if o.Name != nil {
			qrName = *o.Name
		}
		qName := qrName
		if qName != "" {
			if err := r.SetQueryParam("name", qName); err != nil {
				return err
			}
		}

	}

	if o.NrfNumber != nil {

		// query param nrfNumber
		var qrNrfNumber string
		if o.NrfNumber != nil {
			qrNrfNumber = *o.NrfNumber
		}
		qNrfNumber := qrNrfNumber
		if qNrfNumber != "" {
			if err := r.SetQueryParam("nrfNumber", qNrfNumber); err != nil {
				return err
			}
		}

	}

	if o.OrganizationNumber != nil {

		// query param organizationNumber
		var qrOrganizationNumber string
		if o.OrganizationNumber != nil {
			qrOrganizationNumber = *o.OrganizationNumber
		}
		qOrganizationNumber := qrOrganizationNumber
		if qOrganizationNumber != "" {
			if err := r.SetQueryParam("organizationNumber", qOrganizationNumber); err != nil {
				return err
			}
		}

	}

	if o.Sorting != nil {

		// query param sorting
		var qrSorting string
		if o.Sorting != nil {
			qrSorting = *o.Sorting
		}
		qSorting := qrSorting
		if qSorting != "" {
			if err := r.SetQueryParam("sorting", qSorting); err != nil {
				return err
			}
		}

	}

	if o.Wholesaler != nil {

		// query param wholesaler
		var qrWholesaler string
		if o.Wholesaler != nil {
			qrWholesaler = *o.Wholesaler
		}
		qWholesaler := qrWholesaler
		if qWholesaler != "" {
			if err := r.SetQueryParam("wholesaler", qWholesaler); err != nil {
				return err
			}
		}

	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

repository: bjerkio/tripletex-go

repo_name: bjerkio/tripletex-go

gha_language: Go


text:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
DESCRIPTION = "System specific changes for the Qt Quick Scene Graph."
LICENSE = "LGPL-2.1 & GPL-3.0"
LIC_FILES_CHKSUM = " \
    file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \
    file://LICENSE.LGPL;md5=4193e7f1d47a858f6b7c0f1ee66161de \
"

PV = "5.8.0+gitr${SRCPV}"
SRCREV = "1410d45704cf65224c9d8ec2d9bc7128e65b27d5"

DEPENDS = "qtbase libhybris qtwayland virtual/android-headers qtdeclarative"

# We need to be ${MACHINE_ARCH} as we need to compile the source against a specific
# Android version we select per machine
PACKAGE_ARCH = "${MACHINE_ARCH}"

SRC_URI = " \
    git://git.merproject.org/Tofe/qtscenegraph-adaptation.git;branch=tofe/qt5.8 \
"
S = "${WORKDIR}/git"

inherit qmake5

EXTRA_QMAKEVARS_PRE += "CONFIG+=surfaceformat CONFIG+=programbinary CONFIG+=hybristexture"

FILES_${PN} += "${OE_QMAKE_PATH_PLUGINS}"

repository: Tofee/meta-webos-ports

repo_name: Tofee/meta-webos-ports

gha_license_id: MIT

gha_language: BitBake

extension: bb


text:
require xorg-lib-common.inc
DESCRIPTION = "X11 font encoding library"
LICENSE = "BSD-X"
DEPENDS += "zlib xproto font-util-native"
PE = "1"
PR = "${INC_PR}.0"

SRC_URI[archive.md5sum] = "11d3c292f05a90f6f67840a9e9c3d9b8"
SRC_URI[archive.sha256sum] = "348a1b0142f61afeaafc9497e997d6f10074affed8682e202d019f10170b9cbf"

BBCLASSEXTEND = "native"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
DESCRIPTION = "The "Encode" module provides the interface between Perl strings and the \
rest of the system. Perl strings are sequences of *characters*."

SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
PR = "r0"

MAINTAINER=	"Poky <poky@yoctoproject.org>"
HOMEPAGE=	"https://metacpan.org/release/Encode"

LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"

SRC_URI = "https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI/Encode-3.16.tar.gz"

SRC_URI[md5sum] = "113b5ffa2330c5f5848b64994f70781c"
SRC_URI[sha256sum] = "e5e91d98a97de70dccecc2a25d049a0b5f5f12228c618680020d73043355294c"

S = "${WORKDIR}/Encode-${PV}"

inherit cpan update-alternatives

ALTERNATIVE_PRIORITY = "90"

ALTERNATIVE:${PN} = "piconv enc2xs encguess"
ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv"
ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs"
ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess"

BBCLASSEXTEND = "native"

repository: rehsack/meta-cpan

repo_name: rehsack/meta-cpan


text:
###############################################################################
#
# CMake script for finding the GFlags library.
#
# https://gflags.github.io/gflags/
#
# Redistribution and use is allowed according to the terms of the 3-clause BSD
# license.
#
# Input variables:
#
# - Gflags_FIND_REQUIRED: throws an error if gflags is not found but it is required
#
# Output variables:
#
# - Gflags_FOUND: Boolean that indicates if the package was found
# - Gflags_LIBRARIES: Package libraries
# - Gflags_INCLUDE_DIRS: Absolute path to package headers
#
# Example usage:
#
#   find_package(Gflags REQUIRED)
#
#   include_directories(
#     ${Gflags_INCLUDE_DIRS}
#   )
#
#   add_executable(main src/main.cpp)
#   target_link_libraries(main
#     ${Gflags_LIBRARIES}
#   )
###############################################################################

find_path(Gflags_INCLUDE_PATH gflags/gflags.h)

find_library(Gflags_LIBRARY NAMES gflags libgflags)

if(Gflags_INCLUDE_PATH AND Gflags_LIBRARY)
  set(Gflags_FOUND TRUE)
endif(Gflags_INCLUDE_PATH AND Gflags_LIBRARY)

if(Gflags_FOUND)
  message(STATUS "Found gflags: ${Gflags_LIBRARY}")
  # Output variables
  set(Gflags_INCLUDE_DIRS ${Gflags_INCLUDE_DIR})
  set(Gflags_LIBRARIES ${Gflags_LIBRARY})
else(Gflags_FOUND)
  if(Gflags_FIND_REQUIRED)
    message(FATAL_ERROR "Could not find gflags library.")
  endif(Gflags_FIND_REQUIRED)
endif(Gflags_FOUND)

gha_language: CMake

extension: cmake


text:
using System.Collections.Generic;
using SFA.DAS.QnA.Api.Types.Page;

namespace SFA.DAS.QnA.Application.Validators
{
    public class AddressBuildingAndStreetRequiredValidator : AddressRequiredValidatorBase, IValidator
    {
        public ValidationDefinition ValidationDefinition { get; set; }
        public List<KeyValuePair<string, string>> Validate(Question question, Answer answer)
        {
            var errors = new List<KeyValuePair<string, string>>();

            var text = answer?.Value?.Trim();

            if (!string.IsNullOrEmpty(text))
            {
                var validateErrors = ValidateProperty(question.QuestionId, text, "AddressLine1", ValidationDefinition.ErrorMessage);

                if(validateErrors.Count > 0)
                {
                    errors.AddRange(validateErrors);
                }
            }

            return errors;
        }
    }
}

repository: SkillsFundingAgency/das-qna-api

repo_name: SkillsFundingAgency/das-qna-api

gha_language: C#

extension: cs


text:
// Package campaignclient is a library for the Kochava Campaign Management API
// The Campaign Management API Integration provides the programmatic tools
// to create and maintain campaigns, segments and trackers in the Kochava system.
package campaignclient

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

// Client is the functional APIAccessor struct to communicate with the Kochava
// Premium Publisher API
type Client struct {
	appID   string
	authKey string

	debug bool

	client *http.Client
}

// Campaign struct defines the information for a campaign object
type Campaign struct {
	ID                     string `json:"id"`
	AppID                  string `json:"app_id"`
	Type                   string `json:"type"`
	Source                 string `json:"source"`
	Name                   string `json:"name"`
	DestinationURL         string `json:"destination_url"`
	DateCreated            int    `json:"date_created"`
	DateStart              int    `json:"date_start"`
	DateEnd                int    `json:"date_end"`
	DateTrackOutsideRange  bool   `json:"date_track_outside_range"`
	BudgetDaily            int    `json:"budget_daily"`
	BudgetWeekly           int    `json:"budget_weekly"`
	BudgetMax              int    `json:"budget_max"`
	TargetClicks           int    `json:"target_clicks"`
	TargetInstalls         int    `json:"target_installs"`
	Meta                   string `json:"meta"`
	LegacyIoGUID           string `json:"legacy_io_guid"`
	SmartLinkID            string `json:"smart_link_id"`
	WhatIfParentCampaignID string `json:"what_if_parent_campaign_id"`
}

// GetCampaigns API provides the ability to retrieve the entire list of campaigns
// from the numerical App ID provided in the URL.
func (c Client) GetCampaigns(stats string) ([]Campaign, error) {
	endpoint := fmt.Sprintf(`https://campaign.api.kochava.com/campaign/%v?stats=%v`, c.appID, stats)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return []Campaign{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return []Campaign{}, err
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return []Campaign{}, err
	}

	switch {
	case res.StatusCode < 300 && res.StatusCode > 199:

		campaignList := make([]Campaign, 0)

		err = json.Unmarshal(body, &campaignList)
		if err != nil {
			fmt.Println(err)
			return []Campaign{}, err
		}
		fmt.Println(campaignList)

		return campaignList, nil

	default:
		fmt.Println(string(body))
		return []Campaign{}, err
	}

}

// CreateCampaignRequest contains necessary information to create a campaign
type CreateCampaignRequest struct {
	Name           string `json:"name"`
	DateEnd        string `json:"date_end"`
	DateStart      string `json:"date_start"`
	DestinationURL string `json:"destination_url"`
	Source         string `json:"source"`
}

// CreateCampaign API is used to create a new campaign by providing a JSON
// definition of the campaign.
func (c Client) CreateCampaign(name, destination string) (Campaign, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/campaign/%v", c.appID)

	reqBody := CreateCampaignRequest{
		Name:           name,
		DestinationURL: destination,
		Source:         "api",
	}

	reqBodyBytes, err := json.Marshal(reqBody)
	if err != nil {
		return Campaign{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Campaign{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Campaign{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Campaign{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Campaign{}, err
	}

	var resBody Campaign

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Campaign{}, err
	}

	return resBody, nil
}

// UpdateCampaignRequest contains the necessary information to update a campaign
type UpdateCampaignRequest struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

// UpdateCampaign API is used to update an existing campaign by providing a JSON
// definition of the campaign with the modifications. If the campaign is
// successfully updated an HTTP 200 code and response, as shown below, is
// returned.
func (c Client) UpdateCampaign(id, name string) (Campaign, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/campaign/%v", c.appID)

	reqBody := UpdateCampaignRequest{
		ID:   id,
		Name: name,
	}

	reqBodyBytes, err := json.Marshal(reqBody)
	if err != nil {
		return Campaign{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Campaign{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Campaign{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Campaign{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Campaign{}, err
	}

	var resBody Campaign

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Campaign{}, err
	}

	return resBody, nil
}

// GetCampaign API provides the ability to retrieve a single campaign for the
// numerical Campaign ID provided in the URL.
func (c Client) GetCampaign(campaignID string) (Campaign, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/campaign/%v/%v", c.appID, campaignID)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return Campaign{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Campaign{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Campaign{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Campaign{}, err
	}

	var resBody Campaign

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Campaign{}, err
	}

	return resBody, nil
}

// Segment struct contains all of the information for a segment object
type Segment struct {
	ID                 string `json:"id"`
	AppID              string `json:"app_id"`
	CampaignID         string `json:"campaign_id"`
	Source             string `json:"source"`
	Name               string `json:"name"`
	TargetGeo          string `json:"target_geo"`
	DateCreated        int    `json:"date_created"`
	WhatIfParentTierID string `json:"what_if_parent_tier_id"`
}

// GetSegments API provides the ability to retrieve the segments for the numerical
// Campaign ID provided in the URL.
func (c Client) GetSegments(campaignID string) ([]Segment, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tier/%v", campaignID)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return []Segment{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return []Segment{}, err
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return []Segment{}, err
	}

	switch {
	case res.StatusCode < 300 && res.StatusCode > 199:

		segmentList := make([]Segment, 0)

		err = json.Unmarshal(body, &segmentList)
		if err != nil {
			fmt.Println(err)
			return []Segment{}, err
		}

		return segmentList, nil

	default:
		fmt.Println(string(body))
		return []Segment{}, err
	}

}

// CreateSegmentRequest contains the necessary information to create a segment
type CreateSegmentRequest struct {
	Name   string `json:"name"`
	Source string `json:"source"`
}

// CreateSegment API is used to create a new segment by providing a JSON definition of the segment.
func (c Client) CreateSegment(name, campaignID string) (Segment, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tier/%v", campaignID)

	reqBody := CreateSegmentRequest{
		Name:   name,
		Source: "api",
	}

	reqBodyBytes, err := json.Marshal(reqBody)
	if err != nil {
		return Segment{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Segment{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Segment{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Segment{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Segment{}, err
	}

	var resBody Segment

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Segment{}, err
	}

	return resBody, nil
}

// UpdateSegmentRequest contains the necessary information to update a segment
type UpdateSegmentRequest struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

// UpdateSegment API is used to update an existing segment by providing a JSON definition
// of the segment with the modifications. If the segment is successfully updated
// an HTTP 200 code and response, as shown below, is returned.
func (c Client) UpdateSegment(name, campaignID, segmentID string) (Segment, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tier/%v", campaignID)

	reqBody := UpdateSegmentRequest{
		ID:   segmentID,
		Name: name,
	}

	reqBodyBytes, err := json.Marshal(reqBody)
	if err != nil {
		return Segment{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Segment{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Segment{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Segment{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Segment{}, err
	}

	var resBody Segment

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Segment{}, err
	}

	return resBody, nil
}

// GetSegment API provides the ability to retrieve a single segment for the numerical
// Segment ID provided in the URL.
func (c Client) GetSegment(campaignID, segmentID string) (Segment, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tier/%v/%v", campaignID, segmentID)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return Segment{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Segment{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Segment{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Segment{}, err
	}

	var resBody Segment

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Segment{}, err
	}

	return resBody, nil
}

// Tracker struct contains all of the information for a tracker object
type Tracker struct {
	ID                         string        `json:"id"`
	TierID                     string        `json:"tier_id"`
	CampaignID                 string        `json:"campaign_id"`
	AppID                      string        `json:"app_id"`
	DateCreated                string        `json:"date_created"`
	Source                     string        `json:"source"`
	GUID                       string        `json:"guid"`
	Name                       string        `json:"name"`
	Type                       string        `json:"type"`
	ClickTrackingURL           string        `json:"click_tracking_url"`
	ImpTrackingURL             string        `json:"imp_tracking_url"`
	DestinationURL             string        `json:"destination_url"`
	DestinationURLReengagement string        `json:"destination_url_reengagement"`
	NetworkID                  string        `json:"network_id"`
	NetworkPricing             string        `json:"network_pricing"`
	NetworkPrice               float64       `json:"network_price"`
	BudgetDaily                float64       `json:"budget_daily"`
	BudgetWeekly               float64       `json:"budget_weekly"`
	BudgetMax                  float64       `json:"budget_max"`
	RtbID                      string        `json:"rtb_id"`
	RtbDefinitions             string        `json:"rtb_definitions"`
	Meta                       string        `json:"meta"`
	LegacyCampaignID           string        `json:"legacy_campaign_id"`
	LegacyPostID               string        `json:"legacy_post_id"`
	PermPublisherAllowView     bool          `json:"perm_publisher_allow_view"`
	IsActive                   bool          `json:"is_active"`
	CreativeIds                []interface{} `json:"creative_ids"`
	ClickURLCustomParams       []interface{} `json:"click_url_custom_params"`
	DestinationData            struct {
		Type    string `json:"type,omitempty"`
		TypeObj string `json:"typeObj,omitempty"`
	} `json:"destination_data"`
	RtbUpdateStatus   string      `json:"rtb_update_status"`
	RtbUpdateResponse interface{} `json:"rtb_update_response"`
	RtbUpdatePid      interface{} `json:"rtb_update_pid"`
	S2SDestination    interface{} `json:"s2s_destination"`
	PostbackURL       interface{} `json:"postback_url"`
	VerificationRules struct {
		Rule struct {
			CityIn                      []interface{} `json:"city_in"`
			CityNotIn                   []interface{} `json:"city_not_in"`
			DmaIn                       []interface{} `json:"dma_in"`
			DmaNotIn                    []interface{} `json:"dma_not_in"`
			PostalIn                    []interface{} `json:"postal_in"`
			PostalNotIn                 []interface{} `json:"postal_not_in"`
			StateIn                     []interface{} `json:"state_in"`
			StateNotIn                  []interface{} `json:"state_not_in"`
			CountryIn                   []interface{} `json:"country_in"`
			CountryNotIn                []interface{} `json:"country_not_in"`
			DeviceTypeIn                []interface{} `json:"device_type_in"`
			DeviceTypeNotIn             []interface{} `json:"device_type_not_in"`
			DeviceVersionIn             []interface{} `json:"device_version_in"`
			DeviceVersionNotIn          []interface{} `json:"device_version_not_in"`
			OsVersionIn                 []interface{} `json:"os_version_in"`
			OsVersionNotIn              []interface{} `json:"os_version_not_in"`
			OsVersionGreaterThan        []interface{} `json:"os_version_greater_than"`
			OsVersionLessThan           []interface{} `json:"os_version_less_than"`
			PlatformIn                  []interface{} `json:"platform_in"`
			PlatformNotIn               []interface{} `json:"platform_not_in"`
			BlacklistDevice             bool          `json:"blacklist_device"`
			BlacklistIP                 bool          `json:"blacklist_ip"`
			BlacklistSite               bool          `json:"blacklist_site"`
			FrequencyCapClick           interface{}   `json:"frequency_cap_click"`
			FrequencyCapMinutes         interface{}   `json:"frequency_cap_minutes"`
			FrequencyCapImp             interface{}   `json:"frequency_cap_imp"`
			FrequencyCapClickDefinition []interface{} `json:"frequency_cap_click_definition"`
			FrequencyCapImpDefinition   []interface{} `json:"frequency_cap_imp_definition"`
			DeviceLanguageIn            []interface{} `json:"device_language_in"`
			DeviceLanguageNotIn         []interface{} `json:"device_language_not_in"`
			UtmSourceMatchRequired      bool          `json:"utm_source_match_required"`
			UtmSourceMatchForbidden     bool          `json:"utm_source_match_forbidden"`
			ReferrerClickTimeRequired   bool          `json:"referrer_click_time_required"`
			MinimumTimeToInstall        int           `json:"minimum_time_to_install"`
			ReceiptStatusIn             []string      `json:"receipt_status_in"`
			ValidTrafficDateEnabled     bool          `json:"valid_traffic_date_enabled"`
			ValidTrafficDateStart       int           `json:"valid_traffic_date_start"`
			ValidTrafficDateEnd         int           `json:"valid_traffic_date_end"`
			FrequencyCapRules           struct {
			} `json:"frequency_cap_rules"`
			Meta struct {
				DeviceTypeHumanReadable []interface{} `json:"device_type_human_readable"`
				OsVersionHumanReadable  []interface{} `json:"os_version_human_readable"`
			} `json:"meta"`
		} `json:"rule"`
		FailAction struct {
			AppendParam     bool `json:"append_param"`
			DeliverPostback bool `json:"deliver_postback"`
			Reconcile       bool `json:"reconcile"`
		} `json:"fail_action"`
		Enabled bool `json:"enabled"`
	} `json:"verification_rules"`
	SmartLinkID              interface{} `json:"smart_link_id"`
	WhatIfParentTrackerID    interface{} `json:"what_if_parent_tracker_id"`
	NetworkName              string      `json:"network_name"`
	NetworkIsSelfAttributing bool        `json:"network_is_self_attributing"`
	CampaignName             string      `json:"campaign_name"`
	TierName                 string      `json:"tier_name"`
	AppGUID                  string      `json:"app_guid"`
	AgencyTrackerID          interface{} `json:"agency_tracker_id"`
	GoogleAndroidPostbackURL string      `json:"google_android_postback_url"`
	GoogleIosPostbackURL     string      `json:"google_ios_postback_url"`
	TwitterEventGUID         string      `json:"twttter_event_guid,omitempty"`
	AgencyNetworkID          string      `json:"agency_network_id,omitempty"`
	Events                   []string    `json:"events,omitempty"`
}

// GetTrackers API provides the ability to retrieve the entire list of trackers for the
// numerical App ID provided in the URL. NOTE: This function does not currently
// have support for a querystring to filter trackers, even though that ability
// exists in the API. Support will be added for that eventually.
func (c Client) GetTrackers(query string) ([]Tracker, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/%v?%v", c.appID, query)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		return []Tracker{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return []Tracker{}, err
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return []Tracker{}, err
	}

	switch {
	case res.StatusCode < 300 && res.StatusCode > 199:

		trackerList := make([]Tracker, 0)

		err = json.Unmarshal(body, &trackerList)
		if err != nil {
			fmt.Println(err)
			return []Tracker{}, err
		}

		return trackerList, nil

	default:
		fmt.Println(string(body))
		return []Tracker{{}, {}}, err
	}

}

// UpdateTrackerRequest contains all of the necessary information to update a tracker
type UpdateTrackerRequest struct {
	ID                         string        `json:"id"`
	Name                       string        `json:"name,omitempty"`
	DestinationURL             string        `json:"destination_url,omitempty"`
	DestinationURLReengagement string        `json:"destination_url_reengagement,omitempty"`
	LandingPageID              string        `json:"landing_page_id,omitempty"`
	NetworkPricing             string        `json:"network_pricing,omitempty"`
	NetworkPrice               float64       `json:"network_price,omitempty"`
	PermPublisherAllowView     bool          `json:"perm_publisher_allow_view,omitempty"`
	ClickURLCustomParams       []interface{} `json:"click_url_custom_params,omitempty"`
	S2SDestination             interface{}   `json:"s2s_destination,omitempty"`
	VerificationRules          struct {
		Rule struct {
			CityIn                      []interface{} `json:"city_in"`
			CityNotIn                   []interface{} `json:"city_not_in"`
			DmaIn                       []interface{} `json:"dma_in"`
			DmaNotIn                    []interface{} `json:"dma_not_in"`
			PostalIn                    []interface{} `json:"postal_in"`
			PostalNotIn                 []interface{} `json:"postal_not_in"`
			StateIn                     []interface{} `json:"state_in"`
			StateNotIn                  []interface{} `json:"state_not_in"`
			CountryIn                   []interface{} `json:"country_in"`
			CountryNotIn                []interface{} `json:"country_not_in"`
			DeviceTypeIn                []interface{} `json:"device_type_in"`
			DeviceTypeNotIn             []interface{} `json:"device_type_not_in"`
			DeviceVersionIn             []interface{} `json:"device_version_in"`
			DeviceVersionNotIn          []interface{} `json:"device_version_not_in"`
			OsVersionIn                 []interface{} `json:"os_version_in"`
			OsVersionNotIn              []interface{} `json:"os_version_not_in"`
			OsVersionGreaterThan        []interface{} `json:"os_version_greater_than"`
			OsVersionLessThan           []interface{} `json:"os_version_less_than"`
			PlatformIn                  []interface{} `json:"platform_in"`
			PlatformNotIn               []interface{} `json:"platform_not_in"`
			BlacklistDevice             bool          `json:"blacklist_device"`
			BlacklistIP                 bool          `json:"blacklist_ip"`
			BlacklistSite               bool          `json:"blacklist_site"`
			FrequencyCapClick           interface{}   `json:"frequency_cap_click"`
			FrequencyCapMinutes         interface{}   `json:"frequency_cap_minutes"`
			FrequencyCapImp             interface{}   `json:"frequency_cap_imp"`
			FrequencyCapClickDefinition []interface{} `json:"frequency_cap_click_definition"`
			FrequencyCapImpDefinition   []interface{} `json:"frequency_cap_imp_definition"`
			DeviceLanguageIn            []interface{} `json:"device_language_in"`
			DeviceLanguageNotIn         []interface{} `json:"device_language_not_in"`
			UtmSourceMatchRequired      bool          `json:"utm_source_match_required"`
			UtmSourceMatchForbidden     bool          `json:"utm_source_match_forbidden"`
			ReferrerClickTimeRequired   bool          `json:"referrer_click_time_required"`
			MinimumTimeToInstall        int           `json:"minimum_time_to_install"`
			ReceiptStatusIn             []string      `json:"receipt_status_in"`
			ValidTrafficDateEnabled     bool          `json:"valid_traffic_date_enabled"`
			ValidTrafficDateStart       int           `json:"valid_traffic_date_start"`
			ValidTrafficDateEnd         int           `json:"valid_traffic_date_end"`
			FrequencyCapRules           struct {
			} `json:"frequency_cap_rules"`
			Meta struct {
				DeviceTypeHumanReadable []interface{} `json:"device_type_human_readable"`
				OsVersionHumanReadable  []interface{} `json:"os_version_human_readable"`
			} `json:"meta"`
		} `json:"rule"`
		FailAction struct {
			AppendParam     bool `json:"append_param"`
			DeliverPostback bool `json:"deliver_postback"`
			Reconcile       bool `json:"reconcile"`
		} `json:"fail_action"`
		Enabled bool `json:"enabled"`
	} `json:"verification_rules,omitempty"`
	TierID          string `json:"tier_id,omitempty"`
	CampaignID      string `json:"campaign_id,omitempty"`
	DestinationData struct {
		Type    string `json:"type,omitempty"`
		TypeObj string `json:"typeObj,omitempty"`
	} `json:"destination_data,omitempty"`
	AgencyNetworkID string   `json:"agency_network_id,omitempty"`
	Events          []string `json:"events,omitempty"`
}

// UpdateTracker API is used to update an existing tracker by providing a JSON definition
// of the tracker with modifications. If the tracker is successfully updated an
// HTTP 200 code and response, as shown below, is returned.
func (c Client) UpdateTracker(updates Tracker) (Tracker, error) {

	updateRequest := UpdateTrackerRequest{
		ID:                         updates.ID,
		Name:                       updates.Name,
		DestinationURL:             updates.DestinationURL,
		DestinationURLReengagement: updates.DestinationURLReengagement,
		LandingPageID:              "",
		NetworkPricing:             updates.NetworkPricing,
		NetworkPrice:               updates.NetworkPrice,
		PermPublisherAllowView:     updates.PermPublisherAllowView,
		ClickURLCustomParams:       updates.ClickURLCustomParams,
		S2SDestination:             updates.S2SDestination,
		VerificationRules:          updates.VerificationRules,
		TierID:                     updates.TierID,
		CampaignID:                 updates.CampaignID,
		DestinationData:            updates.DestinationData,
		AgencyNetworkID:            updates.AgencyNetworkID,
		Events:                     updates.Events,
	}

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/%v", c.appID)

	reqBodyBytes, err := json.Marshal(updateRequest)
	if err != nil {
		return Tracker{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Tracker{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Tracker{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Tracker{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Tracker{}, err
	}

	var resBody Tracker

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Tracker{}, err
	}

	return resBody, nil
}

// DeleteTracker API is used to delete an existing tracker by providing the numerical
// Tracker ID. If the tracker is deleted an HTTP 200 response will be returned,
// otherwise another HTTP code and message detailing the error will be returned.
func (c Client) DeleteTracker(trackerID string) error {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/%v/delete/%v", c.appID, trackerID)

	req, err := http.NewRequest("DELETE", endpoint, nil)
	if err != nil {
		return err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return err
	}

	if res.StatusCode > 199 && res.StatusCode < 300 {
		return nil
	}

	return fmt.Errorf("non-200 response: %v", res.Status)
}

// CreateTrackerRequest contains all of the information to create a tracker
type CreateTrackerRequest struct {
	Name                       string        `json:"name"`
	Type                       string        `json:"type"`
	NetworkID                  string        `json:"network_id"`
	DestinationURL             string        `json:"destination_url"`
	DestinationURLReengagement string        `json:"destination_url_reengagement"`
	NetworkPricing             string        `json:"network_pricing"`
	NetworkPrice               float32       `json:"network_price"`
	PermPublisherAllowView     bool          `json:"perm_publisher_allow_view"`
	ClickURLCustomParams       []interface{} `json:"click_url_custom_params"`
	TierID                     string        `json:"tier_id"`
	CampaignID                 string        `json:"campaign_id"`
	DestinationData            struct {
		Type    string `json:"type"`
		TypeObj string `json:"typeObj"`
	} `json:"destination_data"`
	Events []string `json:"events"`
}

// CreateTracker API is used to create a new tracker by providing a JSON definition of
// the tracker.
func (c Client) CreateTracker(name, trackerType, networkID, destinationURL, deeplinkURL, campaignID, segmentID, priceType string, priceValue float32, allowPublisherView bool, events []string, clickURLCustomParams []interface{}) (Tracker, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/%v/create", c.appID)

	reqBody := CreateTrackerRequest{
		Name:                       name,
		Type:                       trackerType,
		NetworkID:                  networkID,
		DestinationURL:             destinationURL,
		DestinationURLReengagement: deeplinkURL,
		NetworkPricing:             priceType,
		NetworkPrice:               priceValue,
		PermPublisherAllowView:     allowPublisherView,
		ClickURLCustomParams:       clickURLCustomParams,
		TierID:                     segmentID,
		CampaignID:                 campaignID,
		Events:                     events,
	}

	reqBodyBytes, err := json.Marshal(reqBody)
	if err != nil {
		return Tracker{}, err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBodyBytes))
	if err != nil {
		return Tracker{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return Tracker{}, err
	}

	if res.StatusCode > 299 || res.StatusCode < 200 {
		return Tracker{}, fmt.Errorf("api returned non-200 response:\nresponse_code: %v\nresponse_body: %v", res.StatusCode, res.Status)
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return Tracker{}, err
	}

	var resBody Tracker

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		return Tracker{}, err
	}

	return resBody, nil
}

// GetOverridesResponse Contains the informations for an overrides object
type GetOverridesResponse struct {
	Success          bool   `json:"success"`
	RequestID        string `json:"request_id"`
	TrackerOverrides []struct {
		DeviceIDLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"device_id_lookback_window"`
		EnableVerification struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"enable_verification"`
		FingerprintLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"fingerprint_lookback_window"`
		ImpressionLookbackDevice struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_device"`
		ImpressionLookbackFingerprint struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_fingerprint"`
		ImpressionLookbackIP struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_ip"`
		ImpressionLookbackPartialIP struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_partial_ip"`
		ImpressionsDisableAttribution struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impressions_disable_attribution"`
		IPLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"ip_lookback_window"`
	} `json:"tracker_overrides"`
}

// GetTrackerOverrides API provides the ability to retrieve the tracker overrides for the
// numerical Override ID provided in the URL.
func (c Client) GetTrackerOverrides(trackerID string) (GetOverridesResponse, error) {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/override?id=%v", trackerID)

	req, err := http.NewRequest("GET", endpoint, nil)
	if err != nil {
		fmt.Println("Request Creation Failed: ")
		return GetOverridesResponse{}, err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		fmt.Println("Request Failed: ")
		return GetOverridesResponse{}, err
	}

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println("Response Body ReadAll Failed: ")
		return GetOverridesResponse{}, err
	}

	var resBody GetOverridesResponse

	err = json.Unmarshal(body, &resBody)
	if err != nil {
		fmt.Println("JSON UnMarshal Failed: ")
		fmt.Printf("%#v\n", string(body))
		return GetOverridesResponse{}, err
	}

	return resBody, nil
}

// PostOverridesRequest contains the necessary information to configure overrides
// on a tracker
type PostOverridesRequest struct {
	TrackerOverrides struct {
		DeviceIDLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"device_id_lookback_window"`
		EnableVerification struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"enable_verification"`
		FingerprintLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"fingerprint_lookback_window"`
		ImpressionLookbackDevice struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_device"`
		ImpressionLookbackFingerprint struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_fingerprint"`
		ImpressionLookbackIP struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_ip"`
		ImpressionLookbackPartialIP struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impression_lookback_partial_ip"`
		ImpressionsDisableAttribution struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"impressions_disable_attribution"`
		IPLookbackWindow struct {
			Name  string `json:"name"`
			Key   string `json:"key"`
			Group string `json:"group"`
			Type  string `json:"type"`
			Value int    `json:"value"`
			Admin int    `json:"admin"`
		} `json:"ip_lookback_window"`
	} `json:"tracker_overrides"`
}

// PostTrackerOverrides API provides the ability to create tracker overrides for the numerical
// Tracker ID provided in the URL.
func (c Client) PostTrackerOverrides(trackerID string, overrides PostOverridesRequest) error {

	endpoint := fmt.Sprintf("https://campaign.api.kochava.com/tracker/override?id=%v", trackerID)

	reqBody, err := json.Marshal(overrides)
	if err != nil {
		return err
	}

	req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(reqBody))
	if err != nil {
		return err
	}

	req.Header.Add("Authentication-Key", c.authKey)

	res, err := c.client.Do(req)
	if err != nil {
		return err
	}

	if res.StatusCode > 199 && res.StatusCode < 300 {
		return nil
	}

	return fmt.Errorf("non-200 response: %v", res.Status)
}

repository: TengLun/kapiLib

repo_name: TengLun/kapiLib


text:
SUMMARY = "RFC 3986 compliant URI parsing library"
HOMEPAGE = "https://uriparser.github.io"

LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=fcc5a53146c2401f4b4f6a3bdf3f0168"

SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
SRC_URI[sha256sum] = "11553b2abd2b5728a6c88e35ab08e807d0a0f23c44920df937778ce8cc4d40ff"

inherit cmake github-releases

UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)"

EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"

BBCLASSEXTEND += "native"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded


text:
SECTION = "console/network"
DEPENDS = "openssl"
DESCRIPTION = "Extremely simple MTA to get mail off the system to a mail hub."
LICENSE = "GPL"
PR = "r6"

SRC_URI = "${DEBIAN_MIRROR}/main/s/ssmtp/ssmtp_${PV}.orig.tar.gz \
           file://ldflags.patch \
           file://configure.patch \
           file://libs-lcrypto.patch \
           file://dont-strip.patch \
           file://ssmtp.conf"
S = "${WORKDIR}/${PN}-${PV}"

inherit autotools

CONFFILES_${PN} = "${sysconfdir}/ssmtp/ssmtp.conf ${sysconfdir}/ssmtp/revaliases"
EXTRA_OECONF = "--enable-ssl"
INHIBIT_AUTO_STAGE = "1"

do_compile () {
        oe_runmake 'LDFLAGS=${LDFLAGS}'
}

do_install () {
        oe_runmake 'prefix=${D}${prefix}' 'exec_prefix=${D}${exec_prefix}' \
                   'bindir=${D}${bindir}' 'mandir=${D}${mandir}' \
                   'etcdir=${D}${sysconfdir}' GEN_CONFIG="`which echo`" install
        install -d ${D}${sysconfdir}/ssmtp
        install -m 0644 ${WORKDIR}/ssmtp.conf ${D}${sysconfdir}/ssmtp/ssmtp.conf
}

pkg_postinst () {
        update-alternatives --install ${sbindir}/sendmail sendmail ${bindir}/ssmtp 30
}

pkg_postrm () {
        update-alternatives --remove ${sbindir}/sendmail sendmail
}

SRC_URI[md5sum] = "957e6fff08625fe34f4fc33d0925bbc9"
SRC_URI[sha256sum] = "2151ad18cb73f9a254f796dde2b48be7318b45410b59fedbb258db5a41044fb5"


text:
# base recipe : meta/recipes-connectivity/connman/connman_1.36.bb
# base branch : warrior
# base commit : 8c0a1cfb958bdc1d8451873e21ae527e3322f1d9

require ${COREBASE}/meta/recipes-connectivity/connman/connman.inc
inherit debian-package
require recipes-debian/sources/${BPN}.inc

FILESPATH_append = ":${COREBASE}/meta/recipes-connectivity/connman/${PN}"
SRC_URI  += "\
    file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
    file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \
    file://connman \
    file://no-version-scripts.patch \
    file://0001-Fix-various-issues-which-cause-problems-under-musl.patch \
    file://0002-resolve-musl-does-not-implement-res_ninit.patch \
"

RRECOMMENDS_${PN} = "connman-conf"

repository: miraclelinux/meta-debian-extended

repo_name: miraclelinux/meta-debian-extended

branch_name: refs/heads/warrior


text:
// Copyright 2020 the Exposure Notifications Verification Server authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Package associated handles the iOS and Android associated app handler
// protocols. For more discussion of these protocols, please see:
//
// Android:
//
//	https://developer.android.com/training/app-links/verify-site-associations
//
// iOS:
//
//	https://developer.apple.com/documentation/safariservices/supporting_associated_domains
package associated

import (
	"fmt"
	"net/http"

	"github.com/google/exposure-notifications-server/pkg/logging"
	"github.com/google/exposure-notifications-verification-server/pkg/api"
	"github.com/google/exposure-notifications-verification-server/pkg/cache"
	"github.com/google/exposure-notifications-verification-server/pkg/controller"
	"github.com/google/exposure-notifications-verification-server/pkg/database"
)

func (c *Controller) HandleIos() http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx := r.Context()

		logger := logging.FromContext(ctx).Named("associated.HandleIos")

		region := c.getRegion(r)
		if region == "" {
			c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("request is missing region"))
			return
		}

		// Lookup the realm with the region code.
		realm, err := c.db.FindRealmByRegion(region)
		if err != nil {
			if database.IsNotFound(err) {
				c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("no realm exists for region %q", region))
				return
			}

			controller.InternalError(w, r, c.h, err)
			return
		}

		var data *api.IOSDataResponse
		cacheKey := &cache.Key{
			Namespace: "apps:ios:by_region",
			Key:       region,
		}
		if err := c.cacher.Fetch(ctx, cacheKey, &data, c.config.AppCacheTTL, func() (interface{}, error) {
			logger.Debug("fetching new ios data")
			return c.IOSData(realm.ID)
		}); err != nil {
			controller.InternalError(w, r, c.h, err)
			return
		}

		if data == nil {
			c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("no apps are registered"))
			return
		}

		c.h.RenderJSON(w, http.StatusOK, data)
	})
}

func (c *Controller) HandleAndroid() http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx := r.Context()

		logger := logging.FromContext(ctx).Named("associated.HandleAndroid")

		region := c.getRegion(r)
		if region == "" {
			c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("request is missing region"))
			return
		}

		// Lookup the realm with the region code.
		realm, err := c.db.FindRealmByRegion(region)
		if err != nil {
			if database.IsNotFound(err) {
				c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("no realm exists for region %q", region))
				return
			}

			controller.InternalError(w, r, c.h, err)
			return
		}

		var data []api.AndroidDataResponse
		cacheKey := &cache.Key{
			Namespace: "apps:android:by_region",
			Key:       region,
		}
		if err := c.cacher.Fetch(ctx, cacheKey, &data, c.config.AppCacheTTL, func() (interface{}, error) {
			logger.Debug("fetching new android data")
			return c.AndroidData(realm.ID)
		}); err != nil {
			controller.InternalError(w, r, c.h, err)
			return
		}

		if len(data) == 0 {
			c.h.RenderJSON(w, http.StatusNotFound, fmt.Errorf("no apps are registered"))
			return
		}

		c.h.RenderJSON(w, http.StatusOK, data)
	})
}


text:
require binutils_${PV}.bb
require binutils-cross-sdk.inc
PR = "${INC_PR}.1"

SRC_URI[md5sum] = "17a52219dee5a76c1a9d9b0bfd337d66"
SRC_URI[sha256sum] = "bd2ea10ffc2bf62a917b05f4fbe3d02212589c2bc177fa0c51a9c874d3da528a"


text:
/*
Copyright 2016-2020 Gravitational, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package main

import (
	"os"
	"os/signal"
	"syscall"

	"github.com/gravitational/satellite/agent"
	"github.com/gravitational/satellite/cmd"
	k8smembership "github.com/gravitational/satellite/lib/membership/kubernetes"

	"github.com/gravitational/trace"
	log "github.com/sirupsen/logrus"
	"k8s.io/client-go/informers"
)

// runAgent starts the monitoring process and blocks waiting for a signal.
func runAgent(config *agent.Config, monitoringConfig *config, peers []string) error {
	if len(peers) > 0 {
		log.Infof("initial cluster=%v", peers)
	}

	clientset, err := cmd.GetKubeClientFromPath(monitoringConfig.kubeconfigPath)
	if err != nil {
		return trace.Wrap(err, "failed to get Kubernetes clientset")
	}

	informer := informers.NewSharedInformerFactory(clientset, 0).Core().V1().Nodes().Informer()
	stop := make(chan struct{})
	defer close(stop)
	go informer.Run(stop)

	cluster, err := k8smembership.NewCluster(&k8smembership.Config{
		Informer: informer,
	})
	if err != nil {
		return trace.Wrap(err, "failed to initialize cluster membership")
	}
	config.Cluster = cluster

	monitoringAgent, err := agent.New(config)
	if err != nil {
		return trace.Wrap(err)
	}
	defer monitoringAgent.Close()

	if err = addCheckers(monitoringAgent, monitoringConfig); err != nil {
		return trace.Wrap(err)
	}
	if err = monitoringAgent.Start(); err != nil {
		return trace.Wrap(err)
	}

	signalc := make(chan os.Signal, 2)
	signal.Notify(signalc, os.Interrupt, syscall.SIGTERM)

	select {
	case <-signalc:
	}

	log.Infof("shutting down agent")
	return nil
}

repository: gravitational/satellite

repo_name: gravitational/satellite