text:
y1="5.08" x2="-2.54" y2="3.8862" width="0.1524" layer="94"/>
<wire x1="-2.54" y1="-3.9116" x2="-2.54" y2="-5.08" width="0.1524" layer="94"/>
<wire x1="5.08" y1="0" x2="-5.08" y2="5.08" width="0.4064" layer="94"/>
<wire x1="-5.08" y1="5.08" x2="-5.08" y2="-5.08" width="0.4064" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="5.08" y2="0" width="0.4064" layer="94"/>
<text x="2.54" y="-5.08" size="1.778" layer="95">>NAME</text>
<text x="2.54" y="-7.62" size="1.778" layer="96">>VALUE</text>
<text x="-1.27" y="5.08" size="1.016" layer="93" rot="R90">V+</text>
<text x="-1.27" y="-6.35" size="1.016" layer="93" rot="R90">V-</text>
<pin name="-IN" x="-10.16" y="-2.54" visible="pad" length="middle" direction="in"/>
<pin name="+IN" x="-10.16" y="2.54" visible="pad" length="middle" direction="in"/>
<pin name="OUT" x="10.16" y="0" visible="pad" length="middle" direction="out" rot="R180"/>
<pin name="V+" x="-2.54" y="7.62" visible="pad" length="short" direction="pwr" rot="R270"/>
<pin name="V-" x="-2.54" y="-7.62" visible="pad" length="short" direction="pwr" rot="R90"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="MAX98*" prefix="IC">
<description>Micropower, Low-Voltage Rail-to-Rail I/O Comparators

Source: http://pdfserv.maxim-ic.com/en/ds/MAX985-MAX994.pdf</description>
<gates>
<gate name="P" symbol="OPAMP+-" x="0" y="0"/>
</gates>
<devices>
<device name="EBT-T" package="UCSP6">
<connects>
<connect gate="P" pin="+IN" pad="B1"/>
<connect gate="P" pin="-IN" pad="B2"/>
<connect gate="P" pin="OUT" pad="A2"/>
<connect gate="P" pin="V+" pad="A3"/>
<connect gate="P" pin="V-" pad="A1"/>
</connects>
<technologies>
<technology name="6">
<attribute name="MF" value="" constant="no"/>
<attribute name="MPN" value="" constant="no"/>
<attribute name="OC_FARNELL" value="unknown" constant="no"/>
<attribute name="OC_NEWARK" value="unknown" constant="no"/>
</technology>
</technologies>
</device>
<device name="EXK-T" package="SC70-5L">
<connects>
<connect gate="P" pin="+IN" pad="3"/>
<connect gate="P" pin="-IN" pad="4"/>
<connect gate="P" pin="OUT" pad="1"/>
<connect gate="P" pin="V+" pad="2"/>
<connect gate="P" pin="V-" pad="5"/>
</connects>
<technologies>
<technology name="6">
<attribute name="MF" value="" constant="no"/>
<attribute name="MPN" value="MAX986EXK+T" constant="no"/>
<attribute name="OC_FARNELL" value="unknown" constant="no"/>
<attribute name="OC_NEWARK" value="67K7108" constant="no"/>
</technology>
</technologies>
</device>
<device name="EUK-T" package="SOT23-5L">
<connects>
<connect gate="P" pin="+IN" pad="3"/>
<connect gate="P" pin="-IN" pad="4"/>
<connect gate="P" pin="OUT" pad="1"/>
<connect gate="P" pin="V+" pad="2"/>
<connect gate="P" pin="V-" pad="5"/>
</connects>
<technologies>
<technology name="5">
<attribute name="MF" value="MAXIM" constant="no"/>
<attribute name="MPN" value="MAX985EUK-T" constant="no"/>
<attribute name="OC_FARNELL" value="unknown" constant="no"/>
<attribute name="OC_NEWARK" value="79C3408" constant="no"/>
</technology>
</technologies>
</device>
<device name="ESA" package="SO08">
<connects>
<connect gate="P" pin="+IN" pad="3"/>
<connect gate="P" pin="-IN" pad="2"/>
<connect gate="P" pin="OUT" pad="6"/>
<connect gate="P" pin="V+" pad="7"/>
<connect gate="P" pin="V-" pad="4"/>
</connects>
<technologies>
<technology name="5">
<attribute name="MF" value="" constant="no"/>
<attribute name="MPN" value="MAX985ESA+" constant="no"/>
<attribute name="OC_FARNELL" value="1550491" constant="no"/>
<attribute name="OC_NEWARK" value="67K7102" constant="no"/>
</technology>
<technology name="6">
<attribute name="MF" value="" constant="no"/>
<attribute name="MPN" value="MAX986ESA+" constant="no"/>
<attribute name="OC_FARNELL" value="unknown" constant="no"/>
<attribute name="OC_NEWARK" value="67K7105" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
<class number="1" name="vcc" width="0" drill="0">
</class>
<class number="2" name="GND" width="0.4064" drill="0">
</class>
</classes>
<modules>
<module name="M1" prefix="" dx="15.24" dy="10.16">
<ports>
</ports>
<variantdefs>
</variantdefs>
<parts>
</parts>
<sheets>
<sheet>
<plain>
</plain>
<instances>
</instances>
<busses>
</busses>
<nets>
</nets>
</sheet>
</sheets>
</module>
</modules>
<parts>
<part name="GND1" library="Albert" deviceset="GND" device=""/>
<part name="V2" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="GND15" library="Albert" deviceset="GND" device=""/>
<part name="GND11" library="Albert" deviceset="GND" device=""/>
<part name="C9" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="1u 6.3V"/>
<part name="GND18" library="Albert" deviceset="GND" device=""/>
<part name="C7" library="Albert" deviceset="SMD-C" device="-0805" value="1u 50V X7R"/>
<part name="V7" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="U2" library="Albert" deviceset="REG-SOT23-5" device="-OUT5" value="AP7383-33W5-7"/>
<part name="U1" library="Albert-Arduino" deviceset="ATTINY3217" device="-" value="ATtiny3217"/>
<part name="R3" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="100k!!"/>
<part name="V3" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="V4" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="J1" library="Albert" deviceset="FTDI" device=""/>
<part name="GND4" library="Albert" deviceset="GND" device=""/>
<part name="C3" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="10n!!"/>
<part name="D2" library="diode" deviceset="ZENER-DIODE" device="SOD80C" value="22V SOD80"/>
<part name="R5" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="2k"/>
<part name="D1" library="Albert" deviceset="LED" device="" value="green"/>
<part name="GND7" library="Albert" deviceset="GND" device=""/>
<part name="R2" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="10k"/>
<part name="GND2" library="Albert" deviceset="GND" device=""/>
<part name="C2" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="100n"/>
<part name="GND3" library="Albert" deviceset="GND" device=""/>
<part name="R14" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="82k"/>
<part name="GND25" library="Albert" deviceset="GND" device=""/>
<part name="V1" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="V5" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="R12" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="1k"/>
<part name="C15" library="Albert" deviceset="SMD-C" device="1210" value="4.7u 100V"/>
<part name="C1" library="Albert" deviceset="SMD-C" device="-0805" value="100n"/>
<part name="L1" library="Albert" deviceset="INDUCTOR-SMD" device="10X10" value="SRU1048-330Y"/>
<part name="D3" library="Albert" deviceset="SCHOTTKY-SMD" device="-SMA" value="STPS2H100A"/>
<part name="GND24" library="Albert" deviceset="GND" device=""/>
<part name="GND19" library="Albert" deviceset="GND" device=""/>
<part name="GND17" library="Albert" deviceset="GND" device=""/>
<part name="GND16" library="Albert" deviceset="GND" device=""/>
<part name="C8" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="100n"/>
<part name="GND14" library="Albert" deviceset="GND" device=""/>
<part name="R11" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="200k"/>
<part name="GND13" library="Albert" deviceset="GND" device=""/>
<part name="R8" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="10k 1%"/>
<part name="R7" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="240k 1%"/>
<part name="GND9" library="Albert" deviceset="GND" device=""/>
<part name="C12" library="Albert" deviceset="SMD-C" device="1210" value="4.7u 100V"/>
<part name="GND21" library="Albert" deviceset="GND" device=""/>
<part name="GND20" library="Albert" deviceset="GND" device=""/>
<part name="U3" library="Albert" deviceset="TPS92513" device="" value="TPS92513HV"/>
<part name="C6" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="100n"/>
<part name="V6" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="D4" library="Albert" deviceset="SCHOTTKY-SMD" device="SOD-123" value="nc MBR0580-TP"/>
<part name="GND22" library="Albert" deviceset="GND" device=""/>
<part name="C14" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="10n 100V"/>
<part name="GND23" library="Albert" deviceset="GND" device=""/>
<part name="SW1" library="Albert" deviceset="TACTILE" device=""/>
<part name="GND5" library="Albert" deviceset="GND" device=""/>
<part name="D5" library="Albert" deviceset="SCHOTTKY-SMD" device="SOD-123" value="NRVTS260"/>
<part name="JP1" library="Albert" deviceset="JUMPER_SJ_NO" device="NO" value="nc"/>
<part name="J3" library="Albert" deviceset="PIN" device="1.2MM" value="TP"/>
<part name="GND8" library="Albert" deviceset="GND" device=""/>
<part name="C11" library="Albert" deviceset="SMD-C" device="1210" value="4.7u 100V"/>
<part name="C13" library="Albert" deviceset="SMD-C" device="1210" value="4.7u 100V"/>
<part name="GND10" library="Albert" deviceset="GND" device=""/>
<part name="R16" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="nc"/>
<part name="C4" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="10n"/>
<part name="R4" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="10k"/>
<part name="GND12" library="Albert" deviceset="GND2" device=""/>
<part name="R1" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="10k"/>
<part name="C5" library="Albert" deviceset="SMD-C" device="-0603-SMALL" value="100n"/>
<part name="R6" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="100k?"/>
<part name="R15" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="?"/>
<part name="R17" library="Albert" deviceset="SMD-R" device="-0603-SMALL" value="10k?"/>
<part name="GND6" library="Albert" deviceset="GND" device=""/>
<part name="GND26" library="Albert" deviceset="GND" device=""/>
<part name="V8" library="Albert" deviceset="ARROW" device="" value="x"/>
<part name="R13" library="Albert" deviceset="SMD-R" device="2010" value="0.15 2010"/>
<part name="IC2" library="maxim" deviceset="MAX98*" device="EUK-T" technology="5" value="MIC7221YM5-TR"/>
<part name="J4" library="Albert" deviceset="CON-4P" device="HEADER"/>
<part name="GND27" library="Albert" deviceset="GND" device=""/>
<part name="V9" library="Albert" deviceset="ARROW" device="" value="x"/>
</parts>
<sheets>
<sheet>
<plain>
<text x="182.88" y="119.38" size="1.778" layer="91"></text>
<text x="261.62" y="81.28" size="2.54" layer="91">A. van Dalen
www.avdweb.nl
1-8-2020</text>
<text x="251.46" y="96.52" size="4.318" layer="91">Flashing-light v5</text>
<text x="183.896" y="79.502" size="1.778" layer="91">UPDI program</text>
<text x="279.654" y="7.874" size="1.778" layer="91" rot="R180">ZMM5251B</text>
<text x="403.86" y="62.484" size="1.778" layer="91">LED-</text>
<text x="403.86" y="67.564" size="1.778" layer="91">LED+</text>
<text x="403.86" y="77.724" size="1.778" layer="91">36V</text>
<text x="403.86" y="72.644" size="1.778" layer="91">GND</text>
<text x="336.804" y="41.656" size="1.778" layer="91">SMA</text>
<text x="370.332" y="61.214" size="1.778" layer="91">Protection clamp
optional</text>
<text x="280.924" y="47.498" size="1.778" layer="91" rot="R180">setting Vbat
minimal 30V</text>
<text x="374.65" y="38.1" size="1.778" layer="91">2A pulse</text>
<text x="309.88" y="45.72" size="1.778" layer="91">600kHz</text>
<text x="167.132" y="9.144" size="1.778" layer="91">Vbat ADC</text>
<text x="253.492" y="67.564" size="1.778" layer="91">dim 10-100%
0.18 - 1.8V</text>
<text x="288.29" y="64.516" size="1.778" layer="91"><100uA</text>
<text x="330.2" y="10.16" size="1.778" layer="91">hardware
overload
protection</text>
<text x="154.686" y="31.75" size="1.778" layer="91">2mA @ 5MHz</text>
<text x="226.06" y="-2.54" size="1.778" layer="91">software
overload
protection</text>
</plain>
<instances>
<instance part="GND1" gate="1" x="167.64" y="40.64" smashed="yes" rot="MR90">
<attribute name="VALUE" x="165.1" y="38.1" size="1.778" layer="96" rot="MR90" display="off"/>
</instance>
<instance part="V2" gate="G$1" x="167.64" y="35.56" smashed="yes" rot="R90"/>
<instance part="GND15" gate="1" x="289.56" y="-7.62" smashed="yes" rot="MR0">
<attribute name="VALUE" x="292.1" y="-10.16" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="GND11" gate="1" x="281.94" y="-7.62" smashed="yes" rot="MR0">
<attribute name="VALUE" x="284.48" y="-10.16" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C9" gate="C" x="312.42" y="0" smashed="yes" rot="R270">
<attribute name="NAME" x="314.706" y="1.27" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="313.182" y="-2.54" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="GND18" gate="1" x="312.42" y="-7.62" smashed="yes" rot="MR0">
<attribute name="VALUE" x="314.96" y="-10.16" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C7" gate="C" x="281.94" y="0" smashed="yes" rot="MR270">
<attribute name="NAME" x="279.146" y="0.254" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="280.924" y="-2.54" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="V7" gate="G$1" x="317.5" y="5.08" smashed="yes" rot="R270"/>
<instance part="U2" gate="G$1" x="297.18" y="2.54" smashed="yes">
<attribute name="NAME" x="296.926" y="8.128" size="1.778" layer="95"/>
<attribute name="VALUE" x="290.83" y="-5.842" size="1.778" layer="96"/>
</instance>
<instance part="U1" gate="G$1" x="213.36" y="35.56" smashed="yes">
<attribute name="NAME" x="203.2" y="41.402" size="1.778" layer="95"/>
<attribute name="VALUE" x="203.2" y="38.1" size="1.778" layer="96"/>
</instance>
<instance part="R3" gate="R" x="203.2" y="93.98" smashed="yes" rot="R90">
<attribute name="NAME" x="204.724" y="95.25" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="204.724" y="92.71" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="V3" gate="G$1" x="177.8" y="81.28" smashed="yes" rot="R270"/>
<instance part="V4" gate="G$1" x="203.2" y="101.6" smashed="yes"/>
<instance part="J1" gate="G$1" x="170.18" y="76.2" smashed="yes" rot="MR0">
<attribute name="NAME" x="171.704" y="92.329" size="1.778" layer="95" rot="MR0"/>
<attribute name="VALUE" x="172.974" y="70.612" size="1.778" layer="96" rot="MR0"/>
</instance>
<instance part="GND4" gate="1" x="177.8" y="76.2" smashed="yes" rot="MR270">
<attribute name="VALUE" x="180.34" y="78.74" size="1.778" layer="96" rot="MR270" display="off"/>
</instance>
<instance part="C3" gate="C" x="187.96" y="88.9" smashed="yes">
<attribute name="NAME" x="189.23" y="92.456" size="1.778" layer="95" align="center-right"/>
<attribute name="VALUE" x="189.738" y="90.424" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="D2" gate="G$1" x="281.94" y="10.16" smashed="yes" rot="MR90">
<attribute name="NAME" x="279.654" y="12.065" size="1.778" layer="95" rot="MR0"/>
<attribute name="VALUE" x="279.654" y="9.525" size="1.778" layer="96" rot="MR0"/>
</instance>
<instance part="R5" gate="R" x="213.36" y="0" smashed="yes" rot="R90">
<attribute name="NAME" x="217.678" y="1.524" size="1.778" layer="95" align="center-right"/>
<attribute name="VALUE" x="217.424" y="-1.016" size="1.778" layer="96" align="center-right"/>
</instance>
<instance part="D1" gate="G$1" x="213.36" y="-7.62" smashed="yes">
<attribute name="NAME" x="213.868" y="-6.858" size="1.778" layer="95"/>
</instance>
<instance part="GND7" gate="1" x="213.36" y="-15.24" smashed="yes" rot="MR0">
<attribute name="VALUE" x="215.9" y="-17.78" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="R2" gate="R" x="170.18" y="20.32" smashed="yes" rot="MR90">
<attribute name="NAME" x="168.656" y="20.574" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="168.656" y="18.288" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="GND2" gate="1" x="170.18" y="12.7" smashed="yes">
<attribute name="VALUE" x="167.64" y="10.16" size="1.778" layer="96" display="off"/>
</instance>
<instance part="C2" gate="C" x="175.26" y="20.32" smashed="yes" rot="R270">
<attribute name="NAME" x="177.8" y="20.828" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="176.276" y="17.78" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="GND3" gate="1" x="175.26" y="12.7" smashed="yes">
<attribute name="VALUE" x="172.72" y="10.16" size="1.778" layer="96" display="off"/>
</instance>
<instance part="R14" gate="R" x="165.1" y="25.4" smashed="yes" rot="MR0">
<attribute name="NAME" x="165.1" y="26.924" size="1.778" layer="95" rot="MR0" align="bottom-center"/>
<attribute name="VALUE" x="165.1" y="23.876" size="1.778" layer="96" rot="MR0" align="top-center"/>
</instance>
<instance part="GND25" gate="1" x="391.16" y="73.66" smashed="yes" rot="R270">
<attribute name="VALUE" x="388.62" y="76.2" size="1.778" layer="96" rot="R270" display="off"/>
</instance>
<instance part="V1" gate="G$1" x="157.48" y="25.4" smashed="yes" rot="R90"/>
<instance part="V5" gate="G$1" x="281.94" y="15.24" smashed="yes"/>
<instance part="R12" gate="R" x="350.52" y="40.64" smashed="yes">
<attribute name="NAME" x="350.52" y="42.164" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="350.52" y="39.116" size="1.778" layer="96" align="top-center"/>
</instance>
<instance part="C15" gate="C" x="368.3" y="45.72" smashed="yes" rot="R270">
<attribute name="NAME" x="370.586" y="46.99" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="370.586" y="44.45" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="C1" gate="C" x="330.2" y="63.5" smashed="yes">
<attribute name="NAME" x="330.2" y="65.786" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="330.454" y="59.182" size="1.778" layer="96" rot="R180" align="top-center"/>
</instance>
<instance part="L1" gate="G$1" x="350.52" y="53.34" smashed="yes">
<attribute name="VALUE" x="342.138" y="49.276" size="1.778" layer="96"/>
<attribute name="NAME" x="349.758" y="55.372" size="1.778" layer="95"/>
</instance>
<instance part="D3" gate="G$1" x="335.28" y="45.72" smashed="yes" rot="R90">
<attribute name="NAME" x="330.454" y="44.6786" size="1.778" layer="95"/>
<attribute name="VALUE" x="338.074" y="45.1866" size="1.778" layer="96"/>
</instance>
<instance part="GND24" gate="1" x="368.3" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="370.84" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="GND19" gate="1" x="335.28" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="337.82" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="GND17" gate="1" x="314.96" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="317.5" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="GND16" gate="1" x="309.88" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="312.42" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C8" gate="C" x="294.64" y="30.48" smashed="yes" rot="R270">
<attribute name="NAME" x="297.18" y="30.988" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="297.18" y="28.448" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="GND14" gate="1" x="294.64" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="297.18" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="R11" gate="R" x="289.56" y="33.02" smashed="yes" rot="MR90">
<attribute name="NAME" x="288.29" y="34.036" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="288.29" y="31.496" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="GND13" gate="1" x="289.56" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="292.1" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="R8" gate="R" x="281.94" y="33.02" smashed="yes" rot="MR90">
<attribute name="NAME" x="280.416" y="34.29" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="280.416" y="31.75" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="R7" gate="R" x="281.94" y="71.12" smashed="yes" rot="MR90">
<attribute name="NAME" x="280.416" y="72.39" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="280.416" y="69.85" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="GND9" gate="1" x="281.94" y="25.4" smashed="yes" rot="MR0">
<attribute name="VALUE" x="284.48" y="22.86" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C12" gate="C" x="345.44" y="73.66" smashed="yes" rot="MR270">
<attribute name="NAME" x="345.186" y="76.2" size="1.778" layer="95" rot="MR180" align="center-right"/>
</instance>
<instance part="GND21" gate="1" x="345.44" y="68.58" smashed="yes" rot="MR0">
<attribute name="VALUE" x="347.98" y="66.04" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="GND20" gate="1" x="340.36" y="68.58" smashed="yes" rot="MR0">
<attribute name="VALUE" x="342.9" y="66.04" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="U3" gate="G$1" x="312.42" y="50.8" smashed="yes">
<attribute name="VALUE" x="305.816" y="55.118" size="1.778" layer="96" ratio="15"/>
<attribute name="NAME" x="311.404" y="58.166" size="1.778" layer="96" ratio="15"/>
</instance>
<instance part="C6" gate="C" x="175.26" y="38.1" smashed="yes" rot="MR270">
<attribute name="NAME" x="172.466" y="38.354" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="177.038" y="33.528" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="V6" gate="G$1" x="322.58" y="83.82" smashed="yes"/>
<instance part="D4" gate="G$1" x="368.3" y="63.5" smashed="yes" rot="R90">
<attribute name="NAME" x="365.76" y="65.3034" size="1.778" layer="95" rot="R180"/>
<attribute name="VALUE" x="366.014" y="62.7634" size="1.778" layer="96" rot="R180"/>
</instance>
<instance part="GND22" gate="1" x="350.52" y="68.58" smashed="yes" rot="MR0">
<attribute name="VALUE" x="353.06" y="66.04" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C14" gate="C" x="355.6" y="73.66" smashed="yes" rot="R270">
<attribute name="NAME" x="356.362" y="76.2" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="356.362" y="71.12" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="GND23" gate="1" x="355.6" y="68.58" smashed="yes" rot="MR0">
<attribute name="VALUE" x="358.14" y="66.04" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="SW1" gate="G$1" x="203.2" y="-5.08" smashed="yes" rot="R90">
<attribute name="NAME" x="204.724" y="-5.588" size="1.778" layer="95"/>
</instance>
<instance part="GND5" gate="1" x="203.2" y="-15.24" smashed="yes">
<attribute name="VALUE" x="200.66" y="-17.78" size="1.778" layer="96" display="off"/>
</instance>
<instance part="D5" gate="G$1" x="378.46" y="78.74" smashed="yes" rot="MR0">
<attribute name="NAME" x="379.73" y="83.5406" size="1.778" layer="95" rot="MR0"/>
<attribute name="VALUE" x="383.54" y="81.0006" size="1.778" layer="96" rot="MR0"/>
</instance>
<instance part="JP1" gate="1" x="381" y="71.12" smashed="yes"/>
<instance part="J3" gate="G$1" x="388.62" y="30.48" smashed="yes" rot="R90"/>
<instance part="GND8" gate="1" x="388.62" y="27.94" smashed="yes" rot="MR0">
<attribute name="VALUE" x="391.16" y="25.4" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="C11" gate="C" x="340.36" y="73.66" smashed="yes" rot="MR270">
<attribute name="NAME" x="340.106" y="76.2" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="351.028" y="66.294" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="C13" gate="C" x="350.52" y="73.66" smashed="yes" rot="MR270">
<attribute name="NAME" x="350.266" y="76.2" size="1.778" layer="95" rot="MR180" align="center-right"/>
</instance>
<instance part="GND10" gate="1" x="294.64" y="53.34" smashed="yes" rot="MR0">
<attribute name="VALUE" x="297.18" y="50.8" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="R16" gate="R" x="269.24" y="58.42" smashed="yes" rot="MR90">
<attribute name="NAME" x="267.716" y="59.69" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="267.716" y="57.15" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="C4" gate="C" x="294.64" y="58.42" smashed="yes" rot="MR270">
<attribute name="NAME" x="292.1" y="58.928" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="293.116" y="56.134" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="R4" gate="R" x="259.08" y="63.5" smashed="yes">
<attribute name="NAME" x="259.08" y="65.024" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="259.08" y="61.976" size="1.778" layer="96" align="top-center"/>
</instance>
<instance part="GND12" gate="G$1" x="269.24" y="53.34" smashed="yes"/>
<instance part="R1" gate="R" x="259.08" y="50.8" smashed="yes">
<attribute name="NAME" x="259.08" y="52.324" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="259.08" y="49.276" size="1.778" layer="96" align="top-center"/>
</instance>
<instance part="C5" gate="C" x="355.6" y="17.78" smashed="yes" rot="R270">
<attribute name="NAME" x="358.14" y="18.288" size="1.778" layer="95" rot="R180" align="center-right"/>
<attribute name="VALUE" x="358.14" y="15.748" size="1.778" layer="96" rot="R180" align="center-right"/>
</instance>
<instance part="R6" gate="R" x="347.98" y="15.24" smashed="yes">
<attribute name="NAME" x="347.98" y="16.764" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="347.98" y="13.716" size="1.778" layer="96" align="top-center"/>
</instance>
<instance part="R15" gate="R" x="355.6" y="0" smashed="yes" rot="MR90">
<attribute name="NAME" x="354.076" y="1.27" size="1.778" layer="95" rot="MR180" align="center-right"/>
<attribute name="VALUE" x="354.076" y="-1.27" size="1.778" layer="96" rot="MR180" align="center-right"/>
</instance>
<instance part="R17" gate="R" x="347.98" y="5.08" smashed="yes">
<attribute name="NAME" x="347.98" y="6.604" size="1.778" layer="95" align="bottom-center"/>
<attribute name="VALUE" x="347.98" y="3.556" size="1.778" layer="96" align="top-center"/>
</instance>
<instance part="GND6" gate="1" x="355.6" y="22.86" smashed="yes" rot="MR180">
<attribute name="VALUE" x="353.06" y="25.4" size="1.778" layer="96" rot="MR180" display="off"/>
</instance>
<instance part="GND26" gate="1" x="355.6" y="-7.62" smashed="yes" rot="MR0">
<attribute name="VALUE" x="358.14" y="-10.16" size="1.778" layer="96" rot="MR0" display="off"/>
</instance>
<instance part="V8" gate="G$1" x="340.36" y="5.08" smashed="yes" rot="R90"/>
<instance part="R13" gate="R" x="368.3" y="33.02" smashed="yes" rot="MR90">
<attribute name="NAME" x="366.268" y="33.7566" size="1.778" layer="95" rot="MR0"/>
<attribute name="VALUE" x="366.268" y="30.988" size="1.778" layer="96" rot="MR0"/>
</instance>
<instance part="IC2" gate="P" x="370.84" y="10.16" smashed="yes" rot="MR180">
<attribute name="NAME" x="370.84" y="18.796" size="1.778" layer="95" rot="MR180"/>
<attribute name="VALUE" x="370.84" y="16.002" size="1.778" layer="96" rot="MR180"/>
</instance>
<instance part="J4" gate="G$1" x="398.78" y="78.74" smashed="yes">
<attribute name="NAME" x="397.51" y="81.915" size="1.778" layer="95"/>
</instance>
<instance part="GND27" gate="1" x="368.3" y="20.32" smashed="yes" rot="MR180">
<attribute name="VALUE" x="365.76" y="22.86" size="1.778" layer="96" rot="MR180" display="off"/>
</instance>
<instance part="V9" gate="G$1" x="368.3" y="0" smashed="yes" rot="R180"/>
</instances>
<busses>
</busses>
<nets>
<net name="GND" class="0">
<segment>
<pinref part="GND15" gate="1" pin="GND"/>
<wire x1="289.56" y1="0" x2="289.56" y2="-5.08" width="0.1524" layer="91"/>
<pinref part="U2" gate="G$1" pin="GND"/>
</segment>
<segment>
<pinref part="C9" gate="C" pin="2"/>
<pinref part="GND18" gate="1" pin="GND"/>
<wire x1="312.42" y1="-5.08" x2="312.42" y2="-2.54" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="GND11" gate="1" pin="GND"/>
<pinref part="C7" gate="C" pin="2"/>
<wire x1="281.94" y1="-2.54" x2="281.94" y2="-5.08" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="GND"/>
<pinref part="GND1" gate="1" pin="GND"/>
<wire x1="170.18" y1="40.64" x2="175.26" y2="40.64" width="0.1524" layer="91"/>
<wire x1="175.26" y1="40.64" x2="177.8" y2="40.64" width="0.1524" layer="91"/>
<pinref part="C6" gate="C" pin="1"/>
<junction x="175.26" y="40.64"/>
</segment>
<segment>
<pinref part="GND4" gate="1" pin="GND"/>
<pinref part="J1" gate="G$1" pin="GND"/>
<wire x1="175.26" y1="76.2" x2="170.18" y2="76.2" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="D1" gate="G$1" pin="C"/>
<pinref part="GND7" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="R2" gate="R" pin="1"/>
<pinref part="GND2" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="C2" gate="C" pin="2"/>
<pinref part="GND3" gate="1" pin="GND"/>
<wire x1="175.26" y1="17.78" x2="175.26" y2="15.24" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="GND16" gate="1" pin="GND"/>
<wire x1="309.88" y1="27.94" x2="309.88" y2="30.48" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="GND"/>
</segment>
<segment>
<pinref part="GND17" gate="1" pin="GND"/>
<wire x1="314.96" y1="27.94" x2="314.96" y2="30.48" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="PAD"/>
</segment>
<segment>
<pinref part="GND19" gate="1" pin="GND"/>
<pinref part="D3" gate="G$1" pin="A"/>
<wire x1="335.28" y1="27.94" x2="335.28" y2="43.18" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="C8" gate="C" pin="2"/>
<pinref part="GND14" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="R11" gate="R" pin="1"/>
<pinref part="GND13" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="R8" gate="R" pin="1"/>
<pinref part="GND9" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="C12" gate="C" pin="2"/>
<pinref part="GND21" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="C14" gate="C" pin="2"/>
<pinref part="GND23" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="SW1" gate="G$1" pin="P"/>
<pinref part="GND5" gate="1" pin="GND"/>
<wire x1="203.2" y1="-12.7" x2="203.2" y2="-10.16" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="J3" gate="G$1" pin="1"/>
<pinref part="GND8" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="GND20" gate="1" pin="GND"/>
<pinref part="C11" gate="C" pin="2"/>
</segment>
<segment>
<pinref part="GND22" gate="1" pin="GND"/>
<pinref part="C13" gate="C" pin="2"/>
</segment>
<segment>
<wire x1="398.78" y1="73.66" x2="393.7" y2="73.66" width="0.1524" layer="91"/>
<pinref part="GND25" gate="1" pin="GND"/>
<pinref part="J4" gate="G$1" pin="2"/>
</segment>
<segment>
<pinref part="GND10" gate="1" pin="GND"/>
<pinref part="C4" gate="C" pin="2"/>
</segment>
<segment>
<pinref part="R16" gate="R" pin="1"/>
<pinref part="GND12" gate="G$1" pin="GND"/>
</segment>
<segment>
<pinref part="C5" gate="C" pin="1"/>
<pinref part="GND6" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="R15" gate="R" pin="1"/>
<pinref part="GND26" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="GND24" gate="1" pin="GND"/>
<pinref part="R13" gate="R" pin="1"/>
</segment>
<segment>
<pinref part="IC2" gate="P" pin="V-"/>
<pinref part="GND27" gate="1" pin="GND"/>
</segment>
</net>
<net name="TX" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="TXD-DIP.9"/>
<wire x1="243.84" y1="30.48" x2="246.38" y2="30.48" width="0.1524" layer="91"/>
<wire x1="246.38" y1="30.48" x2="246.38" y2="83.82" width="0.1524" layer="91"/>

<wire x1="170.18" y1="86.36" x2="213.36" y2="86.36" width="0.1524" layer="91"/>
<wire x1="213.36" y1="86.36" x2="215.9" y2="83.82" width="0.1524" layer="91"/>
<wire x1="215.9" y1="83.82" x2="246.38" y2="83.82" width="0.1524" layer="91"/>
<pinref part="J1" gate="G$1" pin="RX"/>
</segment>
</net>
<net name="RX" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="RXD-D.8"/>
<wire x1="248.92" y1="86.36" x2="248.92" y2="25.4" width="0.1524" layer="91"/>
<wire x1="248.92" y1="25.4" x2="243.84" y2="25.4" width="0.1524" layer="91"/>

<wire x1="248.92" y1="86.36" x2="215.9" y2="86.36" width="0.1524" layer="91"/>
<wire x1="215.9" y1="86.36" x2="213.36" y2="83.82" width="0.1524" layer="91"/>
<wire x1="213.36" y1="83.82" x2="170.18" y2="83.82" width="0.1524" layer="91"/>
<pinref part="J1" gate="G$1" pin="TX"/>
</segment>
</net>
<net name="RESET" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="UPDI-RESET"/>
<wire x1="203.2" y1="78.74" x2="203.2" y2="71.12" width="0.1524" layer="91"/>
<wire x1="203.2" y1="78.74" x2="203.2" y2="88.9" width="0.1524" layer="91"/>
<pinref part="R3" gate="R" pin="1"/>
<pinref part="C3" gate="C" pin="2"/>
<wire x1="190.5" y1="88.9" x2="203.2" y2="88.9" width="0.1524" layer="91"/>
<junction x="203.2" y="88.9"/>
<pinref part="J1" gate="G$1" pin="CTS"/>
<wire x1="170.18" y1="78.74" x2="203.2" y2="78.74" width="0.1524" layer="91"/>
<junction x="203.2" y="78.74"/>
</segment>
</net>
<net name="N$32" class="0">
<segment>
<pinref part="C3" gate="C" pin="1"/>
<pinref part="J1" gate="G$1" pin="DTR"/>
<wire x1="185.42" y1="88.9" x2="170.18" y2="88.9" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$8" class="0">
<segment>
<pinref part="D2" gate="G$1" pin="A"/>
<pinref part="U2" gate="G$1" pin="IN"/>
<pinref part="C7" gate="C" pin="1"/>
<wire x1="289.56" y1="5.08" x2="281.94" y2="5.08" width="0.1524" layer="91"/>
<wire x1="281.94" y1="2.54" x2="281.94" y2="5.08" width="0.1524" layer="91"/>
<pinref part="U2" gate="G$1" pin="EN"/>
<wire x1="289.56" y1="2.54" x2="289.56" y2="5.08" width="0.1524" layer="91"/>
<junction x="289.56" y="5.08"/>
<junction x="281.94" y="5.08"/>
<wire x1="281.94" y1="7.62" x2="281.94" y2="5.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$12" class="0">
<segment>
<pinref part="R5" gate="R" pin="1"/>
<pinref part="D1" gate="G$1" pin="A"/>
</segment>
</net>
<net name="ADC" class="0">
<segment>
<pinref part="R2" gate="R" pin="2"/>
<pinref part="C2" gate="C" pin="1"/>
<wire x1="170.18" y1="25.4" x2="175.26" y2="25.4" width="0.1524" layer="91"/>
<wire x1="175.26" y1="25.4" x2="175.26" y2="22.86" width="0.1524" layer="91"/>
<pinref part="R14" gate="R" pin="1"/>
<junction x="170.18" y="25.4"/>
<pinref part="U1" gate="G$1" pin="1.DAP-VREF"/>
<wire x1="177.8" y1="25.4" x2="175.26" y2="25.4" width="0.1524" layer="91"/>
<junction x="175.26" y="25.4"/>
</segment>
</net>
<net name="VBAT" class="0">
<segment>
<pinref part="D2" gate="G$1" pin="C"/>
<wire x1="281.94" y1="12.7" x2="281.94" y2="15.24" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="R14" gate="R" pin="2"/>
<wire x1="160.02" y1="25.4" x2="157.48" y2="25.4" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="C12" gate="C" pin="1"/>
<wire x1="345.44" y1="76.2" x2="345.44" y2="78.74" width="0.1524" layer="91"/>
<wire x1="345.44" y1="78.74" x2="340.36" y2="78.74" width="0.1524" layer="91"/>
<wire x1="340.36" y1="76.2" x2="340.36" y2="78.74" width="0.1524" layer="91"/>
<wire x1="312.42" y1="71.12" x2="312.42" y2="78.74" width="0.1524" layer="91"/>
<wire x1="312.42" y1="78.74" x2="281.94" y2="78.74" width="0.1524" layer="91"/>
<pinref part="R7" gate="R" pin="2"/>
<wire x1="281.94" y1="76.2" x2="281.94" y2="78.74" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="VIN"/>
<wire x1="340.36" y1="78.74" x2="322.58" y2="78.74" width="0.1524" layer="91"/>
<junction x="340.36" y="78.74"/>
<junction x="312.42" y="78.74"/>
<wire x1="322.58" y1="78.74" x2="312.42" y2="78.74" width="0.1524" layer="91"/>
<junction x="345.44" y="78.74"/>

<wire x1="368.3" y1="78.74" x2="355.6" y2="78.74" width="0.1524" layer="91"/>
<wire x1="355.6" y1="78.74" x2="350.52" y2="78.74" width="0.1524" layer="91"/>
<wire x1="350.52" y1="78.74" x2="345.44" y2="78.74" width="0.1524" layer="91"/>
<wire x1="322.58" y1="78.74" x2="322.58" y2="83.82" width="0.1524" layer="91"/>
<junction x="322.58" y="78.74"/>
<pinref part="D4" gate="G$1" pin="C"/>
<wire x1="368.3" y1="66.04" x2="368.3" y2="78.74" width="0.1524" layer="91"/>
<pinref part="C14" gate="C" pin="1"/>
<wire x1="355.6" y1="76.2" x2="355.6" y2="78.74" width="0.1524" layer="91"/>
<junction x="355.6" y="78.74"/>
<wire x1="350.52" y1="76.2" x2="350.52" y2="78.74" width="0.1524" layer="91"/>
<junction x="350.52" y="78.74"/>
<pinref part="D5" gate="G$1" pin="C"/>
<wire x1="375.92" y1="78.74" x2="373.38" y2="78.74" width="0.1524" layer="91"/>
<junction x="368.3" y="78.74"/>
<pinref part="JP1" gate="1" pin="1"/>
<wire x1="373.38" y1="78.74" x2="368.3" y2="78.74" width="0.1524" layer="91"/>
<wire x1="378.46" y1="71.12" x2="373.38" y2="71.12" width="0.1524" layer="91"/>
<wire x1="373.38" y1="71.12" x2="373.38" y2="78.74" width="0.1524" layer="91"/>
<junction x="373.38" y="78.74"/>
<pinref part="C11" gate="C" pin="1"/>
<pinref part="C13" gate="C" pin="1"/>
</segment>
</net>
<net name="N$1" class="0">
<segment>
<pinref part="R12" gate="R" pin="1"/>
<wire x1="345.44" y1="40.64" x2="342.9" y2="40.64" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="ISENSE"/>
<pinref part="R6" gate="R" pin="1"/>
<wire x1="342.9" y1="40.64" x2="327.66" y2="40.64" width="0.1524" layer="91"/>
<wire x1="342.9" y1="15.24" x2="342.9" y2="40.64" width="0.1524" layer="91"/>
<junction x="342.9" y="40.64"/>
</segment>
</net>
<net name="N$2" class="0">
<segment>
<pinref part="R12" gate="R" pin="2"/>
<pinref part="C15" gate="C" pin="2"/>
<wire x1="368.3" y1="38.1" x2="368.3" y2="40.64" width="0.1524" layer="91"/>
<wire x1="368.3" y1="40.64" x2="368.3" y2="43.18" width="0.1524" layer="91"/>
<wire x1="368.3" y1="40.64" x2="355.6" y2="40.64" width="0.1524" layer="91"/>
<junction x="368.3" y="40.64"/>
<wire x1="393.7" y1="40.64" x2="368.3" y2="40.64" width="0.1524" layer="91"/>
<pinref part="R13" gate="R" pin="2"/>
<pinref part="J4" gate="G$1" pin="4"/>
<wire x1="398.78" y1="63.5" x2="393.7" y2="63.5" width="0.1524" layer="91"/>
<wire x1="393.7" y1="63.5" x2="393.7" y2="40.64" width="0.1524" layer="91"/>
</segment>
</net>
<net name="PH" class="0">
<segment>
<wire x1="335.28" y1="53.34" x2="327.66" y2="53.34" width="0.1524" layer="91"/>
<pinref part="D3" gate="G$1" pin="C"/>
<wire x1="335.28" y1="48.26" x2="335.28" y2="53.34" width="0.1524" layer="91"/>
<wire x1="335.28" y1="53.34" x2="335.28" y2="63.5" width="0.1524" layer="91"/>
<junction x="335.28" y="53.34"/>
<pinref part="C1" gate="C" pin="2"/>
<wire x1="335.28" y1="63.5" x2="332.74" y2="63.5" width="0.1524" layer="91"/>
<pinref part="L1" gate="G$1" pin="1"/>
<wire x1="345.44" y1="53.34" x2="335.28" y2="53.34" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="PH"/>
</segment>
</net>
<net name="N$6" class="0">
<segment>
<pinref part="C15" gate="C" pin="1"/>
<wire x1="368.3" y1="48.26" x2="368.3" y2="53.34" width="0.1524" layer="91"/>
<pinref part="L1" gate="G$1" pin="2"/>
<wire x1="355.6" y1="53.34" x2="368.3" y2="53.34" width="0.1524" layer="91"/>
<wire x1="368.3" y1="53.34" x2="391.16" y2="53.34" width="0.1524" layer="91"/>
<junction x="368.3" y="53.34"/>
<pinref part="D4" gate="G$1" pin="A"/>
<wire x1="368.3" y1="53.34" x2="368.3" y2="60.96" width="0.1524" layer="91"/>
<pinref part="J4" gate="G$1" pin="3"/>
<wire x1="398.78" y1="68.58" x2="391.16" y2="68.58" width="0.1524" layer="91"/>
<wire x1="391.16" y1="68.58" x2="391.16" y2="53.34" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$7" class="0">
<segment>
<pinref part="C8" gate="C" pin="1"/>
<wire x1="297.18" y1="35.56" x2="294.64" y2="35.56" width="0.1524" layer="91"/>
<wire x1="294.64" y1="35.56" x2="294.64" y2="33.02" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="COMP"/>
</segment>
</net>
<net name="0.5V" class="0">
<segment>
<pinref part="R11" gate="R" pin="2"/>
<wire x1="297.18" y1="40.64" x2="289.56" y2="40.64" width="0.1524" layer="91"/>
<wire x1="289.56" y1="40.64" x2="289.56" y2="38.1" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="RT"/>
</segment>
</net>
<net name="1.22V" class="0">
<segment>
<pinref part="R8" gate="R" pin="2"/>
<pinref part="R7" gate="R" pin="1"/>
<wire x1="281.94" y1="38.1" x2="281.94" y2="45.72" width="0.1524" layer="91"/>
<wire x1="281.94" y1="45.72" x2="281.94" y2="66.04" width="0.1524" layer="91"/>
<wire x1="297.18" y1="45.72" x2="281.94" y2="45.72" width="0.1524" layer="91"/>
<junction x="281.94" y="45.72"/>
<pinref part="U3" gate="G$1" pin="UVLO"/>

</segment>
</net>
<net name="N$4" class="0">
<segment>
<pinref part="C1" gate="C" pin="1"/>
<pinref part="U3" gate="G$1" pin="BOOT"/>
</segment>
</net>
<net name="N$3" class="0">
<segment>
<pinref part="D5" gate="G$1" pin="A"/>
<wire x1="398.78" y1="78.74" x2="383.54" y2="78.74" width="0.1524" layer="91"/>
<pinref part="JP1" gate="1" pin="2"/>
<wire x1="383.54" y1="78.74" x2="381" y2="78.74" width="0.1524" layer="91"/>
<wire x1="381" y1="71.12" x2="383.54" y2="71.12" width="0.1524" layer="91"/>
<wire x1="383.54" y1="71.12" x2="383.54" y2="78.74" width="0.1524" layer="91"/>
<junction x="383.54" y="78.74"/>
<pinref part="J4" gate="G$1" pin="1"/>
</segment>
</net>
<net name="N$10" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="5.DI"/>
<pinref part="R5" gate="R" pin="2"/>
</segment>
</net>
<net name="N$9" class="0">
<segment>
<pinref part="SW1" gate="G$1" pin="O"/>
<pinref part="U1" gate="G$1" pin="3.DA"/>
<wire x1="203.2" y1="0" x2="203.2" y2="5.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$15" class="0">
<segment>
<pinref part="U3" gate="G$1" pin="IADJ"/>
<pinref part="R16" gate="R" pin="2"/>
<wire x1="297.18" y1="63.5" x2="294.64" y2="63.5" width="0.1524" layer="91"/>
<pinref part="R4" gate="R" pin="2"/>
<wire x1="294.64" y1="63.5" x2="269.24" y2="63.5" width="0.1524" layer="91"/>
<wire x1="269.24" y1="63.5" x2="264.16" y2="63.5" width="0.1524" layer="91"/>
<junction x="269.24" y="63.5"/>
<pinref part="C4" gate="C" pin="1"/>
<wire x1="294.64" y1="60.96" x2="294.64" y2="63.5" width="0.1524" layer="91"/>
<junction x="294.64" y="63.5"/>
</segment>
</net>
<net name="N$5" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="2.DIA-DAC"/>
<wire x1="198.12" y1="-17.78" x2="198.12" y2="5.08" width="0.1524" layer="91"/>
<pinref part="R4" gate="R" pin="1"/>
<wire x1="254" y1="63.5" x2="251.46" y2="63.5" width="0.1524" layer="91"/>
<wire x1="251.46" y1="63.5" x2="251.46" y2="-17.78" width="0.1524" layer="91"/>
<wire x1="251.46" y1="-17.78" x2="198.12" y2="-17.78" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$19" class="0">
<segment>
<pinref part="R1" gate="R" pin="2"/>
<pinref part="U3" gate="G$1" pin="PDIM"/>
<wire x1="297.18" y1="50.8" x2="264.16" y2="50.8" width="0.1524" layer="91"/>
<wire x1="264.16" y1="-17.78" x2="381" y2="-17.78" width="0.1524" layer="91"/>
<wire x1="264.16" y1="50.8" x2="264.16" y2="-17.78" width="0.1524" layer="91"/>
<junction x="264.16" y="50.8"/>
<pinref part="IC2" gate="P" pin="OUT"/>
<wire x1="381" y1="10.16" x2="381" y2="-17.78" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$20" class="0">
<segment>
<pinref part="R15" gate="R" pin="2"/>
<wire x1="355.6" y1="7.62" x2="355.6" y2="5.08" width="0.1524" layer="91"/>
<pinref part="R17" gate="R" pin="2"/>
<wire x1="353.06" y1="5.08" x2="355.6" y2="5.08" width="0.1524" layer="91"/>
<junction x="355.6" y="5.08"/>
<pinref part="IC2" gate="P" pin="+IN"/>
<wire x1="360.68" y1="7.62" x2="355.6" y2="7.62" width="0.1524" layer="91"/>
</segment>
</net>
<net name="3.3V" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="VCC"/>
<wire x1="170.18" y1="81.28" x2="177.8" y2="81.28" width="0.1524" layer="91"/>

</segment>
<segment>
<wire x1="307.34" y1="5.08" x2="312.42" y2="5.08" width="0.1524" layer="91"/>
<pinref part="C9" gate="C" pin="1"/>
<wire x1="312.42" y1="5.08" x2="317.5" y2="5.08" width="0.1524" layer="91"/>
<wire x1="312.42" y1="2.54" x2="312.42" y2="5.08" width="0.1524" layer="91"/>
<junction x="312.42" y="5.08"/>

<pinref part="U2" gate="G$1" pin="OUT"/>
</segment>
<segment>
<wire x1="172.72" y1="35.56" x2="167.64" y2="35.56" width="0.1524" layer="91"/>

<pinref part="U1" gate="G$1" pin="VCC"/>
<wire x1="177.8" y1="35.56" x2="175.26" y2="35.56" width="0.1524" layer="91"/>
<wire x1="175.26" y1="35.56" x2="172.72" y2="35.56" width="0.1524" layer="91"/>
<pinref part="C6" gate="C" pin="2"/>
<junction x="175.26" y="35.56"/>
</segment>
<segment>
<pinref part="R3" gate="R" pin="2"/>
<wire x1="203.2" y1="99.06" x2="203.2" y2="101.6" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="R17" gate="R" pin="1"/>
<wire x1="342.9" y1="5.08" x2="340.36" y2="5.08" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="IC2" gate="P" pin="V+"/>
<wire x1="368.3" y1="2.54" x2="368.3" y2="0" width="0.1524" layer="91"/>

</segment>
</net>
<net name="N$21" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="DP.13"/>
<pinref part="R1" gate="R" pin="1"/>
<wire x1="254" y1="50.8" x2="243.84" y2="50.8" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$11" class="0">
<segment>
<pinref part="C5" gate="C" pin="2"/>
<pinref part="R6" gate="R" pin="2"/>
<wire x1="353.06" y1="15.24" x2="355.6" y2="15.24" width="0.1524" layer="91"/>
<junction x="355.6" y="15.24"/>
<wire x1="355.6" y1="12.7" x2="355.6" y2="15.24" width="0.1524" layer="91"/>
<pinref part="IC2" gate="P" pin="-IN"/>
<wire x1="360.68" y1="12.7" x2="358.14" y2="12.7" width="0.1524" layer="91"/>
<pinref part="U1" gate="G$1" pin="7.DA"/>
<wire x1="358.14" y1="12.7" x2="355.6" y2="12.7" width="0.1524" layer="91"/>
<wire x1="358.14" y1="-20.32" x2="223.52" y2="-20.32" width="0.1524" layer="91"/>
<wire x1="223.52" y1="-20.32" x2="223.52" y2="5.08" width="0.1524" layer="91"/>
<wire x1="358.14" y1="12.7" x2="358.14" y2="-20.32" width="0.1524" layer="91"/>
<junction x="358.14" y="12.7"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</schematic>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
</compatibility>
</eagle>

extension: sch


text:
require ${COREBASE}/meta/recipes-core/images/core-image-minimal.bb

SUMMARY = "A small image just capable of starting core ROS."
DESCRIPTION = "${SUMMARY}"

inherit ros_distro_${ROS_DISTRO}
inherit ${ROS_DISTRO_TYPE}_image

IMAGE_INSTALL_append = " \
    ros-core \
"

license: MIT

repository: jianchangfeng/meta-ros

license_type: permissive

repo_name: jianchangfeng/meta-ros

branch_name: refs/heads/master

gha_license_id: MIT

extension: bb


text:
@article{Cholette-2021-Precipitation,
    title = "Precipitation Type Distribution and Microphysical Processes During the 1998 Ice Storm Simulated Under Pseudo‐Warmer Conditions",
    author = "Cholette, M{\'e}lissa  and
      Th{\'e}riault, Julie Mireille",
    journal = "Journal of Geophysical Research: Atmospheres, Volume 126, Issue 8",
    volume = "126",
    number = "8",
    year = "2021",
    publisher = "American Geophysical Union (AGU)",
    url = "https://aclanthology.org/G21-38001",
    doi = "10.1029/2020jd033577",
    abstract = "In the future, the intensity, phases, and frequency of precipitation are expected to change due to global warming, in particular during colder seasons when temperatures are near 0{\mbox{$^\circ$}}C. To investigate the impacts of warmer atmospheric conditions on the microphysical processes that lead to several precipitation types, the extreme 1998 Ice Storm was simulated using the Weather Research and Forecasting (WRF) model, with and without a pseudo-global warming. The pseudo-global warming approach simulates similar large-scale conditions but in warmer conditions, which allows for the assessment of thermodynamic feedback from cloud and precipitation microphysics. For both simulations, WRF was coupled with the Predicted Particle Properties (P3) bulk microphysics scheme that predicts the liquid fraction of mixed-phase particles. Results of the pseudo-global warming simulation show an increase of ∼828 m in the upper 0{\mbox{$^\circ$}}C level and a northeastward migration (∼60 km) of the rain-snow transition region. The results also show a 20{\%} decrease in domain-averaged freezing rain amounts, but with an increased maximum amount of 50{\%}. The horizontal distance associated with a melting aloft and a refreezing layer near the surface is 105 km longer in southern Quebec due to the combined effects of the pseudo-warming and the presence of the Appalachian Mountains. The microphysical processes that lead to precipitation are impacted as well; the increased ice mass and riming conditions aloft in warmer temperatures result in higher liquid precipitation rates. This study contributes to our understanding of the changes in the fine-scale processes of an extreme storm, simulated with pseudo-global warming conditions.",
}

repository: gwf-uwaterloo/gwf-publications

repo_name: gwf-uwaterloo/gwf-publications

branch_name: refs/heads/main

gha_language: Python

extension: bib


text:
/* -*-  mode: c++; c-default-style: "google"; indent-tabs-mode: nil -*- */

/*
  An evaluator for pulling the darcy flux, at the surface, from the
  subsurface field and putting it into a surface field.

  Authors: Ethan Coon (ecoon@lanl.gov)
*/

#include "surface_coupler_via_source_evaluator.hh"

namespace Amanzi {
namespace Flow {
namespace FlowRelations {

Utils::RegisteredFactory<FieldEvaluator,SurfaceCouplerViaSourceEvaluator>
SurfaceCouplerViaSourceEvaluator::fac_("surface_coupler_via_source");

} // namespace
} // namespace
} // namespace

extension: hh


text:
SUMMARY = "the Apache Kafka C/C++ client library"
DESCRIPTION = "librdkafka is a C library implementation of the Apache Kafka protocol, \
               providing Producer, Consumer and Admin clients."
HOMEPAGE = "https://github.com/edenhill/librdkafka"
SECTION = "libs"
LICENSE = "BSD-2-Clause"

LIC_FILES_CHKSUM = "file://LICENSE;md5=2be8675acbfdac48935e73897af5f646"

SRC_URI = "git://github.com/edenhill/librdkafka;protocol=https;branch=master \
           file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch \
          "
SRCREV = "063a9ae7a65cebdf1cc128da9815c05f91a2a996"

DEPENDS = "zlib openssl zstd"

inherit cmake

S = "${WORKDIR}/git"

FILES:${PN} += "${datadir}"

EXTRA_OECMAKE += "-DRDKAFKA_BUILD_EXAMPLES=OFF -DRDKAFKA_BUILD_TESTS=OFF"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded

gha_language: BitBake


text:
//! References: geeksforgeeks
#include <iostream>
#include <string>
#include <limits>

using namespace std;

int main()
{
	int n, teste = 1;

	while (cin >> n)
	{
		if (!n)
			break;

		string s;

		cin >> s;

		int cuts[n][n];
		bool substr_is_palindrome[n][n];

		for (int i = 0; i < n; i++)
		{
			substr_is_palindrome[i][i] = true;
			cuts[i][i] = 0;
		}

		for (int length = 2; length <= n; length++)
		{
			for (int i = 0; i < n - length + 1; i++)
			{
				int j = i + length - 1;

				if (length == 2)
					substr_is_palindrome[i][j] = (s[i] == s[j]);
				else
					substr_is_palindrome[i][j] = (s[i] == s[j]) && substr_is_palindrome[i + 1][j - 1];

				if (substr_is_palindrome[i][j])
					cuts[i][j] = 0;
				else
				{
					cuts[i][j] = numeric_limits<int>::max();
					for (int k = i; k <= j - 1; k++)
						cuts[i][j] = min(cuts[i][j], cuts[i][k] + cuts[k + 1][j] + 1);
				}
			}
		}

		cout << "Teste " << teste++ << endl;
		cout << (cuts[0][n - 1] + 1) << endl << endl;
	}

	return 0;
}

extension: cpp


text:
# cmake/projects/cpp_redis/hunter.cmake

# !!! DO NOT PLACE HEADER GUARDS HERE !!!

# Load used modules
include(hunter_add_version)
include(hunter_download)
include(hunter_pick_scheme)
include(hunter_cacheable)

# List of versions here...
hunter_add_version(
    PACKAGE_NAME
    cpp_redis
    VERSION
    "3.5.0-h1"
    URL
    "https://github.com/hunter-packages/cpp_redis/archive/3.5.0-h1.tar.gz"
    SHA1
    b88a7f6c303122f4f62f0c37cce8625a592b51d1
)

# Pick a download scheme
hunter_pick_scheme(DEFAULT url_sha1_cmake) # use scheme for cmake projects

# Download package.
# Two versions of library will be build by default:
#     * libcpp_redis.a
#     * libcpp_redisd.a
hunter_cacheable(cpp_redis)
hunter_download(PACKAGE_NAME cpp_redis)

repository: cpp-pm/hunter

repo_name: cpp-pm/hunter

gha_language: CMake

extension: cmake


text:
package main

import (
	"gin-first/helpers"
	"gin-first/routers"
	"gin-first/system"
	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
	"net/http"
	"os"
	"time"
)

// @title gin-first API 文档
// @version 2.0
// @description 这是一个 gin 框架应用 swagger 的示例

// @contact.name YinYongTao
// @contact.url https://github.com/YinYongTao/gin-first
// @contact.email yongtao.yin@bsit.cn

// @licenes.name Apache 2.0
// @licenes.url http://www.apache.org/licenses/LICENSE-2.0.html

// @host 0.0.0.0:8080
// @BasePath /
func main() {
	ginConfig := system.GetGinConfig()
	gin.SetMode(ginConfig.RunMode)
	router := gin.New()
	router.Use(system.Logger(helper.AccessLogger), gin.Recovery())
	//配置跨域
	router.Use(cors.New(cors.Config{
		AllowMethods:     []string{"GET", "POST"},
		AllowHeaders:     []string{"Origin", "Content-Length", "Content-Type", "ACCESS_TOKEN"},
		AllowCredentials: false,
		AllowAllOrigins:  true,
		MaxAge:           12 * time.Hour,
	}))
	router.HandleMethodNotAllowed = ginConfig.HandleMethodNotAllowed
	router.Static("/page", "view")
	router.MaxMultipartMemory = ginConfig.MaxMultipartMemory
	routers.RegisterApiRoutes(router)
	routers.RegisterAppRoutes(router)
	routers.RegisterOpenRoutes(router)
	routers.RegisterAuthRoutes(router)
	serverConfig := system.GetServerConfig()
	server := &http.Server{
		Addr:           serverConfig.Addr,
		IdleTimeout:    serverConfig.IdleTimeout * time.Second,
		ReadTimeout:    serverConfig.ReadTimeout * time.Second,
		WriteTimeout:   serverConfig.WriteTimeout * time.Second,
		MaxHeaderBytes: serverConfig.MaxHeaderBytes,
		Handler:        router,
	}
	server.ListenAndServe()
}

func init() {
	// 先读取服务配置文件
	err := system.LoadServerConfig("conf/server-config.yml")
	if err != nil {
		helper.ErrorLogger.Errorln("读取服务配置错误：", err)
		os.Exit(3)
	}
}

extension: go


text:
DESCRIPTION = "This module is not intended for direct use in application code. Its sole \
purpose is to be sub-classed by IO::Compress modules."

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

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

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/P/PM/PMQS/IO-Compress-2.102.tar.gz"

SRC_URI[md5sum] = "b79ef532ba8b6c1672dc2a401715f5cf"
SRC_URI[sha256sum] = "d6fa7f9a5beee446452a0fbc43589a0c73fe7e925c075b98628b018048dc72a4"
RDEPENDS:${PN} += "compress-raw-bzip2-perl"
RDEPENDS:${PN} += "compress-raw-zlib-perl"

S = "${WORKDIR}/IO-Compress-${PV}"

inherit cpan allarch

BBCLASSEXTEND = "native"

repository: rehsack/meta-cpan

repo_name: rehsack/meta-cpan


text:
enable_language(CXX)

file(GENERATE
  OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/$<BOOL:$<TARGET_OBJECTS:foo>>somefile.cpp"
  CONTENT "static const char content[] = \"$<TARGET_OBJECTS:foo>\";\n"
)

add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/input.txt"
  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/input.txt" "${CMAKE_CURRENT_BINARY_DIR}")

add_executable(foo empty.cpp "${CMAKE_CURRENT_BINARY_DIR}/1somefile.cpp" "${CMAKE_CURRENT_BINARY_DIR}/input.txt")

repository: crouchingtigre/turicreate

repo_name: crouchingtigre/turicreate


text:
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package inputs

import (
	"context"
	"fmt"
	"io/ioutil"
	"path/filepath"
	"strings"
	"time"

	"chromiumos/tast/ctxutil"
	"chromiumos/tast/errors"
	"chromiumos/tast/local/chrome/ash"
	"chromiumos/tast/local/input"
	"chromiumos/tast/testing"
	"chromiumos/tast/testing/hwdep"
)

func init() {
	testing.AddTest(&testing.Test{
		Func:         TabletModeCheck,
		LacrosStatus: testing.LacrosVariantUnneeded,
		Desc:         "Verifies tablet mode functionality with checking input devices behavior",
		Contacts:     []string{"ambalavanan.m.m@intel.com", "intel-chrome-system-automation-team@intel.com"},
		SoftwareDeps: []string{"chrome"},
		Attr:         []string{"group:mainline", "informational"},
		Fixture:      "chromeLoggedIn",
		HardwareDeps: hwdep.D(hwdep.ChromeEC(), hwdep.Touchpad(), hwdep.Keyboard(), hwdep.FormFactor(hwdep.Convertible)),
	})
}

func TabletModeCheck(ctx context.Context, s *testing.State) {
	cleanupCtx := ctx
	ctx, cancel := ctxutil.Shorten(ctx, 10*time.Second)
	defer cancel()

	keyboardAvailable, keyboardDevPath, err := input.FindPhysicalKeyboard(ctx)
	if err != nil {
		s.Fatal("Failed to create keyboard event: ", err)
	}

	if !keyboardAvailable {
		s.Fatal("Failed to find keyboard input device")
	}

	touchpadAvailable, touchpadDevPath, err := input.FindPhysicalTrackpad(ctx)
	if err != nil {
		s.Fatal("Failed to create touchpad event: ", err)
	}

	if !touchpadAvailable {
		s.Fatal("Failed to find touchpad input device")
	}

	const (
		devRoot              = "/dev"
		enabledStatusString  = "enabled"
		disabledStatusString = "disabled"
	)

	onboardKeyboardEventPath, err := filepath.Rel(devRoot, keyboardDevPath)
	if err != nil {
		s.Fatal("Failed to get keyboard event relative path: ", err)
	}

	if err := inputDeviceDetectionCheck(ctx, onboardKeyboardEventPath, enabledStatusString); err != nil {
		s.Fatal("Failed to verify keyboard event in evtest in clamshell mode: ", err)
	}

	touchpadEventPath, err := filepath.Rel(devRoot, touchpadDevPath)
	if err != nil {
		s.Fatal("Failed to get touchpad event relative path: ", err)
	}

	if err := inputDeviceDetectionCheck(ctx, touchpadEventPath, enabledStatusString); err != nil {
		s.Fatal("Failed to verify touchpad event in evtest in clamshell mode: ", err)
	}

	testing.ContextLog(ctx, "Put DUT into tablet mode")
	cleanUp, err := ash.EnsureTabletModeEnabledWithKeyboardDisabled(ctx)
	if err != nil {
		s.Fatal("Failed to put DUT in tablet mode: ", err)
	}
	defer cleanUp(cleanupCtx)

	if err := inputDeviceDetectionCheck(ctx, onboardKeyboardEventPath, disabledStatusString); err != nil {
		s.Fatal("Failed to verify keyboard event in evtest in tablet mode: ", err)
	}

	if err := inputDeviceDetectionCheck(ctx, touchpadEventPath, disabledStatusString); err != nil {
		s.Fatal("Failed to verify touchpad event in evtest in tablet mode: ", err)
	}
}

// inputDeviceDetectionCheck verifies input device eventPath has expectedDetectionStatus.
func inputDeviceDetectionCheck(ctx context.Context, eventPath, expectedDetectionStatus string) error {
	wakeSourceFile := fmt.Sprintf("/sys/class/%s/device/device/power/wakeup", eventPath)
	if err := testing.Poll(ctx, func(ctx context.Context) error {
		sourceOut, err := ioutil.ReadFile(wakeSourceFile)
		if err != nil {
			return errors.Wrapf(err, "failed to read %q file", wakeSourceFile)
		}
		got := strings.TrimSpace(string(sourceOut))
		if !strings.Contains(got, expectedDetectionStatus) {
			return errors.Errorf("unexpected detection status: got %q; want %q", got, expectedDetectionStatus)
		}
		return nil
	}, &testing.PollOptions{Timeout: 15 * time.Second}); err != nil {
		return err
	}
	return nil
}


text:
SUMMARY = "A library for loose coupling of C++ method calls"
SECTION = "libs"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"

DEPENDS = "mm-common"

SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-${PV}.tar.xz"
SRC_URI[sha256sum] = "d082a2ce72c750f66b1a415abe3e852df2eae1e8af53010f4ac2ea261a478832"

S = "${WORKDIR}/libsigc++-${PV}"

inherit meson

FILES:${PN}-dev += "${libdir}/sigc++-*/"
FILES:${PN}-doc += "${datadir}/devhelp"

BBCLASSEXTEND = "native"
SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"


text:
@article{resnest,
title = {ResNeSt: Split-Attention Networks},
author = {Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Mueller, Jonas and Manmatha, R and Li, Mu and Smola, Alexander},
journal = {arXiv},
url = {https://arxiv.org/abs/2004.08955},
eprint = {2004.08955},
abstract = {{While image classification models have recently continued to advance, most downstream applications such as object detection and semantic segmentation still employ ResNet variants as the backbone network due to their simple and modular structure. We present a simple and modular Split-Attention block that enables attention across feature-map groups. By stacking these Split-Attention blocks ResNet-style, we obtain a new ResNet variant which we call ResNeSt. Our network preserves the overall ResNet structure to be used in downstream tasks straightforwardly without introducing additional computational costs. ResNeSt models outperform other networks with similar model complexities. For example, ResNeSt-50 achieves 81.13\% top-1 accuracy on ImageNet using a single crop-size of 224x224, outperforming previous best ResNet variant by more than 1\% accuracy. This improvement also helps downstream tasks including object detection, instance segmentation and semantic segmentation. For example, by simply replace the ResNet-50 backbone with ResNeSt-50, we improve the mAP of Faster-RCNN on MS-COCO from 39.3\% to 42.3\% and the mIoU for DeeplabV3 on ADE20K from 42.1\% to 45.1\%.}},
year = {2020}
}
@misc{sknet,
title = {Selective Kernel Networks},
author = {Li∗1, Xiang and Wang†3, Wenhai and {Yang§, Xiaolin Hu‡4 and Jian}},
url = {https://arxiv.org/pdf/1903.06586.pdf},
urldate = {2020-12-19},
year = {2019}
}
@article{senet,
title = {Recalibrating Fully Convolutional Networks with Spatial and Channel 'Squeeze \& Excitation' Blocks},
author = {Roy, Abhijit Guha and Navab, Nassir and Wachinger, Christian},
journal = {arXiv},
url = {https://arxiv.org/abs/1808.08127},
eprint = {1808.08127},
abstract = {{In a wide range of semantic segmentation tasks, fully convolutional neural networks (F-CNNs) have been successfully leveraged to achieve state-of-the-art performance. Architectural innovations of F-CNNs have mainly been on improving spatial encoding or network connectivity to aid gradient flow. In this article, we aim towards an alternate direction of recalibrating the learned feature maps adaptively; boosting meaningful features while suppressing weak ones. The recalibration is achieved by simple computational blocks that can be easily integrated in F-CNNs architectures. We draw our inspiration from the recently proposed 'squeeze \& excitation' (SE) modules for channel recalibration for image classification. Towards this end, we introduce three variants of SE modules for segmentation, (i) squeezing spatially and exciting channel-wise, (ii) squeezing channel-wise and exciting spatially and (iii) joint spatial and channel 'squeeze \& excitation'. We effectively incorporate the proposed SE blocks in three state-of-the-art F-CNNs and demonstrate a consistent improvement of segmentation accuracy on three challenging benchmark datasets. Importantly, SE blocks only lead to a minimal increase in model complexity of about 1.5\%, while the Dice score increases by 4-9\% in the case of U-Net. Hence, we believe that SE blocks can be an integral part of future F-CNN architectures.}},
keywords = {resnet},
year = {2018}
}
@article{resnext,
title = {Aggregated Residual Transformations for Deep Neural Networks},
author = {Xie, Saining and Girshick, Ross and Dollár, Piotr and Tu, Zhuowen and He, Kaiming},
journal = {arXiv},
url = {https://arxiv.org/abs/1611.05431},
eprint = {1611.05431},
abstract = {{We present a simple, highly modularized network architecture for image classification. Our network is constructed by repeating a building block that aggregates a set of transformations with the same topology. Our simple design results in a homogeneous, multi-branch architecture that has only a few hyper-parameters to set. This strategy exposes a new dimension, which we call "cardinality" (the size of the set of transformations), as an essential factor in addition to the dimensions of depth and width. On the ImageNet-1K dataset, we empirically show that even under the restricted condition of maintaining complexity, increasing cardinality is able to improve classification accuracy. Moreover, increasing cardinality is more effective than going deeper or wider when we increase the capacity. Our models, named ResNeXt, are the foundations of our entry to the ILSVRC 2016 classification task in which we secured 2nd place. We further investigate ResNeXt on an ImageNet-5K set and the COCO detection set, also showing better results than its ResNet counterpart. The code and models are publicly available online.}},
year = {2016}
}
@article{resnet,
      title={Deep Residual Learning for Image Recognition},
      author={Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun},
      year={2015},
      url={https://arxiv.org/abs/1512.03385},
      eprint={1512.03385},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

gha_language: JavaScript


text:
package main

import (
	polygate_data "polygate/polygate-data"

	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/metadata"
	"google.golang.org/grpc/status"
)

func addMetadataToJobEvent(md metadata.MD, event *polygate_data.JobEvent) {

	event.Metadata = make([]*polygate_data.MetadataItem, len(md))
	index := 0
	for key, value := range md {
		event.Metadata[index] = &polygate_data.MetadataItem{
			Key:    key,
			Values: value,
		}
		index++
	}

}

func metadataFromJobEvent(event *polygate_data.JobEvent) metadata.MD {

	md := make(metadata.MD, len(event.Metadata))

	for _, value := range event.Metadata {
		md.Set(value.Key, value.Values...)
	}

	return md

}

func addErrorToJobEvent(err error, event *polygate_data.JobEvent) {
	s := status.Convert(err)

	event.Error = &polygate_data.JobError{
		Code:    uint32(s.Code()),
		Message: s.Message(),
	}

}

func statusFromJobEvent(event *polygate_data.JobEvent) *status.Status {
	return status.New(codes.Code(event.Error.Code), event.Error.Message)
}

repository: gamaops/polygate

repo_name: gamaops/polygate

gha_language: Go


text:
@Misc{recycleEnergy-sp20-516-224,
  author = {Primary Energy},
  title  = {{What is Recycling Energy}},
  url    = {https://www.primaryenergy.com/energy-recycling/},
}
@Misc{www-image-google-circular-economy-sp20-516-224,
  author = {Google},
  title  = {{data-center-case-study}},
  url    = {https://storage.googleapis.com/gweb-sustainability.appspot.com/pdf/data-center-case-study.pdf},
}
@Misc{www-microsoft-outage-sp20-516-224,
  author = {ZDNet},
  title  = {{Microsoft South Central US datacenter outage takes down a number of cloud services}},
  url    = {https://www.zdnet.com/article/microsoft-south-central-u-s-datacenter-outage-takes-down-a-number-of-cloud-services/},
}


text:
require ${PN}.inc

SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/noncore/net/opieftp \
           ${HANDHELDS_CVS};tag=${TAG};module=opie/pics \
           ${HANDHELDS_CVS};tag=${TAG};module=opie/apps"


text:
@misc{tjusila2023clues,
 archiveprefix = {arXiv},
 author = {Gennesaret Tjusila and Mathieu Besançon and Mark Turner and Thorsten Koch},
 eprint = {2305.01697},
 primaryclass = {math.OC},
 title = {How Many Clues To Give? A Bilevel Formulation For The Minimum Sudoku Clue Problem},
 year = {2023}
}

repository: matbesancon/hugo-site

repo_name: matbesancon/hugo-site

gha_language: HTML


text:
package vm

import (
	"testing"
)

func TestBreakStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
		x = 0
		y = 0

		while x < 10 do
		  x = x + 1
		  if x == 5
			break
		  end
		  y = y + 1
		end

		x + y
				`, 9},
		{`
		x = [1, 2, 3]
		y = 0

		x.each do |i|
		  y += i
		  if i == 2
			break
		  end
		end

		y
		`, 3},
		{`
		x = [1, 2, 3]
		y = 0
		sum = 0

		while y < 3 do
			x.each do |i|
				sum += i * y
			end

			if sum > 6
				break
			end

			y = y + 1
		end

		sum
		`, 18},
		{`
		x = [1, 2, 3]
		y = 0

		while y < 10 do
		  x.each do |i|
			y += i
			if i == 2
			  break
			end
		  end
		end

		y
		`, 12},
		{`
		x = 0
		y = 0
		i = 0

		while x < 10 do
		  x = x + 1
		  while y < 5 do
			y = y + 1

			if y == 3
			  break
			end

			i = i + x * y
		  end
		end

		a = i * 10
		a + 100
				`, 310},
		{`
		x = 0
		y = 0
		i = 0

		while x < 10 do
		  x = x + 1
		  while y < 5 do
			y = y + 1
		  end

			if y == 3
			  break
			end

			i = i + x * y

		  if x > 5
		    break
		  end

		end

		a = i * 10
		a + 100
				`, 1150},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestDefStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
		def foo
		 10
		end

		foo
		`, 10},
		{`
		def foo(x)
		 x + 10
		end

		foo(10)
		`, 20},
		{`
		def foo(x = 100, y=10)
		 x + y
		end

		foo
		`, 110},
		{`
		def foo(x = 100, y=10)
		 x + y
		end

		foo(20)
		`, 30},
		{`
		def foo(x, y=10)
		 x + y
		end

		foo(100)
		`, 110},
		{`
		def foo(x=10, y=11, z=12)
		 x + y + z
		end

		foo(10, 20)
		`, 42},
		{`
		class Foo; end

		def Foo.foo
		 10
		end

		Foo.foo
		`, 10},
		{`
		class Foo
		 def ten
		   10
		 end
		end

		f1 = Foo.new
		f2 = Foo.new

		def f1.ten
		 20
		end

		f2.ten + f1.ten
		`, 30},
		{`
		class Foo
		end

		f = Foo.new

		def f.ten
		  10
		end

		def f.twenty
			20
		end

		f.ten + f.twenty

		`, 30},
		{`
		a = 1

		def a.foo
		  10
		end

		a.foo
		`, 10},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestDefStatementWithSplatArgument(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{

		{`
		def foo(a, *b)
		  b.each do |i|
		    a = a + i
		  end
		  a
		end

		foo(10, 15, 20)
		`, 45},
		{`
		def foo(a, b, *c)
		  c.each do |i|
		    a = a + i
		  end
		  a + b
		end

		foo(10, 15, 20, 25)
		`, 70},
		{`
		def foo(a, b = 15, *c)
		  c.each do |i|
		    a = a + i
		  end
		  a + b
		end

		foo(10, 20, 25)
		`, 55},
		{`
		def foo(*a)
		  r = 0
		  a.each do |i|
		    r += i
		  end
		  r
		end

		foo(10, 20, 30)
		`, 60},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestDefStatementWithKeywordArgument(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
		def foo(a:)
		  a
		end

		foo(a:10)
		`, 10},
		{`
		def foo(a: 20)
		  a
		end

		foo
		`, 20},
		{`
		def foo(a: 20)
		  a
		end

		foo(a: 10)
		`, 10},
		{`
		def foo(a:, b:)
		  a - b
		end

		foo(a:10, b: 20)
		`, -10},
		{`
		def foo(b:, a: 10)
		  a - b
		end

		foo(b: 20)
		`, -10},
		{`
		def foo(a:, b: 20)
		  a - b
		end

		foo(a: 10)
		`, -10},
		{`
		def foo(a:, b:)
		  a - b
		end

		foo(b:10, a: 20)
		`, 10},
		{`
		def foo(foo, a:, b:)
		  a - b + foo
		end

		foo(100, a:10, b: 20)
		`, 90},
		{`
		def foo(foo, a:, b: 10)
		  a - b + foo
		end

		foo(100, a: 20)
		`, 110},
		// Two normal arguments plus two keyword arguments
		{`
		def foo(bar, foo, a:, b:)
		  a - b + foo - bar
		end

		foo(40, 100, a:10, b: 20)
		`, 50},
		{`
		def foo(bar, foo, a:, b:)
		  a - b + foo - bar
		end

		foo(40, 100, b: 20, a: 10)
		`, 50},
		{`
		def foo(bar, foo, a:, b:)
		  a - b + foo - bar
		end

		foo(b: 20, a: 10, 40, 100)
		`, 50},
		{`
		def foo(bar, foo = 100, a:, b:)
		  a - b + foo - bar
		end

		foo(b: 20, a: 10, 40)
		`, 50},

		// Add splat arguments
		{`
		def foo(bar, foo, a:, b:, *args)
		  a - b + foo - bar + *args[1]
		end

		foo(b: 20, a: 10, 40, 100, "foo", 50)
		`, 100},
		{`
		def foo(bar, foo, a:, b:, *args)
		  a - b + foo - bar + *args[1]
		end

		foo(b: 20, a: 10, 40, 100, "foo", 50)
		`, 100},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestModuleStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
		module Bar
		  def bar
		    10
		  end
		end

		class Foo
		  include Bar
		end

		Foo.new.bar
		`,
			10},
		{`
		module Bar
		  def bar
		    10
		  end
		end

		include Bar

		bar
		`,
			10},
		{`module Foo
			  def ten
			    10
			  end
			end

			class Baz
			  def ten
			    1
			  end

			  def five
			    5
			  end
			end

			class Bar < Baz
			  include Foo
			end

			b = Bar.new
			b.ten * b.five
`, 50},
		{`
		module Foo
		  def ten
			10
		  end
		  def twenty
			20
		  end
		end

		module Bar
		  def twenty
			"20th"
		  end
		end

		class Baz
		  include(Foo)
		  include(Bar)
		  include(Foo)
		end

		a = Baz.new
		a.twenty
		`, "20th"},
		{`
		module Foo
		  def ten
			10
		  end
		end

		module Bar
		  def twenty
			20
		  end
		end

		class Baz
		  include(Bar)
		  include(Foo)
		end

		class Baz
		  include(Bar)
		  include(Foo)
		end

		b = Baz.new
		b.ten + b.twenty
		`, 30},
		{`
		module Foo
		  def ten
		    10
		  end
		end

		class Bar
		  extend Foo
		end

		Bar.ten
		`, 10},
		{`
		module Foo; end

		class Bar
		  extend Foo
		end

		module Foo
		  def ten
		    10
		  end
		end

		Bar.ten
		`, 10},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestNextStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
x = 0
y = 0

while x < 10 do
  x = x + 1
  if x == 5
	next
  end
  y = y + 1
end

x + y
		`, 19},
		{`
x = 0
y = 0
i = 0

while x < 10 do
  x = x + 1
  while y < 5 do
	y = y + 1

	if y == 3
	  next
	end

	i = i + x * y
  end
end

i
		`, 12},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}

func TestReturnStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`
			def bar
			  return 100
			  10
			end

			bar
			`,
			100,
		},
		{
			`
			def bar
			  return
			  10
			end

			bar
			`,
			nil,
		},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)

	}
}

func TestWhileStatement(t *testing.T) {
	tests := []struct {
		input    string
		expected int
	}{
		{
			`
			i = 10
			while i < 0 do
			  i = i + 1
			end

			i
			`, 10},
		{
			`
			i = 10

			while i < 0 do
			  10
			  i = i + 1
			end

			i
			`, 10},
		{
			`
			i = 10

			while i < 0 do
			  i = i + 1
			  10
			end

			i
			`, 10},
		{
			`
		i = 10
		while i > 0 do
		  i -= 1
		end
		i
		`, 0},
		{
			`
		a = [1, 2, 3, 4, 5]
		i = 0
		while i < a.length do
			a[i] += 1
			i += 1
		end
		a[4]
		`, 6},
		// These are regression tests for #396
		// Which should prevent parser from peeking the do keyword and consider identifier as method call
		{`
		i = 0
		l = 10
		while i < l do
		  i += 1
		end

		i
		`, 10},
		{`
		f = false
		i = 0
		while f do
		  i += 1
		end

		i
		`, 0},
	}

	for i, tt := range tests {
		v := initTestVM()
		evaluated := v.testEval(t, tt.input, getFilename())
		VerifyExpected(t, i, evaluated, tt.expected)
		v.checkCFP(t, i, 0)
		v.checkSP(t, i, 1)
	}
}


text:
package common

import (
	"github.com/razzkumar/gofullstack/volume4/section2/gopherface/common/datastore"
	"go.isomorphicgo.org/go/isokit"
)

type Env struct {
	DB          datastore.Datastore
	TemplateSet *isokit.TemplateSet
}

repository: Drazzkumar/gofullstack

repo_name: Drazzkumar/gofullstack


text:
package main

import (
	"log"
	"net/http"

	handlers "github.com/natalliakoita/gocourse/lesson_07/server/handle"
)

func main() {
	addr := "localhost:8081"
	endpoint := "/rpc"
	http.HandleFunc(endpoint, handlers.Handle)
	log.Printf("Started JSON RPC server on %s%s", addr, endpoint)
	log.Fatal(http.ListenAndServe(addr, nil))
}

repository: natalliakoita/gocourse

repo_name: natalliakoita/gocourse


text:
#pragma once

#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"

class USRTMContainer;

DECLARE_DELEGATE_OneParam(FOnSRTMLoadCompleted, USRTMContainer* /* DataObject */);

/**
 * The public interface to this module.  In most cases, this interface is only public to sibling modules
 * within this plugin.
 */
class ISRTMImport : public IModuleInterface
{

public:

	/**
	 * Singleton-like access to this module's interface.  This is just for convenience!
	 * Beware of calling this during the shutdown phase, though.  Your module might have been unloaded already.
	 *
	 * @return Returns singleton instance, loading the module on demand if needed
	 */
	static inline ISRTMImport& Get()
	{
		return FModuleManager::LoadModuleChecked< ISRTMImport >( "SRTMImport" );
	}

	/**
	 * Checks to see if this module is loaded and ready.  It is only valid to call Get() if IsAvailable() returns true.
	 *
	 * @return True if the module is loaded and ready to use
	 */
	static inline bool IsAvailable()
	{
		return FModuleManager::Get().IsModuleLoaded( "SRTMImport" );
	}

	/**
	* Loads the data from the provided filepath into an SRTM container, parses the Lat and Long data from the filename
	*
	* @return A valid container or nullptr if there was an error
	*/
	virtual USRTMContainer*	LoadFile(const FString& Filepath) const = 0;

	/**
	* Loads SRTM data from the required files in the folder specified in the plugin settings to populate the required region
	*
	* Will call delegate with  valid container or nullptr if there was an error
	*/
	virtual void	LoadRegion(float Lat, float Long, FOnSRTMLoadCompleted Delegate) { return LoadRegion(Lat, Long, Lat + 1.0f, Long + 1.0f, Delegate); }

	/**
	* Loads SRTM data from the required files in the folder specified in the plugin settings to populate the required region
	* NOTE: EndLat must be further west than StartLat, EndLong must be further north than StartLong
	*
	* Will call delegate with valid container or nullptr if there was an error
	*/
	virtual void	LoadRegion(float StartLat, float StartLong, float EndLat, float EndLong, FOnSRTMLoadCompleted Delegate) = 0;

	/**
	* @return True if the filename is a valid .hgt file
	*/
	virtual bool IsValidFile(const TCHAR* Filename) const = 0;
};

repository: richmondx/SRTMImport

repo_name: richmondx/SRTMImport

extension: h


text:
DESCRIPTION = "Tool to sign an LK bootloader"
SECTION = "devel"
LICENSE = "BSD-3-Clause & MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8b9255257198f5ad2006cfdf0a1f24c1 \
                    file://signer/ELFIO/COPYING;md5=4f932e9ddd12264ae5e569aae5f08ed3"

DEPENDS = "openssl-native util-linux-native"
SRCREV = "059f3f2768a8bc460fe814e2bb4bc8cc3078c8ba"
PV = "0.0+git${SRCPV}"

inherit native

SRC_URI = "git://git.linaro.org/landing-teams/working/qualcomm/signlk.git;protocol=https \
           file://0001-Remove-build-of-signlk-from-script.patch"

S = "${WORKDIR}/git"

do_compile() {
    oe_runmake -f ${S}/signer/Makefile mfile_path=${S}/signer
}

do_install() {
    install -d ${D}${bindir}/signer
    install -m 0755 ${S}/signer/signlk ${D}${bindir}/signer/
    install -m 0755 ${S}/signlk.sh ${D}${bindir}/signlk
}

repository: a-zakirov/meta-qcom

repo_name: a-zakirov/meta-qcom


text:
package conf

import (
	"flag"
	"github.com/kless/goconfig/config"
	"strings"
)

type idxOpts struct {
	unique   bool
	dropDups bool
	sparse   bool
}

// Setup conf variables
var (
	// Config File
	CONFIGFILE = ""

	// Shock
	SITEPORT = 0
	APIPORT  = 0

	// Admin
	ADMINEMAIL = ""
	SECRETKEY  = ""

	// Directories
	DATAPATH = ""
	SITEPATH = ""
	LOGSPATH = ""

	// Mongodb
	MONGODB = ""

	// Node Indices
	NODEIDXS map[string]idxOpts = nil
)

func init() {
	flag.StringVar(&CONFIGFILE, "conf", "/usr/local/shock/conf/shock.cfg", "path to config file")
	flag.Parse()
	c, _ := config.ReadDefault(CONFIGFILE)
	// Shock
	SITEPORT, _ = c.Int("Shock", "site-port")
	APIPORT, _ = c.Int("Shock", "api-port")

	// Admin
	ADMINEMAIL, _ = c.String("Admin", "email")
	SECRETKEY, _ = c.String("Admin", "secretkey")

	// Directories
	SITEPATH, _ = c.String("Directories", "site")
	DATAPATH, _ = c.String("Directories", "data")
	LOGSPATH, _ = c.String("Directories", "logs")

	// Mongodb
	MONGODB, _ = c.String("Mongodb", "hosts")

	// parse Node-Indices
	NODEIDXS = map[string]idxOpts{}
	nodeIdx, _ := c.Options("Node-Indices")
	for _, opt := range nodeIdx {
		val, _ := c.String("Node-Indices", opt)
		opts := idxOpts{}
		for _, parts := range strings.Split(val, ",") {
			p := strings.Split(parts, ":")
			if p[0] == "unique" {
				if p[1] == "true" {
					opts.unique = true
				} else {
					opts.unique = false
				}
			} else if p[0] == "dropDups" {
				if p[1] == "true" {
					opts.dropDups = true
				} else {
					opts.dropDups = false
				}
			} else if p[0] == "sparse" {
				if p[1] == "true" {
					opts.sparse = true
				} else {
					opts.sparse = false
				}
			}
		}
		NODEIDXS[opt] = opts
	}
}

repository: gingi/Shock

repo_name: gingi/Shock


text:
// Copyright © 2023 Ory Corp
// SPDX-License-Identifier: Apache-2.0

package namespace

import (
	"github.com/spf13/cobra"

	"github.com/ory/keto/ketoctx"
)

func NewNamespaceCmd() *cobra.Command {
	return &cobra.Command{
		Use:   "namespace",
		Short: "Read and manipulate namespaces",
	}
}

func RegisterCommandsRecursive(parent *cobra.Command, _ []ketoctx.Option) {
	rootCmd := NewNamespaceCmd()
	rootCmd.AddCommand(NewValidateCmd())

	parent.AddCommand(rootCmd)
}

repository: ory/keto

repo_name: ory/keto


text:
PR = "r6"
LICENSE = "GPL"
inherit gpe

SRC_URI += "file://gpe-conf-0.1.22-20041124.patch;patch=1;pnum=0 \
	file://desktop-categories.patch;patch=1 \
	file://fix-wificonfig.patch;patch=1;pnum=0 \
	file://serial_tts.patch;patch=1 \
	file://battery_with_no_lifetime.patch;patch=1 \
	file://ignore_invalid_battery_values.patch;patch=1"

DEPENDS = "gtk+ libgpewidget libxsettings libxsettings-client pcmcia-cs xst xset ipaq-sleep ntp gpe-login gpe-icons"
RDEPENDS_${PN} = "xst xset ipaq-sleep ntpdate gpe-login gpe-icons"
SECTION = "gpe"
PRIORITY = "optional"
FILES_${PN} = "${sysconfdir} ${bindir} ${datadir}/pixmaps \
		${datadir}/applications ${datadir}/gpe/pixmaps \
		${datadir}/gpe-conf"

do_compile () {
	oe_runmake PREFIX=${prefix}
	oe_runmake all-desktop PREFIX=${prefix}
}

do_install () {
        oe_runmake PREFIX=${prefix} DESTDIR=${D} install-program
}

repository: Terentyev/familiar-linux

repo_name: Terentyev/familiar-linux


text:
include neutrino-plugins-ni-env.inc

DESCRIPTION = "Graphical e-mail client."

# We need an extra template for configure.ac
SRC_URI += " \
	file://configure.ac.${PLUGIN_NAME} \
"

repository: neutrino-hd/meta-neutrino

repo_name: neutrino-hd/meta-neutrino


text:
@article{Choi2012,
 author = {Choi, Eunseo and Buck, W. Roger},
 doi = {10.1029/2011JB008741},
 file = {PDF:C\:\\Users\\eddy_\\Google Drive\\Zotero\\storage\\KWRFPK3D\\Choi, Buck - 2012 - Constraints on the strength of faults from the geometry of rider blocks in continental and oceanic core complexes.pdf:application/pdf},
 issn = {0148-0227},
 journal = {Journal of Geophysical Research},
 keywords = {core complex, fault strength, large-offset normal fault, rafted blocks, rider blocks},
 month = {April},
 number = {B4},
 pages = {B04410},
 title = {Constraints on the strength of faults from the geometry of rider blocks in continental and oceanic core complexes},
 url = {http://www.agu.org/pubs/crossref/2012/2011JB008741.shtml},
 urldate = {2012-04-28},
 volume = {117},
 year = {2012}
}


text:
package chrono

func SetupCenturyParsing(v int) {
	overrideCentury = new(int)
	*overrideCentury = v
}

func TearDownCenturyParsing() {
	overrideCentury = nil
}

var DivideAndRoundIntFunc = divideAndRoundInt

repository: go-chrono/chrono

repo_name: go-chrono/chrono


text:
package xmssmt

import (
	"io/ioutil"
	"os"
	"sync"
	"testing"
)

func TestMerkleTree(t *testing.T) {
	var th uint32 = 3
	var h, i uint32
	mt := newMerkleTree(th, 2)
	for h = 0; h < th; h++ {
		for i = 0; i < 1<<(th-h-1); i++ {
			mt.Node(h, i)[0] = byte(h)
			mt.Node(h, i)[1] = byte(i)
		}
	}
	for h = 0; h < th; h++ {
		for i = 0; i < 1<<(th-h-1); i++ {
			if mt.Node(h, i)[0] != byte(h) ||
				mt.Node(h, i)[1] != byte(i) {
				t.Errorf("Node (%d,%d) has wrong value", h, i)
			}
		}
	}
}

func BenchmarkGenSubTree5SHA2_256(b *testing.B) {
	benchmarkGenSubTree(NewContextFromOid(true, 0x8), b)
}
func BenchmarkGenSubTree5SHA2_512(b *testing.B) {
	benchmarkGenSubTree(NewContextFromOid(true, 0x10), b)
}
func BenchmarkGenSubTree5SHAKE_256(b *testing.B) {
	benchmarkGenSubTree(NewContextFromOid(true, 0x18), b)
}
func BenchmarkGenSubTree5SHAKE_512(b *testing.B) {
	benchmarkGenSubTree(NewContextFromOid(true, 0x20), b)
}
func BenchmarkGenSubTree10SHA2_256(b *testing.B) {
	if testing.Short() {
		b.Skip("Skipping genSubTree 2^10")
	}
	benchmarkGenSubTree(NewContextFromOid(false, 0x1), b)
}
func BenchmarkGenSubTree16SHA2_256(b *testing.B) {
	if testing.Short() {
		b.Skip("Skipping genSubTree 2^16")
	}
	benchmarkGenSubTree(NewContextFromOid(false, 0x2), b)
}

func benchmarkGenSubTree(ctx *Context, b *testing.B) {
	skSeed := make([]byte, ctx.p.N)
	pubSeed := make([]byte, ctx.p.N)
	pad := ctx.newScratchPad()
	var sta SubTreeAddress
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		ctx.genSubTree(pad, skSeed, pubSeed, sta)
	}
}

func BenchmarkGenLeafSHA2_256(b *testing.B) {
	benchmarkGenLeaf(NewContextFromOid(false, 1), b)
}
func BenchmarkGenLeafSHA2_512(b *testing.B) {
	benchmarkGenLeaf(NewContextFromOid(false, 4), b)
}
func BenchmarkGenLeafSHAKE_256(b *testing.B) {
	benchmarkGenLeaf(NewContextFromOid(false, 7), b)
}
func BenchmarkGenLeafSHAKE_512(b *testing.B) {
	benchmarkGenLeaf(NewContextFromOid(false, 10), b)
}

func benchmarkGenLeaf(ctx *Context, b *testing.B) {
	skSeed := make([]byte, ctx.p.N)
	pubSeed := make([]byte, ctx.p.N)
	out := make([]byte, ctx.p.N)
	var lTreeAddr, otsAddr address
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		ctx.genLeafInto(ctx.newScratchPad(),
			ctx.precomputeHashes(pubSeed, skSeed), lTreeAddr, otsAddr, out)
	}
}

func TestSeqNoRetirement(t *testing.T) {
	if testing.Short() {
		t.Skip("Skipping TestSeqNoRetirement")
	}
	SetLogger(t)
	defer SetLogger(nil)
	dir, err := ioutil.TempDir("", "go-xmssmt-tests")
	if err != nil {
		t.Fatalf("TempDir: %v", err)
	}
	defer os.RemoveAll(dir)

	ctx := NewContextFromName("XMSSMT-SHA2_20/4_256")
	sk, _, err := ctx.GenerateKeyPair(dir + "/key")
	sk.BorrowExactly(4000)
	if err != nil {
		t.Fatalf("GenerateKeyPair(): %v", err)
	}
	var wg sync.WaitGroup
	wg.Add(4)
	for w := 0; w < 4; w++ {
		go func() {
			for i := 0; i < 1000; i++ {
				sk.Sign([]byte("some message"))
			}
			wg.Done()
		}()
	}
	wg.Wait()

	t.Logf("unretired=%d cachedSubTrees=%d", sk.UnretiredSeqNos(),
		sk.CachedSubTrees())

	if err = sk.Close(); err != nil {
		t.Fatalf("sk.Close(): %v", err)
	}
}

repository: bwesterb/go-xmssmt

repo_name: bwesterb/go-xmssmt


text:
set(LIBPROXY_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})

if(NOT LIBPROXY_LIBRARIES)
  _find_package(${ARGS})
endif()

set(CMAKE_MODULE_PATH ${LIBPROXY_PREV_MODULE_PATH})

repository: JackBoos/vcpkg

repo_name: JackBoos/vcpkg

gha_license_id: NOASSERTION


text:
package handler

import (
	"github.com/gophergala2016/gobench/backend/model"
	"github.com/labstack/echo"
	"github.com/labstack/gommon/log"
	"net/http"
	"strings"
)

func (h *handler) SearchbackHandler(c *echo.Context) error {
	searchq := strings.ToLower(c.Query("search"))
	packages, err := h.back.Model.Package.GetItems(searchq)
	if err != nil {
		log.Error(err)
		return c.Redirect(http.StatusTemporaryRedirect, "/")
	}
	if len(searchq) > 50 && len(searchq) < 4 {
		return c.Redirect(http.StatusBadRequest, "/")
	}
	data := struct {
		Packages []model.PackageRow
	}{
		packages,
	}
	return c.Render(http.StatusOK, "search.html", data)
}


text:
/*
  The MIT License (MIT)

  Copyright (c) 2013 thomasfredericks

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
*/

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * * * Enhanced to read pins from shift-in by Robert Schneider
  (Robert.Schneider@aramar.de) Main code by Thomas O Fredericks (tof@t-o-f.info)
  Previous contributions by Eric Lowry, Jim Schimpf and Tom Harkaway
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * * * */

#ifndef BounceShiftIn_h
#define BounceShiftIn_h

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

// Uncomment the following line for "LOCK-OUT" debounce method
//#define BOUNCE_LOCK_OUT

// Uncomment the following line for "BOUNCE_WITH_PROMPT_DETECTION" debounce
// method
//#define BOUNCE_WITH_PROMPT_DETECTION

#include <inttypes.h>

/**
    @example bounce.ino
    Simple example of the BounceShiftInlibrary that switches the debug LED when
   a button is pressed.
*/

/**
    @example change.ino
    This example toggles the debug LED (pin 13) on or off when a button on pin 2
   is pressed.
*/

/**
    @example bounce_multiple.ino
    Detect the falling edge of multiple buttons. Eight buttons with internal
   pullups. Toggles a LED when any button is pressed. Buttons on pins
   2,3,4,5,6,7,8,9
*/

/**
    @example bounce2buttons.ino
     Example of two instances of the BounceShiftInclass that switches the debug
   LED when either one of the two buttons is pressed.
 */

/**
     The BounceShiftInclass.
     */
class BounceShiftIn {
 public:
  /*!
      @brief  Create an instance of the BounceShiftIn class.

      @code

      // Create an instance of the BounceShiftIn class.
      BounceShiftIn() button;

      @endcode
  */
  BounceShiftIn();

  /**
   * Obtain the current state of the shift-in registers and store it in
   * currentState.
   */
  static uint16_t loop();

  /**
   * Set the pin numbers for talking to the shift-in register.
   */
  static void setup(uint8_t latch, uint8_t clock, uint8_t data);

  /*!
      @brief  Attach to a pin and sets that pin's mode (INPUT, INPUT_PULLUP or
     OUTPUT).

      @param    pin
                The pin that is to be debounced.
      @param    mode
                A valid Arduino pin mode (INPUT, INPUT_PULLUP or OUTPUT).
      @return True if the event read was successful, otherwise false.
  */
  void attach(int pin, int mode);

  /**
  Attach to a pin for advanced users. Only attach the pin this way once you have
  previously set it up. Otherwise use attach(int pin, int mode).
  */
  void attach(int pin);

  /**
  @brief  Sets the debounce interval in milliseconds.

  @param    interval_millis
              The interval time in milliseconds.

   */
  void interval(uint16_t interval_millis);

  /*!
      @brief   Updates the pin's state.

      Because BounceShiftIn does not use interrupts, you have to "update" the
     object before reading its value and it has to be done as often as possible
     (that means to include it in your loop()). Only call update() once per
     loop().

      @return True if the pin changed state.
  */

  bool update();

  /**
   @brief Returns the pin's state (HIGH or LOW).

   @return HIGH or LOW.
   */
  bool read();

  /**
  @brief Returns true if pin signal transitions from high to low.
  */
  bool fell();

  /**
  @brief Returns true if pin signal transitions from low to high.
  */
  bool rose();

  /**
   @brief Returns the duration in milliseconds of the current state.

   Is reset to 0 once the pin rises ( rose() ) or falls ( fell() ).

    @return The duration in milliseconds (unsigned long) of the current state.
   */

  unsigned long duration();

 protected:
  // Variables that are used throughout all BounceShiftIn instances
  static uint8_t dataPin;   // data pin of shift-in register chip
  static uint8_t clockPin;  // clock pin of shift-in register chip
  static uint8_t latchPin;  // latch pin of shift-in register chip
  static uint16_t
      currentState;  // last read state of the two shift-in register chips

  unsigned long previous_millis;
  uint16_t interval_millis;
  uint8_t state;
  uint8_t pin;
  unsigned long stateChangeLastTime;
  virtual bool readCurrentState() { return currentState & (1 << pin); }

 private:
  static uint8_t shiftIn();
  inline void changeState();
  inline void setStateFlag(const uint8_t flag) { state |= flag; }
  inline void unsetStateFlag(const uint8_t flag) { state &= ~flag; }
  inline void toggleStateFlag(const uint8_t flag) { state ^= flag; }
  inline bool getStateFlag(const uint8_t flag) { return ((state & flag) != 0); }
};

#endif

repository: robertaramar/BounceShiftIn

repo_name: robertaramar/BounceShiftIn


text:
require wireguard.inc

SRCREV = "18fbcd68a35a892527345dc5679d0b2d860ee004"

SRC_URI = "git://git.zx2c4.com/wireguard-linux-compat;protocol=https;branch=master"

inherit module kernel-module-split

DEPENDS = "virtual/kernel libmnl"

# This module requires Linux 3.10 higher and several networking related
# configuration options. For exact kernel requirements visit:
# https://www.wireguard.io/install/#kernel-requirements

EXTRA_OEMAKE:append = " \
    KERNELDIR=${STAGING_KERNEL_DIR} \
    "

MAKE_TARGETS = "module"
MODULES_INSTALL_TARGET = "module-install"

RRECOMMENDS:${PN} = "kernel-module-xt-hashlimit"
MODULE_NAME = "wireguard"

# WireGuard has been merged into Linux kernel >= 5.6 and therefore this compatibility module is no longer required.
# OE-core post dunfell has moved to use kernel 5.8 which now means we cant build this module in world builds
# for reference machines e.g. qemu
EXCLUDE_FROM_WORLD = "1"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded