text:
"/>
<wire x1="0.2" y1="0.2" x2="0" y2="0.6" width="0.127" layer="48"/>
<wire x1="0" y1="-0.7" x2="0.2" y2="-0.3" width="0.127" layer="48"/>
<wire x1="0.2" y1="-0.3" x2="-0.2" y2="-0.3" width="0.127" layer="48"/>
<wire x1="-0.2" y1="-0.3" x2="0" y2="-0.7" width="0.127" layer="48"/>
<smd name="1" x="-2.3" y="-3.15" dx="1.5" dy="2" layer="1"/>
<smd name="2" x="0" y="-3.15" dx="1.5" dy="2" layer="1"/>
<smd name="3" x="2.3" y="-3.15" dx="1.5" dy="2" layer="1"/>
<smd name="4" x="0" y="3.15" dx="3.8" dy="2" layer="1"/>
<text x="-2.54" y="0.0508" size="1.27" layer="25">>NAME</text>
<text x="-2.54" y="-1.3208" size="1.27" layer="27">>VALUE</text>
<text x="0.4" y="0.4" size="0.254" layer="48">direction of pcb</text>
<text x="0.4" y="-0.05" size="0.254" layer="48">transportation for</text>
<text x="0.4" y="-0.5" size="0.254" layer="48">wavesoldering</text>
<rectangle x1="-0.9271" y1="1.1303" x2="0.9271" y2="4.3307" layer="51" rot="R270"/>
<rectangle x1="-0.9271" y1="-3.1623" x2="0.9271" y2="-2.2987" layer="51" rot="R270"/>
<rectangle x1="-3.2385" y1="-3.1623" x2="-1.3843" y2="-2.2987" layer="51" rot="R270"/>
<rectangle x1="1.3843" y1="-3.1623" x2="3.2385" y2="-2.2987" layer="51" rot="R270"/>
<rectangle x1="-0.9271" y1="1.1303" x2="0.9271" y2="4.3307" layer="51" rot="R270"/>
<rectangle x1="-0.9271" y1="-3.1623" x2="0.9271" y2="-2.2987" layer="51" rot="R270"/>
<rectangle x1="-3.2385" y1="-3.1623" x2="-1.3843" y2="-2.2987" layer="51" rot="R270"/>
<rectangle x1="1.3843" y1="-3.1623" x2="3.2385" y2="-2.2987" layer="51" rot="R270"/>
</package>
<package name="D2PACK" library_version="1">
<description>D2PACK

Source: INTERNATIONAL RECTIFIER, irg4bc15ud-s.pdf</description>
<wire x1="-5.1308" y1="-4.0894" x2="5.1308" y2="-4.0894" width="0.254" layer="21"/>
<wire x1="5.1308" y1="-4.0894" x2="5.1308" y2="4.445" width="0.254" layer="51"/>
<wire x1="5.1308" y1="4.445" x2="3.1242" y2="5.8166" width="0.254" layer="51"/>
<wire x1="3.1242" y1="5.8166" x2="-3.3782" y2="5.8166" width="0.254" layer="51"/>
<wire x1="-3.3782" y1="5.8166" x2="-5.1308" y2="4.699" width="0.254" layer="51"/>
<wire x1="-5.1308" y1="4.699" x2="-5.1308" y2="4.445" width="0.254" layer="51"/>
<wire x1="-5.1308" y1="4.445" x2="-5.1308" y2="-4.0894" width="0.254" layer="51"/>
<wire x1="-5.1308" y1="4.445" x2="5.1308" y2="4.445" width="0.254" layer="51"/>
<wire x1="-5.1308" y1="-4.0894" x2="-5.1308" y2="-2.3114" width="0.254" layer="21"/>
<wire x1="5.1308" y1="-4.0894" x2="5.1308" y2="-2.3114" width="0.254" layer="21"/>
<smd name="1" x="-2.54" y="-8.89" dx="2.0828" dy="3.81" layer="1"/>
<smd name="3" x="2.54" y="-8.89" dx="2.0828" dy="3.81" layer="1"/>
<smd name="2" x="0" y="2.54" dx="11.43" dy="8.89" layer="1"/>
<text x="-5.588" y="7.239" size="1.27" layer="25">>NAME</text>
<text x="-3.81" y="-3.429" size="1.27" layer="27">>VALUE</text>
<rectangle x1="-3.0988" y1="-9.525" x2="-1.9812" y2="-8.1026" layer="51"/>
<rectangle x1="-3.2512" y1="-8.1534" x2="-1.8288" y2="-6.731" layer="51"/>
<rectangle x1="-3.2512" y1="-6.731" x2="-1.8288" y2="-4.2418" layer="21"/>
<rectangle x1="1.9812" y1="-9.525" x2="3.0988" y2="-8.1026" layer="51"/>
<rectangle x1="1.8288" y1="-8.1534" x2="3.2512" y2="-6.731" layer="51"/>
<rectangle x1="1.8288" y1="-6.731" x2="3.2512" y2="-4.2418" layer="21"/>
<rectangle x1="-0.7112" y1="-6.731" x2="0.7112" y2="-4.2418" layer="21"/>
</package>
</packages>
<symbols>
<symbol name="78ADJ" library_version="1">
<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="2.54" width="0.4064" layer="94"/>
<wire x1="5.08" y1="2.54" x2="-5.08" y2="2.54" width="0.4064" layer="94"/>
<wire x1="-5.08" y1="2.54" x2="-5.08" y2="-5.08" width="0.4064" layer="94"/>
<text x="2.54" y="-7.62" size="1.778" layer="95">>NAME</text>
<text x="2.54" y="-10.16" size="1.778" layer="96">>VALUE</text>
<text x="-2.032" y="-4.318" size="1.524" layer="95">ADJ</text>
<text x="-4.445" y="-0.635" size="1.524" layer="95">IN</text>
<text x="0.127" y="-0.635" size="1.524" layer="95">OUT</text>
<pin name="IN" x="-7.62" y="0" visible="off" length="short" direction="in"/>
<pin name="ADJ" x="0" y="-7.62" visible="off" length="short" direction="in" rot="R90"/>
<pin name="OUT" x="7.62" y="0" visible="off" length="short" direction="pas" rot="R180"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="LD117A?*" prefix="IC" library_version="1">
<description>Low drop fixed and adjustable positive voltage regulators 1 A

Source: http://www.st.com/stonline/products/literature/ds/7194/ld1117axx.pdf</description>
<gates>
<gate name="G$1" symbol="78ADJ" x="0" y="0"/>
</gates>
<devices>
<device name="DT" package="DPACK">
<connects>
<connect gate="G$1" pin="ADJ" pad="1"/>
<connect gate="G$1" pin="IN" pad="3"/>
<connect gate="G$1" pin="OUT" pad="4"/>
</connects>
<technologies>
<technology name="-TR"/>
<technology name="12TR"/>
<technology name="18TR"/>
<technology name="25TR"/>
<technology name="28TR"/>
<technology name="33TR"/>
<technology name="50TR"/>
</technologies>
</device>
<device name="V" package="TO220L1">
<connects>
<connect gate="G$1" pin="ADJ" pad="1"/>
<connect gate="G$1" pin="IN" pad="3"/>
<connect gate="G$1" pin="OUT" pad="2"/>
</connects>
<technologies>
<technology name=""/>
<technology name="12"/>
<technology name="18"/>
<technology name="25"/>
<technology name="28"/>
<technology name="33"/>
<technology name="50"/>
</technologies>
</device>
<device name="S" package="SOT223">
<connects>
<connect gate="G$1" pin="ADJ" pad="1"/>
<connect gate="G$1" pin="IN" pad="3"/>
<connect gate="G$1" pin="OUT" pad="4"/>
</connects>
<technologies>
<technology name="12TR"/>
<technology name="18TR"/>
<technology name="25TR"/>
<technology name="28TR"/>
<technology name="33TR"/>
<technology name="50TR"/>
<technology name="TR"/>
</technologies>
</device>
<device name="D2MTR" package="D2PACK">
<connects>
<connect gate="G$1" pin="ADJ" pad="1"/>
<connect gate="G$1" pin="IN" pad="3"/>
<connect gate="G$1" pin="OUT" pad="2"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-GPS">
<description>
SparkFun GPS, Antennas

This library contains GPS modules, GPS antennas, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="JST-6PIN-1MM">
<description>
6-Pin Vertical JST Connector

1.0mm pitch

JST-SH type

Common interface for SparkFun GPS modules.

Datasheet
</description>
<wire x1="-2.5" y1="-1.598" x2="2.58" y2="-1.598" width="0.2032" layer="21"/>
<wire x1="3.342" y1="1.577" x2="4.104" y2="1.577" width="0.2032" layer="21"/>
<wire x1="4.104" y1="1.577" x2="4.104" y2="0.688" width="0.2032" layer="21"/>
<circle x="-3.262" y="2.212" radius="0.1047" width="0.4064" layer="21"/>
<smd name="P$1" x="-3.8" y="-0.775" dx="1.2" dy="1.8" layer="1"/>
<smd name="P$2" x="3.8" y="-0.775" dx="1.2" dy="1.8" layer="1"/>
<smd name="1" x="-2.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<smd name="2" x="-1.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<smd name="3" x="-0.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<smd name="4" x="0.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<smd name="5" x="1.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<smd name="6" x="2.5" y="1.45" dx="0.6" dy="1.55" layer="1"/>
<text x="-4.659" y="0.18" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">>NAME</text>
<text x="4.739" y="0.18" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center">>VALUE</text>
<wire x1="-4" y1="-1.471" x2="4" y2="-1.471" width="0.127" layer="51"/>
<wire x1="4" y1="-1.471" x2="4" y2="1.471" width="0.127" layer="51"/>
<wire x1="4" y1="1.471" x2="-4" y2="1.471" width="0.127" layer="51"/>
<wire x1="-4" y1="1.471" x2="-4" y2="-1.471" width="0.127" layer="51"/>
<wire x1="-4.104" y1="1.577" x2="-4.104" y2="0.688" width="0.2032" layer="21"/>
<wire x1="-3.342" y1="1.577" x2="-4.104" y2="1.577" width="0.2032" layer="21"/>
</package>
</packages>
<symbols>
<symbol name="GP-735T">
<description>
GP-735 - Easy-to-use, Ultra-high performance, GPS Smart Antenna Module

ADH-tech GP-735 is a slim, ultra-high performance, easy to use GPS smart antenna module designed with u-blox’s latest 7th generation single chip. This feature rich GPS module not only shortens the design efforts but also provides powerful functions. The compact design allows fast adoption and high yield production. The power control feature is very convenient to turn on/off power just via GPIO control pin. It’s  especially useful to turn off power as the GPS function is not needed in the host applications.

Features

Easy adoption with best performance

Built-in narrow patch antenna for dimension demanding application

Models of I-PEX RF connector option available for using external antenna

Built-in backup power pin for faster position fix

UART-TTL interface support

Minimum RF and EMI efforts

Fully implementation of ultra-high performance u-blox 7 single chip architecture

High tracking sensitivity of -162dBm!

Low power consumption of 37mA for average tracking

Hardware power saving control pin allowing power on/off GPS via GPIO

Windows location sensor support

A-GPS support

Datasheet
</description>
<pin name="VCC" x="-10.16" y="5.08" length="short"/>
<pin name="RX" x="-10.16" y="0" length="short"/>
<pin name="TX" x="-10.16" y="2.54" length="short"/>
<pin name="V_BAT" x="-10.16" y="-2.54" length="short"/>
<pin name="PWR_CTRL" x="-10.16" y="-5.08" length="short"/>
<pin name="GND" x="-10.16" y="-7.62" length="short"/>
<wire x1="-7.62" y1="7.62" x2="-7.62" y2="-10.16" width="0.254" layer="94"/>
<wire x1="-7.62" y1="-10.16" x2="7.62" y2="-10.16" width="0.254" layer="94"/>
<wire x1="7.62" y1="-10.16" x2="7.62" y2="7.62" width="0.254" layer="94"/>
<wire x1="7.62" y1="7.62" x2="-7.62" y2="7.62" width="0.254" layer="94"/>
<text x="-7.62" y="7.874" size="1.778" layer="95" font="vector">>NAME</text>
<text x="-7.62" y="-10.414" size="1.778" layer="96" font="vector" align="top-left">>VALUE</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="GP-735T" prefix="J">
<description>
ADH-tech GP-735 - Easy-to-use, Ultra-high performance, GPS Smart Antenna Module

ADH-tech GP-735 is a slim, ultra-high performance, easy to use GPS smart antenna module designed with u-blox’s latest 7th generation single chip. This feature rich GPS module not only shortens the design efforts but also provides powerful functions. The compact design allows fast adoption and high yield production. The power control feature is very convenient to turn on/off power just via GPIO control pin. It’s  especially useful to turn off power as the GPS function is not needed in the host applications.

Datasheet

SparkFun Products

GPS Receiver - GP-735 (56 Channel) (GPS-13670)

</description>
<gates>
<gate name="G$1" symbol="GP-735T" x="0" y="0"/>
</gates>
<devices>
<device name="-VERTICAL" package="JST-6PIN-1MM">
<connects>
<connect gate="G$1" pin="GND" pad="1"/>
<connect gate="G$1" pin="PWR_CTRL" pad="6"/>
<connect gate="G$1" pin="RX" pad="4"/>
<connect gate="G$1" pin="TX" pad="3"/>
<connect gate="G$1" pin="VCC" pad="2"/>
<connect gate="G$1" pin="V_BAT" pad="5"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CONN-08249"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-IC-Power">
<description>
SparkFun Power Driver and Management ICs

In this library you'll find anything that has to do with power delivery, or making power supplies.

Contents:

LDOs

Boost/Buck controllers

Charge pump controllers

Power sequencers

Power switches

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="78XXL">
<description>VOLTAGE REGULATOR</description>
<wire x1="-5.207" y1="-1.27" x2="5.207" y2="-1.27" width="0.1524" layer="21"/>
<wire x1="5.207" y1="14.605" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="5.207" y1="-1.27" x2="5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="5.207" y1="11.176" x2="4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="4.318" y1="11.176" x2="4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="4.318" y1="12.7" x2="5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="5.207" y1="12.7" x2="5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="-1.27" x2="-5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="11.176" x2="-4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="11.176" x2="-4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="12.7" x2="-5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="12.7" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<circle x="0" y="11.176" radius="1.8034" width="0.1524" layer="21"/>
<circle x="0" y="11.176" radius="4.191" width="0" layer="42"/>
<circle x="0" y="11.176" radius="4.191" width="0" layer="43"/>
<pad name="IN" x="-2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="GND" x="0" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="OUT" x="2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<text x="-3.81" y="5.08" size="1.778" layer="25" ratio="10">>NAME</text>
<text x="-3.937" y="2.54" size="1.778" layer="27" ratio="10">>VALUE</text>
<text x="-4.445" y="7.874" size="0.9906" layer="21" ratio="10">A15,2mm</text>
<text x="-0.508" y="0" size="1.27" layer="51" ratio="10">-</text>
<text x="-3.048" y="0" size="1.27" layer="51" ratio="10">I</text>
<text x="2.032" y="0" size="1.27" layer="51" ratio="10">O</text>
<rectangle x1="1.905" y1="-2.159" x2="3.175" y2="-1.27" layer="21"/>
<rectangle x1="1.905" y1="-3.81" x2="3.175" y2="-2.159" layer="51"/>
<rectangle x1="-0.635" y1="-2.159" x2="0.635" y2="-1.27" layer="21"/>
<rectangle x1="-3.175" y1="-2.159" x2="-1.905" y2="-1.27" layer="21"/>
<rectangle x1="-0.635" y1="-3.81" x2="0.635" y2="-2.159" layer="51"/>
<rectangle x1="-3.175" y1="-3.81" x2="-1.905" y2="-2.159" layer="51"/>
<hole x="0" y="11.176" drill="3.302"/>
</package>
<package name="TO220-IGO">
<wire x1="5.08" y1="-1.905" x2="-5.08" y2="-1.905" width="0.2032" layer="21"/>
<wire x1="-5.08" y1="-1.905" x2="-5.08" y2="1.905" width="0.2032" layer="21"/>
<wire x1="-5.08" y1="1.905" x2="-5.08" y2="2.54" width="0.2032" layer="21"/>
<wire x1="-5.08" y1="2.54" x2="5.08" y2="2.54" width="0.2032" layer="21"/>
<wire x1="5.08" y1="2.54" x2="5.08" y2="1.905" width="0.2032" layer="21"/>
<wire x1="5.08" y1="1.905" x2="5.08" y2="-1.905" width="0.2032" layer="21"/>
<wire x1="5.08" y1="1.905" x2="-5.08" y2="1.905" width="0.2032" layer="21"/>
<wire x1="5.08" y1="2.54" x2="8.255" y2="2.54" width="0.2032" layer="51"/>
<wire x1="8.255" y1="2.54" x2="8.255" y2="-5.715" width="0.2032" layer="51"/>
<wire x1="8.255" y1="-5.715" x2="9.525" y2="-5.715" width="0.2032" layer="51"/>
<wire x1="9.525" y1="-5.715" x2="9.525" y2="3.81" width="0.2032" layer="51"/>
<wire x1="9.525" y1="3.81" x2="-9.525" y2="3.81" width="0.2032" layer="51"/>
<wire x1="-9.525" y1="3.81" x2="-9.525" y2="-5.715" width="0.2032" layer="51"/>
<wire x1="-9.525" y1="-5.715" x2="-8.255" y2="-5.715" width="0.2032" layer="51"/>
<wire x1="-8.255" y1="-5.715" x2="-8.255" y2="2.54" width="0.2032" layer="51"/>
<wire x1="-8.255" y1="2.54" x2="-5.08" y2="2.54" width="0.2032" layer="51"/>
<pad name="IN" x="-2.54" y="0" drill="1" diameter="1.8796" shape="square"/>
<pad name="GND" x="0" y="0" drill="1" diameter="1.8796"/>
<pad name="OUT" x="2.54" y="0" drill="1" diameter="1.8796"/>
</package>
<package name="TO-92">
<description>TO 92</description>
<wire x1="-2.0946" y1="-1.651" x2="-0.7863" y2="2.5485" width="0.2032" layer="21" curve="-111.098957" cap="flat"/>
<wire x1="0.7863" y1="2.5484" x2="2.0945" y2="-1.651" width="0.2032" layer="21" curve="-111.09954" cap="flat"/>
<wire x1="-2.0945" y1="-1.651" x2="2.0945" y2="-1.651" width="0.2032" layer="21"/>
<wire x1="-2.6549" y1="-0.254" x2="-2.2537" y2="-0.254" width="0.2032" layer="21"/>
<wire x1="-0.2863" y1="-0.254" x2="0.2863" y2="-0.254" width="0.2032" layer="21"/>
<wire x1="2.2537" y1="-0.254" x2="2.6549" y2="-0.254" width="0.2032" layer="21"/>
<pad name="3" x="1.27" y="0" drill="0.8128" diameter="1.8796"/>
<pad name="2" x="0" y="1.905" drill="0.8128" diameter="1.8796"/>
<pad name="1" x="-1.27" y="0" drill="0.8128" diameter="1.8796"/>
<text x="3.175" y="0.635" size="0.4064" layer="25" ratio="10">>NAME</text>
<text x="3.175" y="-1.27" size="0.4064" layer="27" ratio="10">>VALUE</text>
</package>
<package name="TO-220-ALT">
<wire x1="-5.207" y1="-1.27" x2="5.207" y2="-1.27" width="0.1524" layer="21"/>
<wire x1="5.207" y1="14.605" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="5.207" y1="-1.27" x2="5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="5.207" y1="11.176" x2="4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="4.318" y1="11.176" x2="4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="4.318" y1="12.7" x2="5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="5.207" y1="12.7" x2="5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="-1.27" x2="-5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="11.176" x2="-4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="11.176" x2="-4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="12.7" x2="-5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="12.7" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<circle x="0" y="11.176" radius="1.8034" width="0.1524" layer="21"/>
<circle x="0" y="11.176" radius="3.048" width="0" layer="42"/>
<circle x="0" y="11.176" radius="3.048" width="0" layer="43"/>
<pad name="IN" x="-2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="GND" x="0" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="OUT" x="2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<text x="-3.81" y="5.08" size="1.778" layer="25" ratio="10">>NAME</text>
<text x="-3.937" y="2.54" size="1.778" layer="27" ratio="10">>VALUE</text>
<text x="-0.508" y="0" size="1.27" layer="51" ratio="10">-</text>
<text x="-3.048" y="0" size="1.27" layer="51" ratio="10">I</text>
<text x="2.032" y="0" size="1.27" layer="51" ratio="10">O</text>
<rectangle x1="1.905" y1="-2.159" x2="3.175" y2="-1.27" layer="21"/>
<rectangle x1="1.905" y1="-3.81" x2="3.175" y2="-2.159" layer="51"/>
<rectangle x1="-0.635" y1="-2.159" x2="0.635" y2="-1.27" layer="21"/>
<rectangle x1="-3.175" y1="-2.159" x2="-1.905" y2="-1.27" layer="21"/>
<rectangle x1="-0.635" y1="-3.81" x2="0.635" y2="-2.159" layer="51"/>
<rectangle x1="-3.175" y1="-3.81" x2="-1.905" y2="-2.159" layer="51"/>
<hole x="0" y="11.176" drill="3.302"/>
</package>
<package name="TO-252">
<wire x1="3.2766" y1="3.8354" x2="3.277" y2="-2.159" width="0.2032" layer="21"/>
<wire x1="3.277" y1="-2.159" x2="-3.277" y2="-2.159" width="0.2032" layer="21"/>
<wire x1="-3.277" y1="-2.159" x2="-3.2766" y2="3.8354" width="0.2032" layer="21"/>
<wire x1="-3.277" y1="3.835" x2="3.2774" y2="3.8346" width="0.2032" layer="51"/>
<wire x1="-2.5654" y1="3.937" x2="-2.5654" y2="4.6482" width="0.2032" layer="51"/>
<wire x1="-2.5654" y1="4.6482" x2="-2.1082" y2="5.1054" width="0.2032" layer="51"/>
<wire x1="-2.1082" y1="5.1054" x2="2.1082" y2="5.1054" width="0.2032" layer="51"/>
<wire x1="2.1082" y1="5.1054" x2="2.5654" y2="4.6482" width="0.2032" layer="51"/>
<wire x1="2.5654" y1="4.6482" x2="2.5654" y2="3.937" width="0.2032" layer="51"/>
<wire x1="2.5654" y1="3.937" x2="-2.5654" y2="3.937" width="0.2032" layer="51"/>
<rectangle x1="-2.7178" y1="-5.1562" x2="-1.8542" y2="-2.2606" layer="51"/>
<rectangle x1="1.8542" y1="-5.1562" x2="2.7178" y2="-2.2606" layer="51"/>
<rectangle x1="-0.4318" y1="-3.0226" x2="0.4318" y2="-2.2606" layer="21"/>
<smd name="1" x="-2.28" y="-4.8" dx="1" dy="1.6" layer="1"/>
<smd name="2" x="2.28" y="-4.8" dx="1" dy="1.6" layer="1"/>
<smd name="3" x="0" y="2.5" dx="5.4" dy="6.2" layer="1"/>
<text x="-3.81" y="-2.54" size="1.27" layer="25" rot="R90">>NAME</text>
<text x="5.08" y="-2.54" size="1.27" layer="27" rot="R90">>VALUE</text>
<polygon width="0.1998" layer="51">
<vertex x="-2.5654" y="3.937"/>
<vertex x="-2.5654" y="4.6482"/>
<vertex x="-2.1082" y="5.1054"/>
<vertex x="2.1082" y="5.1054"/>
<vertex x="2.5654" y="4.6482"/>
<vertex x="2.5654" y="3.937"/>
</polygon>
</package>
</packages>
<symbols>
<symbol name="78XX">
<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="2.54" width="0.4064" layer="94"/>
<wire x1="5.08" y1="2.54" x2="-5.08" y2="2.54" width="0.4064" layer="94"/>
<wire x1="-5.08" y1="2.54" x2="-5.08" y2="-5.08" width="0.4064" layer="94"/>
<text x="2.54" y="-7.62" size="1.778" layer="95">>NAME</text>
<text x="2.54" y="-10.16" size="1.778" layer="96">>VALUE</text>
<text x="-2.032" y="-4.318" size="1.524" layer="95">GND</text>
<text x="-4.445" y="-0.635" size="1.524" layer="95">IN</text>
<text x="0.635" y="-0.635" size="1.524" layer="95">OUT</text>
<pin name="IN" x="-7.62" y="0" visible="off" length="short" direction="in"/>
<pin name="GND" x="0" y="-7.62" visible="off" length="short" direction="in" rot="R90"/>
<pin name="OUT" x="7.62" y="0" visible="off" length="short" direction="pas" rot="R180"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="V_REG_78XX" prefix="U" uservalue="yes">
<description>Voltage Regulator
Standard 78xx regulator. IGO (Input Ground Output).

Spark Fun Electronics SKU : COM-00107</description>
<gates>
<gate name="G$1" symbol="78XX" x="0" y="0"/>
</gates>
<devices>
<device name="SIDE" package="78XXL">
<connects>
<connect gate="G$1" pin="GND" pad="GND"/>
<connect gate="G$1" pin="IN" pad="IN"/>
<connect gate="G$1" pin="OUT" pad="OUT"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="SINK" package="TO220-IGO">
<connects>
<connect gate="G$1" pin="GND" pad="GND"/>
<connect gate="G$1" pin="IN" pad="IN"/>
<connect gate="G$1" pin="OUT" pad="OUT"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="TO-92_UNTESTED" package="TO-92">
<connects>
<connect gate="G$1" pin="GND" pad="2"/>
<connect gate="G$1" pin="IN" pad="3"/>
<connect gate="G$1" pin="OUT" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="-TO-220" package="TO-220-ALT">
<connects>
<connect gate="G$1" pin="GND" pad="GND"/>
<connect gate="G$1" pin="IN" pad="IN"/>
<connect gate="G$1" pin="OUT" pad="OUT"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="VREG-08450" constant="no"/>
<attribute name="SF_ID" value="COM-00107" constant="no"/>
</technology>
</technologies>
</device>
<device name="7812" package="TO-252">
<connects>
<connect gate="G$1" pin="GND" pad="3"/>
<connect gate="G$1" pin="IN" pad="1"/>
<connect gate="G$1" pin="OUT" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="VREG-12370" constant="no"/>
<attribute name="VALUE" value="+12v" 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>
</classes>
<parts>
<part name="J1" library="SparkFun-Connectors" deviceset="CONN_03X2" device="SHROUD"/>
<part name="SUPPLY1" library="SparkFun-PowerSymbols" deviceset="5V" device=""/>
<part name="GND3" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="U$1" library="SparkFun-RF" deviceset="XTEND-DIGI-MODEM" device=""/>
<part name="GND9" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="SUPPLY7" library="SparkFun-PowerSymbols" deviceset="5V" device=""/>
<part name="TX_LED" library="SparkFun-LED" deviceset="LED-BLUE" device="1206" value="BLUE"/>
<part name="RX_LED" library="SparkFun-LED" deviceset="LED-BLUE" device="1206" value="BLUE"/>
<part name="GND10" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="R2" library="SparkFun-Resistors" deviceset="680OHM" device="-0603-1/10W-5%" value="680"/>
<part name="R3" library="SparkFun-Resistors" deviceset="680OHM" device="-0603-1/10W-5%" value="680"/>
<part name="U2" library="SparkFun-Sensors" deviceset="TMP102" device=""/>
<part name="C3" library="SparkFun-Capacitors" deviceset="0.1UF" device="-0603-25V-(+80/-20%)" value="0.1uF"/>
<part name="R4" library="SparkFun-Resistors" deviceset="10KOHM" device="-0603-1/10W-1%" value="10k"/>
<part name="GND11" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="R5" library="SparkFun-Resistors" deviceset="1KOHM" device="-0603-1/10W-1%" value="1k"/>
<part name="R6" library="SparkFun-Resistors" deviceset="1KOHM" device="-0603-1/10W-1%" value="1k"/>
<part name="SUPPLY8" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="R7" library="SparkFun-Resistors" deviceset="10KOHM" device="-0603-1/10W-1%" value="10k"/>
<part name="SUPPLY9" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="U3" library="SparkFun-Sensors" deviceset="MPL3115A2" device=""/>
<part name="C4" library="SparkFun-Capacitors" deviceset="0.1UF" device="-0603-25V-(+80/-20%)" value="0.1uF"/>
<part name="GND12" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="SUPPLY10" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="SUPPLY11" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="GND13" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="C5" library="SparkFun-Capacitors" deviceset="0.1UF" device="-KIT-EZ-50V-20%" value="0.1uF"/>
<part name="C6" library="SparkFun-Capacitors" deviceset="1.0UF" device="-0603-16V-10%" value="1.0uF"/>
<part name="C7" library="SparkFun-Capacitors" deviceset="10UF-POLAR" device="-0603-6.3V-20%(TANT)" value="10uF"/>
<part name="GND14" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="U4" library="SparkFun-Sensors" deviceset="MPU-9250" device="" value="9DoF IMU"/>
<part name="SUPPLY12" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="GND15" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="GND16" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="C8" library="SparkFun-Capacitors" deviceset="0.1UF" device="-KIT-EZ-50V-20%" value="0.1uF"/>
<part name="C9" library="SparkFun-Capacitors" deviceset="0.1UF" device="-KIT-EZ-50V-20%" value="0.1uF"/>
<part name="GND17" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="GND18" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="IC1" library="v-reg" library_urn="urn:adsk.eagle:library:409" deviceset="LD117A?*" device="V" technology="33"/>
<part name="C10" library="SparkFun-Capacitors" deviceset="10UF" device="-0603-6.3V-20%" value="10uF"/>
<part name="C11" library="SparkFun-Capacitors" deviceset="0.1UF" device="-0603-25V-(+80/-20%)" value="0.1uF"/>
<part name="GND19" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="SUPPLY13" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="J3" library="SparkFun-GPS" deviceset="GP-735T" device="-VERTICAL"/>
<part name="SUPPLY14" library="SparkFun-PowerSymbols" deviceset="3.3V" device=""/>
<part name="GND20" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="J4" library="SparkFun-Connectors" deviceset="JST_2MM_MALE" device=""/>
<part name="J5" library="SparkFun-Connectors" deviceset="JST_2MM_MALE" device=""/>
<part name="J6" library="SparkFun-Connectors" deviceset="JST_2MM_MALE" device=""/>
<part name="J7" library="SparkFun-Connectors" deviceset="JST_2MM_MALE" device=""/>
<part name="L7805" library="SparkFun-IC-Power" deviceset="V_REG_78XX" device="-TO-220"/>
<part name="SUPPLY15" library="SparkFun-PowerSymbols" deviceset="5V" device=""/>
<part name="C12" library="SparkFun-Capacitors" deviceset="0.1UF" device="-0603-25V-(+80/-20%)" value="0.1uF"/>
<part name="GND21" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="C13" library="SparkFun-Capacitors" deviceset="1.0NF/1000PF" device="-0603-50V-10%" value=".33uF"/>
<part name="U5" library="SparkFun-IC-Microcontroller" deviceset="ATMEGA128" device="-SMD"/>
<part name="XTAL1" library="SparkFun-Clocks" deviceset="CRYSTAL-16MHZ" device="SMD-5X3.2" value="16MHz"/>
<part name="C14" library="SparkFun-Capacitors" deviceset="22PF" device="-0603-50V-5%" value="22pF"/>
<part name="C15" library="SparkFun-Capacitors" deviceset="22PF" device="-0603-50V-5%" value="22pF"/>
<part name="GND22" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="R8" library="SparkFun-Resistors" deviceset="10KOHM" device="-0603-1/10W-1%" value="10k"/>
<part name="SUPPLY16" library="SparkFun-PowerSymbols" deviceset="5V" device=""/>
<part name="GND1" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="SUPPLY4" library="SparkFun-PowerSymbols" deviceset="5V" device=""/>
</parts>
<sheets>
<sheet>
<plain>
<frame x1="76.2" y1="-45.72" x2="127" y2="2.54" columns="8" rows="5" layer="91"/>
<text x="83.82" y="-7.62" size="2.1844" layer="91">ICSP PROGRAMMING</text>
<frame x1="76.2" y1="7.62" x2="162.56" y2="93.98" columns="8" rows="5" layer="91"/>
<text x="83.82" y="83.82" size="2.1844" layer="91">XBEE RADIO</text>
<text x="-38.1" y="175.26" size="2.1844" layer="91">I2C SENSORS</text>
<frame x1="-45.72" y1="99.06" x2="180.34" y2="185.42" columns="8" rows="5" layer="91"/>
<frame x1="132.08" y1="-45.72" x2="198.12" y2="2.54" columns="8" rows="5" layer="91"/>
<text x="139.7" y="-7.62" size="2.1844" layer="91">SERIAL GPS MODULE</text>
<frame x1="-45.72" y1="-45.72" x2="68.58" y2="93.98" columns="8" rows="5" layer="91"/>
<text x="40.64" y="83.82" size="2.1844" layer="91">ATMEGA 2561</text>
</plain>
<instances>
<instance part="J1" gate="G$1" x="101.6" y="-22.86"/>
<instance part="SUPPLY1" gate="G$1" x="111.76" y="-17.78"/>
<instance part="GND3" gate="1" x="111.76" y="-30.48"/>
<instance part="U$1" gate="G$1" x="139.7" y="33.02"/>
<instance part="GND9" gate="1" x="127" y="50.8" rot="R180"/>
<instance part="SUPPLY7" gate="G$1" x="121.92" y="48.26"/>
<instance part="TX_LED" gate="G$1" x="93.98" y="63.5" rot="R180"/>
<instance part="RX_LED" gate="G$1" x="114.3" y="63.5" rot="R180"/>
<instance part="GND10" gate="1" x="104.14" y="76.2" rot="R180"/>
<instance part="R2" gate="G$1" x="93.98" y="50.8" rot="R90"/>
<instance part="R3" gate="G$1" x="114.3" y="50.8" rot="R90"/>
<instance part="U2" gate="G$1" x="-7.62" y="139.7"/>
<instance part="C3" gate="G$1" x="-33.02" y="139.7"/>
<instance part="R4" gate="G$1" x="7.62" y="127" rot="R90"/>
<instance part="GND11" gate="1" x="7.62" y="116.84"/>
<instance part="R5" gate="G$1" x="20.32" y="152.4" rot="R90"/>
<instance part="R6" gate="G$1" x="30.48" y="152.4" rot="R90"/>
<instance part="SUPPLY8" gate="G$1" x="25.4" y="162.56"/>
<instance part="R7" gate="G$1" x="12.7" y="152.4" rot="R90"/>
<instance part="SUPPLY9" gate="G$1" x="12.7" y="162.56"/>
<instance part="U3" gate="G$1" x="71.12" y="134.62"/>
<instance part="C4" gate="G$1" x="43.18" y="127"/>
<instance part="GND12" gate="1" x="43.18" y="116.84"/>
<instance part="SUPPLY10" gate="G$1" x="-33.02" y="162.56"/>
<instance part="SUPPLY11" gate="G$1" x="55.88" y="167.64"/>
<instance part="GND13" gate="1" x="53.34" y="116.84"/>
<instance part="C5" gate="G$1" x="63.5" y="157.48"/>
<instance part="C6" gate="G$1" x="76.2" y="157.48"/>
<instance part="C7" gate="G$1" x="88.9" y="160.02"/>
<instance part="GND14" gate="1" x="76.2" y="147.32"/>
<instance part="U4" gate="G$1" x="142.24" y="144.78"/>
<instance part="SUPPLY12" gate="G$1" x="121.92" y="167.64"/>
<instance part="GND15" gate="1" x="162.56" y="127"/>
<instance part="GND16" gate="1" x="121.92" y="127"/>
<instance part="C8" gate="G$1" x="111.76" y="157.48"/>
<instance part="C9" gate="G$1" x="111.76" y="134.62"/>
<instance part="GND17" gate="1" x="111.76" y="149.86"/>
<instance part="GND18" gate="1" x="111.76" y="127"/>
<instance part="J3" gate="G$1" x="170.18" y="-22.86"/>
<instance part="SUPPLY14" gate="G$1" x="154.94" y="-15.24"/>
<instance part="GND20" gate="1" x="154.94" y="-35.56"/>
<instance part="U5" gate="G$1" x="22.86" y="27.94"/>
<instance part="XTAL1" gate="G$1" x="-7.62" y="45.72" rot="R90"/>
<instance part="C14" gate="G$1" x="-20.32" y="50.8" rot="R90"/>
<instance part="C15" gate="G$1" x="-20.32" y="40.64" rot="R90"/>
<instance part="GND22" gate="1" x="-35.56" y="45.72" rot="R270"/>
<instance part="R8" gate="G$1" x="-15.24" y="73.66" rot="R90"/>
<instance part="SUPPLY16" gate="G$1" x="-15.24" y="81.28"/>
<instance part="GND1" gate="1" x="48.26" y="-33.02"/>
<instance part="SUPPLY4" gate="G$1" x="0" y="81.28"/>
</instances>
<busses>
</busses>
<nets>
<net name="GND" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="6"/>
<pinref part="GND3" gate="1" pin="GND"/>
<wire x1="109.22" y1="-25.4" x2="111.76" y2="-25.4" width="0.1524" layer="91"/>
<wire x1="111.76" y1="-25.4" x2="111.76" y2="-27.94" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$1" gate="G$1" pin="GND"/>
<pinref part="GND9" gate="1" pin="GND"/>
<wire x1="129.54" y1="45.72" x2="127" y2="45.72" width="0.1524" layer="91"/>
<wire x1="127" y1="45.72" x2="127" y2="48.26" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="R4" gate="G$1" pin="1"/>
<wire x1="7.62" y1="121.92" x2="7.62" y2="119.38" width="0.1524" layer="91"/>
<pinref part="GND11" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="C4" gate="G$1" pin="2"/>
<pinref part="GND12" gate="1" pin="GND"/>
<wire x1="43.18" y1="124.46" x2="43.18" y2="119.38" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U3" gate="G$1" pin="GND"/>
<wire x1="58.42" y1="132.08" x2="53.34" y2="132.08" width="0.1524" layer="91"/>
<pinref part="GND13" gate="1" pin="GND"/>
<wire x1="53.34" y1="132.08" x2="53.34" y2="119.38" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="C5" gate="G$1" pin="2"/>
<wire x1="63.5" y1="154.94" x2="63.5" y2="152.4" width="0.1524" layer="91"/>
<wire x1="63.5" y1="152.4" x2="76.2" y2="152.4" width="0.1524" layer="91"/>
<pinref part="C6" gate="G$1" pin="2"/>
<wire x1="76.2" y1="152.4" x2="76.2" y2="154.94" width="0.1524" layer="91"/>
<wire x1="76.2" y1="152.4" x2="88.9" y2="152.4" width="0.1524" layer="91"/>
<junction x="76.2" y="152.4"/>
<pinref part="C7" gate="G$1" pin="-"/>
<wire x1="88.9" y1="152.4" x2="88.9" y2="154.94" width="0.1524" layer="91"/>
<pinref part="GND14" gate="1" pin="GND"/>
<wire x1="76.2" y1="152.4" x2="76.2" y2="149.86" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="TX_LED" gate="G$1" pin="C"/>
<wire x1="93.98" y1="68.58" x2="93.98" y2="71.12" width="0.1524" layer="91"/>
<pinref part="RX_LED" gate="G$1" pin="C"/>
<wire x1="114.3" y1="68.58" x2="114.3" y2="71.12" width="0.1524" layer="91"/>
<wire x1="93.98" y1="71.12" x2="104.14" y2="71.12" width="0.1524" layer="91"/>
<pinref part="GND10" gate="1" pin="GND"/>
<wire x1="104.14" y1="71.12" x2="114.3" y2="71.12" width="0.1524" layer="91"/>
<wire x1="104.14" y1="71.12" x2="104.14" y2="73.66" width="0.1524" layer="91"/>
<junction x="104.14" y="71.12"/>
</segment>
<segment>
<pinref part="U4" gate="G$1" pin="AD0/SDO"/>
<wire x1="160.02" y1="139.7" x2="162.56" y2="139.7" width="0.1524" layer="91"/>
<pinref part="GND15" gate="1" pin="GND"/>
<wire x1="162.56" y1="139.7" x2="162.56" y2="129.54" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U4" gate="G$1" pin="GND"/>
<wire x1="124.46" y1="139.7" x2="121.92" y2="139.7" width="0.1524" layer="91"/>
<wire x1="121.92" y1="139.7" x2="121.92" y2="129.54" width="0.1524" layer="91"/>
<pinref part="GND16" gate="1" pin="GND"/>
</segment>
<segment>
<pinref part="C8" gate="G$1" pin="2"/>
<pinref part="GND17" gate="1" pin="GND"/>
<wire x1="111.76" y1="154.94" x2="111.76" y2="152.4" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="C9" gate="G$1" pin="2"/>
<pinref part="GND18" gate="1" pin="GND"/>
<wire x1="111.76" y1="132.08" x2="111.76" y2="129.54" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="J3" gate="G$1" pin="GND"/>
<wire x1="160.02" y1="-30.48" x2="154.94" y2="-30.48" width="0.1524" layer="91"/>
<pinref part="GND20" gate="1" pin="GND"/>
<wire x1="154.94" y1="-30.48" x2="154.94" y2="-33.02" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="GND22" gate="1" pin="GND"/>
<wire x1="-33.02" y1="45.72" x2="-30.48" y2="45.72" width="0.1524" layer="91"/>
<wire x1="-30.48" y1="45.72" x2="-30.48" y2="50.8" width="0.1524" layer="91"/>
<pinref part="C14" gate="G$1" pin="1"/>
<wire x1="-30.48" y1="50.8" x2="-25.4" y2="50.8" width="0.1524" layer="91"/>
<pinref part="C15" gate="G$1" pin="1"/>
<wire x1="-25.4" y1="40.64" x2="-30.48" y2="40.64" width="0.1524" layer="91"/>
<wire x1="-30.48" y1="40.64" x2="-30.48" y2="45.72" width="0.1524" layer="91"/>
<junction x="-30.48" y="45.72"/>
<pinref part="U5" gate="G$1" pin="AGND"/>
<wire x1="2.54" y1="53.34" x2="-15.24" y2="53.34" width="0.1524" layer="91"/>
<wire x1="-15.24" y1="53.34" x2="-15.24" y2="60.96" width="0.1524" layer="91"/>
<wire x1="-15.24" y1="60.96" x2="-30.48" y2="60.96" width="0.1524" layer="91"/>
<wire x1="-30.48" y1="60.96" x2="-30.48" y2="50.8" width="0.1524" layer="91"/>
<junction x="-30.48" y="50.8"/>
</segment>
<segment>
<pinref part="U5" gate="G$1" pin="GND@22"/>
<pinref part="GND1" gate="1" pin="GND"/>
<wire x1="43.18" y1="-25.4" x2="48.26" y2="-25.4" width="0.1524" layer="91"/>
<wire x1="48.26" y1="-25.4" x2="48.26" y2="-27.94" width="0.1524" layer="91"/>
<pinref part="U5" gate="G$1" pin="GND@53"/>
<wire x1="48.26" y1="-27.94" x2="48.26" y2="-30.48" width="0.1524" layer="91"/>
<wire x1="43.18" y1="-27.94" x2="48.26" y2="-27.94" width="0.1524" layer="91"/>
<junction x="48.26" y="-27.94"/>
</segment>
</net>
<net name="MISO" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="1"/>
<wire x1="93.98" y1="-20.32" x2="86.36" y2="-20.32" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PB3(MISO)"/>
<wire x1="43.18" y1="35.56" x2="53.34" y2="35.56" width="0.1524" layer="91"/>

</segment>
</net>
<net name="SCK" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="3"/>
<wire x1="93.98" y1="-22.86" x2="86.36" y2="-22.86" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PB1(SCK)"/>
<wire x1="43.18" y1="40.64" x2="53.34" y2="40.64" width="0.1524" layer="91"/>

</segment>
</net>
<net name="RESET" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="5"/>
<wire x1="93.98" y1="-25.4" x2="86.36" y2="-25.4" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="RESET"/>
<pinref part="R8" gate="G$1" pin="1"/>
<wire x1="2.54" y1="66.04" x2="-15.24" y2="66.04" width="0.1524" layer="91"/>
<wire x1="-15.24" y1="66.04" x2="-15.24" y2="68.58" width="0.1524" layer="91"/>
<wire x1="-15.24" y1="66.04" x2="-17.78" y2="66.04" width="0.1524" layer="91"/>
<junction x="-15.24" y="66.04"/>

</segment>
</net>
<net name="MOSI" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="4"/>
<wire x1="109.22" y1="-22.86" x2="116.84" y2="-22.86" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PB2(MOSI)"/>
<wire x1="43.18" y1="38.1" x2="53.34" y2="38.1" width="0.1524" layer="91"/>

</segment>
</net>
<net name="5V" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="2"/>
<wire x1="109.22" y1="-20.32" x2="111.76" y2="-20.32" width="0.1524" layer="91"/>
<pinref part="SUPPLY1" gate="G$1" pin="5V"/>
<wire x1="111.76" y1="-20.32" x2="111.76" y2="-17.78" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U$1" gate="G$1" pin="VCC"/>
<pinref part="SUPPLY7" gate="G$1" pin="5V"/>
<wire x1="129.54" y1="43.18" x2="121.92" y2="43.18" width="0.1524" layer="91"/>
<wire x1="121.92" y1="43.18" x2="121.92" y2="48.26" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="R8" gate="G$1" pin="2"/>
<pinref part="SUPPLY16" gate="G$1" pin="5V"/>
<wire x1="-15.24" y1="78.74" x2="-15.24" y2="81.28" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U5" gate="G$1" pin="AVCC"/>
<wire x1="2.54" y1="58.42" x2="0" y2="58.42" width="0.1524" layer="91"/>
<wire x1="0" y1="58.42" x2="0" y2="60.96" width="0.1524" layer="91"/>
<pinref part="U5" gate="G$1" pin="VCC@52"/>
<wire x1="0" y1="60.96" x2="2.54" y2="60.96" width="0.1524" layer="91"/>
<wire x1="0" y1="60.96" x2="0" y2="63.5" width="0.1524" layer="91"/>
<junction x="0" y="60.96"/>
<pinref part="U5" gate="G$1" pin="VCC@21"/>
<wire x1="0" y1="63.5" x2="2.54" y2="63.5" width="0.1524" layer="91"/>
<wire x1="0" y1="63.5" x2="0" y2="81.28" width="0.1524" layer="91"/>
<junction x="0" y="63.5"/>
<pinref part="SUPPLY4" gate="G$1" pin="5V"/>
</segment>
</net>
<net name="RADIO_SHDN" class="0">
<segment>
<pinref part="U$1" gate="G$1" pin="SHDN"/>
<wire x1="129.54" y1="30.48" x2="99.06" y2="30.48" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PG5"/>
<wire x1="2.54" y1="25.4" x2="-17.78" y2="25.4" width="0.1524" layer="91"/>

</segment>
</net>
<net name="RADIO_RX" class="0">
<segment>
<pinref part="U$1" gate="G$1" pin="DI"/>
<wire x1="129.54" y1="35.56" x2="104.14" y2="35.56" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PE1(TXD)"/>
<wire x1="2.54" y1="-7.62" x2="-12.7" y2="-7.62" width="0.1524" layer="91"/>

</segment>
</net>
<net name="RADIO_TX" class="0">
<segment>
<pinref part="U$1" gate="G$1" pin="DO"/>
<wire x1="129.54" y1="33.02" x2="104.14" y2="33.02" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PE0(RXD)"/>
<wire x1="2.54" y1="-5.08" x2="-12.7" y2="-5.08" width="0.1524" layer="91"/>

</segment>
</net>
<net name="N$3" class="0">
<segment>
<pinref part="U$1" gate="G$1" pin="GPO2"/>
<pinref part="R3" gate="G$1" pin="1"/>
<wire x1="129.54" y1="40.64" x2="114.3" y2="40.64" width="0.1524" layer="91"/>
<wire x1="114.3" y1="40.64" x2="114.3" y2="45.72" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$4" class="0">
<segment>
<pinref part="U$1" gate="G$1" pin="TX_PWR"/>
<pinref part="R2" gate="G$1" pin="1"/>
<wire x1="129.54" y1="38.1" x2="93.98" y2="38.1" width="0.1524" layer="91"/>
<wire x1="93.98" y1="38.1" x2="93.98" y2="45.72" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$5" class="0">
<segment>
<pinref part="R2" gate="G$1" pin="2"/>
<pinref part="TX_LED" gate="G$1" pin="A"/>
<wire x1="93.98" y1="55.88" x2="93.98" y2="60.96" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$6" class="0">
<segment>
<pinref part="R3" gate="G$1" pin="2"/>
<pinref part="RX_LED" gate="G$1" pin="A"/>
<wire x1="114.3" y1="55.88" x2="114.3" y2="60.96" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$8" class="0">
<segment>
<pinref part="U2" gate="G$1" pin="GND"/>
<wire x1="-20.32" y1="134.62" x2="-33.02" y2="134.62" width="0.1524" layer="91"/>
<pinref part="C3" gate="G$1" pin="2"/>
<wire x1="-33.02" y1="134.62" x2="-33.02" y2="137.16" width="0.1524" layer="91"/>
</segment>
</net>
<net name="SDA" class="0">
<segment>
<pinref part="U2" gate="G$1" pin="SDA"/>
<wire x1="2.54" y1="144.78" x2="30.48" y2="144.78" width="0.1524" layer="91"/>
<pinref part="R6" gate="G$1" pin="1"/>
<wire x1="30.48" y1="144.78" x2="30.48" y2="147.32" width="0.1524" layer="91"/>
<junction x="30.48" y="144.78"/>
<wire x1="30.48" y1="144.78" x2="33.02" y2="144.78" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U3" gate="G$1" pin="SDA"/>
<wire x1="83.82" y1="134.62" x2="93.98" y2="134.62" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U4" gate="G$1" pin="SDA/SDI"/>
<wire x1="160.02" y1="142.24" x2="170.18" y2="142.24" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PD1(SDA)"/>
<wire x1="43.18" y1="-5.08" x2="53.34" y2="-5.08" width="0.1524" layer="91"/>

</segment>
</net>
<net name="SCL" class="0">
<segment>
<pinref part="U2" gate="G$1" pin="SCL"/>
<wire x1="2.54" y1="142.24" x2="20.32" y2="142.24" width="0.1524" layer="91"/>
<pinref part="R5" gate="G$1" pin="1"/>
<wire x1="20.32" y1="142.24" x2="33.02" y2="142.24" width="0.1524" layer="91"/>
<wire x1="20.32" y1="142.24" x2="20.32" y2="147.32" width="0.1524" layer="91"/>
<junction x="20.32" y="142.24"/>

</segment>
<segment>
<pinref part="U3" gate="G$1" pin="SCL"/>
<wire x1="83.82" y1="137.16" x2="93.98" y2="137.16" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U4" gate="G$1" pin="SCL/SCLK"/>
<wire x1="160.02" y1="144.78" x2="170.18" y2="144.78" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PD0(SCL)"/>
<wire x1="43.18" y1="-2.54" x2="53.34" y2="-2.54" width="0.1524" layer="91"/>

</segment>
</net>
<net name="N$11" class="0">
<segment>
<pinref part="U2" gate="G$1" pin="ADD0"/>
<pinref part="R4" gate="G$1" pin="2"/>
<wire x1="2.54" y1="134.62" x2="7.62" y2="134.62" width="0.1524" layer="91"/>
<wire x1="7.62" y1="134.62" x2="7.62" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="3.3V" class="0">
<segment>
<pinref part="R5" gate="G$1" pin="2"/>
<wire x1="20.32" y1="157.48" x2="20.32" y2="160.02" width="0.1524" layer="91"/>
<wire x1="20.32" y1="160.02" x2="25.4" y2="160.02" width="0.1524" layer="91"/>
<pinref part="R6" gate="G$1" pin="2"/>
<wire x1="25.4" y1="160.02" x2="30.48" y2="160.02" width="0.1524" layer="91"/>
<wire x1="30.48" y1="160.02" x2="30.48" y2="157.48" width="0.1524" layer="91"/>
<pinref part="SUPPLY8" gate="G$1" pin="3.3V"/>
<wire x1="25.4" y1="160.02" x2="25.4" y2="162.56" width="0.1524" layer="91"/>
<junction x="25.4" y="160.02"/>
</segment>
<segment>
<pinref part="R7" gate="G$1" pin="2"/>
<pinref part="SUPPLY9" gate="G$1" pin="3.3V"/>
<wire x1="12.7" y1="157.48" x2="12.7" y2="162.56" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="U2" gate="G$1" pin="VCC"/>
<wire x1="-20.32" y1="144.78" x2="-25.4" y2="144.78" width="0.1524" layer="91"/>
<wire x1="-25.4" y1="144.78" x2="-25.4" y2="147.32" width="0.1524" layer="91"/>
<wire x1="-25.4" y1="147.32" x2="-33.02" y2="147.32" width="0.1524" layer="91"/>
<pinref part="C3" gate="G$1" pin="1"/>
<wire x1="-33.02" y1="147.32" x2="-33.02" y2="144.78" width="0.1524" layer="91"/>
<pinref part="SUPPLY10" gate="G$1" pin="3.3V"/>
<wire x1="-33.02" y1="147.32" x2="-33.02" y2="162.56" width="0.1524" layer="91"/>
<junction x="-33.02" y="147.32"/>
</segment>
<segment>
<pinref part="U3" gate="G$1" pin="VDDIO"/>
<wire x1="58.42" y1="129.54" x2="55.88" y2="129.54" width="0.1524" layer="91"/>
<pinref part="U3" gate="G$1" pin="VDD"/>
<wire x1="55.88" y1="137.16" x2="58.42" y2="137.16" width="0.1524" layer="91"/>
<pinref part="SUPPLY11" gate="G$1" pin="3.3V"/>
<wire x1="55.88" y1="129.54" x2="55.88" y2="137.16" width="0.1524" layer="91"/>
<junction x="55.88" y="137.16"/>
<pinref part="C5" gate="G$1" pin="1"/>
<wire x1="55.88" y1="137.16" x2="55.88" y2="165.1" width="0.1524" layer="91"/>
<wire x1="55.88" y1="165.1" x2="55.88" y2="167.64" width="0.1524" layer="91"/>
<wire x1="63.5" y1="162.56" x2="63.5" y2="165.1" width="0.1524" layer="91"/>
<wire x1="63.5" y1="165.1" x2="55.88" y2="165.1" width="0.1524" layer="91"/>
<junction x="55.88" y="165.1"/>
<pinref part="C6" gate="G$1" pin="1"/>
<wire x1="76.2" y1="162.56" x2="76.2" y2="165.1" width="0.1524" layer="91"/>
<wire x1="76.2" y1="165.1" x2="63.5" y2="165.1" width="0.1524" layer="91"/>
<junction x="63.5" y="165.1"/>
<pinref part="C7" gate="G$1" pin="+"/>
<wire x1="88.9" y1="162.56" x2="88.9" y2="165.1" width="0.1524" layer="91"/>
<wire x1="88.9" y1="165.1" x2="76.2" y2="165.1" width="0.1524" layer="91"/>
<junction x="76.2" y="165.1"/>
</segment>
<segment>
<pinref part="U4" gate="G$1" pin="VDDIO"/>
<wire x1="124.46" y1="149.86" x2="121.92" y2="149.86" width="0.1524" layer="91"/>
<wire x1="121.92" y1="149.86" x2="121.92" y2="152.4" width="0.1524" layer="91"/>
<pinref part="U4" gate="G$1" pin="VDD"/>
<wire x1="121.92" y1="152.4" x2="124.46" y2="152.4" width="0.1524" layer="91"/>
<junction x="121.92" y="152.4"/>
<pinref part="SUPPLY12" gate="G$1" pin="3.3V"/>
<wire x1="121.92" y1="152.4" x2="121.92" y2="165.1" width="0.1524" layer="91"/>
<wire x1="121.92" y1="165.1" x2="121.92" y2="167.64" width="0.1524" layer="91"/>
<wire x1="121.92" y1="165.1" x2="111.76" y2="165.1" width="0.1524" layer="91"/>
<junction x="121.92" y="165.1"/>
<pinref part="C8" gate="G$1" pin="1"/>
<wire x1="111.76" y1="165.1" x2="111.76" y2="162.56" width="0.1524" layer="91"/>
</segment>
<segment>
<pinref part="J3" gate="G$1" pin="VCC"/>
<pinref part="SUPPLY14" gate="G$1" pin="3.3V"/>
<wire x1="160.02" y1="-17.78" x2="154.94" y2="-17.78" width="0.1524" layer="91"/>
<wire x1="154.94" y1="-17.78" x2="154.94" y2="-15.24" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$9" class="0">
<segment>
<pinref part="U2" gate="G$1" pin="ALERT"/>
<pinref part="R7" gate="G$1" pin="1"/>
<wire x1="2.54" y1="137.16" x2="12.7" y2="137.16" width="0.1524" layer="91"/>
<wire x1="12.7" y1="137.16" x2="12.7" y2="147.32" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$10" class="0">
<segment>
<pinref part="U3" gate="G$1" pin="CAP"/>
<wire x1="58.42" y1="134.62" x2="43.18" y2="134.62" width="0.1524" layer="91"/>
<pinref part="C4" gate="G$1" pin="1"/>
<wire x1="43.18" y1="134.62" x2="43.18" y2="132.08" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$7" class="0">
<segment>
<pinref part="U4" gate="G$1" pin="REGOUT"/>
<wire x1="124.46" y1="142.24" x2="111.76" y2="142.24" width="0.1524" layer="91"/>
<pinref part="C9" gate="G$1" pin="1"/>
<wire x1="111.76" y1="142.24" x2="111.76" y2="139.7" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GPS_TX" class="0">
<segment>
<pinref part="J3" gate="G$1" pin="TX"/>
<wire x1="160.02" y1="-20.32" x2="144.78" y2="-20.32" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PD2"/>
<wire x1="43.18" y1="-7.62" x2="58.42" y2="-7.62" width="0.1524" layer="91"/>

</segment>
</net>
<net name="GPS_RX" class="0">
<segment>
<pinref part="J3" gate="G$1" pin="RX"/>
<wire x1="160.02" y1="-22.86" x2="144.78" y2="-22.86" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="U5" gate="G$1" pin="PD3"/>
<wire x1="43.18" y1="-10.16" x2="58.42" y2="-10.16" width="0.1524" layer="91"/>

</segment>
</net>
<net name="N$16" class="0">
<segment>
<pinref part="U5" gate="G$1" pin="XTAL2"/>
<wire x1="2.54" y1="48.26" x2="0" y2="48.26" width="0.1524" layer="91"/>
<wire x1="0" y1="48.26" x2="0" y2="50.8" width="0.1524" layer="91"/>
<wire x1="0" y1="50.8" x2="-7.62" y2="50.8" width="0.1524" layer="91"/>
<pinref part="XTAL1" gate="G$1" pin="2"/>
<wire x1="-7.62" y1="50.8" x2="-7.62" y2="48.26" width="0.1524" layer="91"/>
<pinref part="C14" gate="G$1" pin="2"/>
<wire x1="-7.62" y1="50.8" x2="-17.78" y2="50.8" width="0.1524" layer="91"/>
<junction x="-7.62" y="50.8"/>
</segment>
</net>
<net name="N$17" class="0">
<segment>
<pinref part="U5" gate="G$1" pin="XTAL1"/>
<wire x1="2.54" y1="43.18" x2="0" y2="43.18" width="0.1524" layer="91"/>
<wire x1="0" y1="43.18" x2="0" y2="40.64" width="0.1524" layer="91"/>
<wire x1="0" y1="40.64" x2="-7.62" y2="40.64" width="0.1524" layer="91"/>
<pinref part="XTAL1" gate="G$1" pin="1"/>
<wire x1="-7.62" y1="40.64" x2="-7.62" y2="43.18" width="0.1524" layer="91"/>
<pinref part="C15" gate="G$1" pin="2"/>
<wire x1="-7.62" y1="40.64" x2="-17.78" y2="40.64" width="0.1524" layer="91"/>
<junction x="-7.62" y="40.64"/>
</segment>
</net>
<net name="GPS_PWR" class="0">
<segment>
<pinref part="U5" gate="G$1" pin="PD4"/>
<wire x1="43.18" y1="-12.7" x2="58.42" y2="-12.7" width="0.1524" layer="91"/>

</segment>
<segment>
<pinref part="J3" gate="G$1" pin="PWR_CTRL"/>
<wire x1="160.02" y1="-27.94" x2="144.78" y2="-27.94" width="0.1524" layer="91"/>

</segment>
</net>
</nets>
</sheet>
<sheet>
<plain>
<frame x1="-30.48" y1="-2.54" x2="81.28" y2="60.96" columns="8" rows="5" layer="91"/>
<text x="-22.86" y="50.8" size="2.1844" layer="91">7.2V LITHIUM ION -> 3.3V REGULATED SUPPLY</text>
<frame x1="-30.48" y1="-71.12" x2="81.28" y2="-7.62" columns="8" rows="5" layer="91"/>
<text x="-22.86" y="-17.78" size="2.1844" layer="91">7.2V LITHIUM ION -> 5V REGULATED SUPPLY</text>
</plain>
<instances>
<instance part="IC1" gate="G$1" x="30.48" y="30.48"/>
<instance part="C10" gate="G$1" x="48.26" y="17.78"/>
<instance part="C11" gate="G$1" x="12.7" y="17.78"/>
<instance part="GND19" gate="1" x="30.48" y="5.08"/>
<instance part="SUPPLY13" gate="G$1" x="48.26" y="43.18"/>
<instance part="J4" gate="G$1" x="-12.7" y="27.94" rot="R90"/>
<instance part="J5" gate="G$1" x="-12.7" y="15.24" rot="R90"/>
<instance part="J6" gate="G$1" x="-15.24" y="-50.8" rot="R90"/>
<instance part="J7" gate="G$1" x="-15.24" y="-38.1" rot="R90"/>
<instance part="L7805" gate="G$1" x="33.02" y="-35.56"/>
<instance part="SUPPLY15" gate="G$1" x="50.8" y="-25.4"/>
<instance part="C12" gate="G$1" x="50.8" y="-48.26"/>
<instance part="GND21" gate="1" x="33.02" y="-60.96"/>
<instance part="C13" gate="G$1" x="15.24" y="-48.26"/>
</instances>
<busses>
</busses>
<nets>
<net name="N$13" class="0">
<segment>
<pinref part="IC1" gate="G$1" pin="IN"/>
<pinref part="C11" gate="G$1" pin="1"/>
<wire x1="22.86" y1="30.48" x2="12.7" y2="30.48" width="0.1524" layer="91"/>
<wire x1="12.7" y1="30.48" x2="12.7" y2="22.86" width="0.1524" layer="91"/>
<pinref part="J4" gate="G$1" pin="+"/>
<wire x1="-7.62" y1="30.48" x2="12.7" y2="30.48" width="0.1524" layer="91"/>
<junction x="12.7" y="30.48"/>
</segment>
</net>
<net name="GND" class="0">
<segment>
<pinref part="C11" gate="G$1" pin="2"/>
<wire x1="12.7" y1="15.24" x2="12.7" y2="10.16" width="0.1524" layer="91"/>
<wire x1="12.7" y1="10.16" x2="30.48" y2="10.16" width="0.1524" layer="91"/>
<pinref part="C10" gate="G$1" pin="2"/>
<wire x1="30.48" y1="10.16" x2="48.26" y2="10.16" width="0.1524" layer="91"/>
<wire x1="48.26" y1="10.16" x2="48.26" y2="15.24" width="0.1524" layer="91"/>
<pinref part="GND19" gate="1" pin="GND"/>
<wire x1="30.48" y1="7.62" x2="30.48" y2="10.16" width="0.1524" layer="91"/>
<junction x="30.48" y="10.16"/>
<pinref part="IC1" gate="G$1" pin="ADJ"/>
<wire x1="30.48" y1="22.86" x2="30.48" y2="10.16" width="0.1524" layer="91"/>
<pinref part="J5" gate="G$1" pin="-"/>
<wire x1="-7.62" y1="15.24" x2="-5.08" y2="15.24" width="0.1524" layer="91"/>
<wire x1="-5.08" y1="15.24" x2="-5.08" y2="10.16" width="0.1524" layer="91"/>
<wire x1="-5.08" y1="10.16" x2="12.7" y2="10.16" width="0.1524" layer="91"/>
<junction x="12.7" y="10.16"/>
</segment>
<segment>
<pinref part="L7805" gate="G$1" pin="GND"/>
<wire x1="33.02" y1="-58.42" x2="33.02" y2="-55.88" width="0.1524" layer="91"/>
<pinref part="GND21" gate="1" pin="GND"/>
<pinref part="C12" gate="G$1" pin="2"/>
<wire x1="33.02" y1="-55.88" x2="33.02" y2="-43.18" width="0.1524" layer="91"/>
<wire x1="50.8" y1="-50.8" x2="50.8" y2="-55.88" width="0.1524" layer="91"/>
<wire x1="50.8" y1="-55.88" x2="33.02" y2="-55.88" width="0.1524" layer="91"/>
<junction x="33.02" y="-55.88"/>
<pinref part="J6" gate="G$1" pin="-"/>
<wire x1="-10.16" y1="-50.8" x2="-7.62" y2="-50.8" width="0.1524" layer="91"/>
<wire x1="-7.62" y1="-50.8" x2="-7.62" y2="-55.88" width="0.1524" layer="91"/>
<wire x1="-7.62" y1="-55.88" x2="15.24" y2="-55.88" width="0.1524" layer="91"/>
<pinref part="C13" gate="G$1" pin="2"/>
<wire x1="15.24" y1="-55.88" x2="33.02" y2="-55.88" width="0.1524" layer="91"/>
<wire x1="15.24" y1="-50.8" x2="15.24" y2="-55.88" width="0.1524" layer="91"/>
<junction x="15.24" y="-55.88"/>
</segment>
</net>
<net name="3.3V" class="0">
<segment>
<pinref part="IC1" gate="G$1" pin="OUT"/>
<wire x1="38.1" y1="30.48" x2="48.26" y2="30.48" width="0.1524" layer="91"/>
<pinref part="C10" gate="G$1" pin="1"/>
<wire x1="48.26" y1="30.48" x2="48.26" y2="22.86" width="0.1524" layer="91"/>
<wire x1="48.26" y1="30.48" x2="48.26" y2="43.18" width="0.1524" layer="91"/>
<junction x="48.26" y="30.48"/>
<pinref part="SUPPLY13" gate="G$1" pin="3.3V"/>
</segment>
</net>
<net name="N$12" class="0">
<segment>
<pinref part="J5" gate="G$1" pin="+"/>
<wire x1="-7.62" y1="17.78" x2="-5.08" y2="17.78" width="0.1524" layer="91"/>
<wire x1="-5.08" y1="17.78" x2="-5.08" y2="27.94" width="0.1524" layer="91"/>
<pinref part="J4" gate="G$1" pin="-"/>
<wire x1="-5.08" y1="27.94" x2="-7.62" y2="27.94" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$14" class="0">
<segment>
<pinref part="J6" gate="G$1" pin="+"/>
<wire x1="-10.16" y1="-48.26" x2="-7.62" y2="-48.26" width="0.1524" layer="91"/>
<wire x1="-7.62" y1

license: MIT

repository: jmromeo/nhab

license_type: permissive

repo_name: jmromeo/nhab

branch_name: refs/heads/master

extension: sch


text:
="-48.26" x2="-7.62" y2="-38.1" width="0.1524" layer="91"/>
<pinref part="J7" gate="G$1" pin="-"/>
<wire x1="-7.62" y1="-38.1" x2="-10.16" y2="-38.1" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$15" class="0">
<segment>
<pinref part="J7" gate="G$1" pin="+"/>
<pinref part="L7805" gate="G$1" pin="IN"/>
<wire x1="-10.16" y1="-35.56" x2="15.24" y2="-35.56" width="0.1524" layer="91"/>
<pinref part="C13" gate="G$1" pin="1"/>
<wire x1="15.24" y1="-35.56" x2="25.4" y2="-35.56" width="0.1524" layer="91"/>
<wire x1="15.24" y1="-43.18" x2="15.24" y2="-35.56" width="0.1524" layer="91"/>
<junction x="15.24" y="-35.56"/>
</segment>
</net>
<net name="5V" class="0">
<segment>
<pinref part="L7805" gate="G$1" pin="OUT"/>
<wire x1="40.64" y1="-35.56" x2="50.8" y2="-35.56" width="0.1524" layer="91"/>
<wire x1="50.8" y1="-35.56" x2="50.8" y2="-25.4" width="0.1524" layer="91"/>
<pinref part="SUPPLY15" gate="G$1" pin="5V"/>
<pinref part="C12" gate="G$1" pin="1"/>
<wire x1="50.8" y1="-43.18" x2="50.8" y2="-35.56" width="0.1524" layer="91"/>
<junction x="50.8" y="-35.56"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</schematic>
</drawing>
<compatibility>
<note version="8.2" severity="warning">
Since Version 8.2, Eagle supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
</compatibility>
</eagle>


text:
#ifndef SHADOW_ALGORITHM_DETECT_MTCNN_HPP_
#define SHADOW_ALGORITHM_DETECT_MTCNN_HPP_

#include "method.hpp"

#include "core/network.hpp"

namespace Shadow {

struct BoxInfo {
  BoxF box;
  float box_reg[4], landmark[10];
};

using VecBoxInfo = std::vector<BoxInfo>;

class DetectMTCNN final : public Method {
 public:
  DetectMTCNN() = default;

  void Setup(const std::string& model_file) override;

  void Predict(const cv::Mat& im_mat, const RectF& roi, VecBoxF* boxes,
               std::vector<VecPointF>* Gpoints) override;

 private:
  void Process_net_p(const float* data, const VecInt& in_shape, float threshold,
                     float scale, VecBoxInfo* boxes);
  void Process_net_r(const float* data, const VecInt& in_shape, float threshold,
                     const VecBoxInfo& net_12_boxes, VecBoxInfo* boxes);
  void Process_net_o(const float* data, const VecInt& in_shape, float threshold,
                     const VecBoxInfo& net_24_boxes, VecBoxInfo* boxes);

  void CalculateScales(float height, float width, float factor, float max_side,
                       float min_side, VecFloat* scales);

  void BoxRegression(VecBoxInfo& boxes);

  void Box2SquareWithConstrain(VecBoxInfo& boxes, float height, float width);
  void BoxWithConstrain(VecBoxInfo& boxes, float height, float width);

  Network net_p_, net_r_, net_o_;
  VecFloat net_p_in_data_, net_r_in_data_, net_o_in_data_, thresholds_, scales_;
  VecInt net_p_in_shape_, net_r_in_shape_, net_o_in_shape_;
  VecBoxInfo net_p_boxes_, net_r_boxes_, net_o_boxes_;
  std::string in_p_str_, in_r_str_, in_o_str_, net_p_conv4_2_, net_p_prob1_,
      net_r_conv5_2_, net_r_prob1_, net_o_conv6_2_, net_o_conv6_3_,
      net_o_prob1_;
  int net_p_stride_, net_p_cell_size_;
  int net_r_in_c_, net_r_in_h_, net_r_in_w_, net_r_in_num_;
  int net_o_in_c_, net_o_in_h_, net_o_in_w_, net_o_in_num_;
  float factor_, max_side_, min_side_;
};

}  // namespace Shadow

#endif  // SHADOW_ALGORITHM_DETECT_MTCNN_HPP_

repository: junluan/shadow

repo_name: junluan/shadow

extension: hpp


text:
DESCRIPTION = "A simple, xor-based encryption tool"
SECTION = "base"
PRIORITY = "optional"
LICENSE = "LGPL"

SRC_URI = "http://www.fh-wedel.de/pub/fh-wedel/staff/herbert/misc/${PN}-${PV}.tar.gz"
S = "${WORKDIR}/cxcrypt"

CFLAGS_prepend = "-g -Wall -ansi -pedantic "
LDFLAGS_prepend = "-L. -lcxio "

do_compile() {
	oe_runmake
}

do_install() {
	install -d -m 755 ${D}/usr/bin
	install -d -m 755 ${D}/usr/lib
	install -d -m 755 ${D}/usr/include
	install -m 755 cxcrypt ${D}/usr/bin
	install -m 755 libcxio.a ${D}/usr/lib
	install -m 755 cxio.h ${D}/usr/include
}

do_stage() {
	install -d -m 755 ${STAGING_INCDIR}
	install -d -m 755 ${STAGING_LIBDIR}
	install -m 644 cxio.h ${STAGING_INCDIR}
	install -m 644 libcxio.a ${STAGING_LIBDIR}
}

FILES_${PN} = "/usr/bin/${PN}"
FILES_${PN}-dev = "/usr/lib/libcxio.a /usr/include"

SRC_URI[md5sum] = "8b90c19943f1b893cd53072de34f2ca6"
SRC_URI[sha256sum] = "100ec0afc6a5733f2b0c936058d8055d7965078c95ac187a573bf0a5a63cb268"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD

extension: bb


text:
package api

import (
	"context"
	"encoding/json"
	"os"
	"sync"
	"time"

	"github.com/bcext/cashutil"
	"github.com/copernet/go-electrum/electrum"
	"github.com/copernet/whccommon/log"
	common "github.com/copernet/whccommon/model"
	"github.com/copernet/whcwallet/config"
	"github.com/copernet/whcwallet/logic/ws"
	"github.com/copernet/whcwallet/model"
	"github.com/jinzhu/gorm"
	"github.com/sirupsen/logrus"
)

const (
	pingInterval = 5 * time.Second

	// Shutdown if ping to server failed five times continuously.
	// Because the current program rely on electrum server seriously.
	// This system will not supply any most services if connected electrum
	// server work ill.
	retryLimit = 5

	// max retry times fro subscribing bitcoin cash balance update
	retrySubscribe = 3
)

var (
	// prevent from creating two more connection instances
	create sync.Mutex
	node   *electrum.Node
)

func getNode() *electrum.Node {
	create.Lock()
	defer create.Unlock()

	if node != nil && node.Ping() == nil {
		return node
	}

	n := electrum.NewNode()
	if err := n.ConnectTCP(config.GetConf().Electron.Host + ":" + config.GetConf().Electron.Port); err != nil {
		logrus.Errorf("create connection to electrum error: %v", err)
		// unnecessary to star the application if electrum connection failed
		//os.Exit(1)
	}

	node = n
	return node
}

func init() {
	// debug mode. close this option in production environment
	electrum.DebugMode = true

	// keep connected to electrum server
	go keepAlive()

	tipChan, err := getNode().BlockchainHeadersSubscribe()
	if err != nil {
		logrus.Errorf("subscribe blockchain tip update from electrum error: %s", err)
	}

	go func() {
		for tip := range tipChan {
			ctx := log.NewContext()
			log.WithCtx(ctx).Infof("block tip:%s,height:%d", model.UpdateBlockTip, tip.BlockHeight)

			err := model.Publish(model.UpdateBlockTip, "tip updated")
			//logic.DumpHeaders(ctx, tip)

			if err != nil {
				logrus.Error("notify whcengine to update blockchain failed")
			}
		}
	}()

	c := make(chan []byte)

	go func() {
		err := model.Subscribe(context.Background(), model.BalanceUpdated, c)
		if err != nil {
			logrus.Errorf("subscribe channel for wormhole balance error: %s", err)

			// panic to exit program because of initial failed.
			panic(err)
		}
	}()

	go func() {
		for balMsg := range c {
			ctx := log.NewContext()
			log.WithCtx(ctx).Infof("Receive Message:%s from channel:", balMsg)

			var balNotify common.BalanceNotify
			err := json.Unmarshal(balMsg, &balNotify)
			if err != nil {
				log.WithCtx(ctx).Errorf("json unmarshal from redis balance notify failed: %v", err)
				continue
			}

			address, err := cashutil.DecodeAddress(balNotify.Address, config.GetChainParam())
			if err != nil {
				log.WithCtx(ctx).Errorf("mismatch bitcoin address format: %v, address: %s", err, balNotify.Address)
				continue
			}

			addr := address.EncodeAddress(true)
			// prepare for notification
			ret, err := model.GetNotificationItem(addr, balNotify.PropertyID, balNotify.TxID)
			if err != nil {
				if gorm.IsRecordNotFoundError(err) {
					log.WithCtx(ctx).Warnf("notification item not found: address: %s", addr)
				} else {
					log.WithCtx(ctx).Errorf("get notification item failed: %v, %s", err, addr)
				}
			} else {
				err = model.StoreNotification(addr, ret)
				if err != nil {
					log.WithCtx(ctx).Errorf("store notification item failed: %v, address: %s", err, addr)
				}
			}

			connection, ok := connMgr.GetConnForAddress(addr)
			// the client holds this address not online.
			if !ok {
				log.WithCtx(ctx).Warnf("the client holds this address not online, address: %s", addr)
				continue
			}

			bal, err := GetBalanceFromCache([]string{addr}, true)
			if err != nil {
				log.WithCtx(ctx).WithField(log.DefaultTraceLabel, connection.Uid).
					Errorf("get wormhole balance for address: %s error: %v", addr, err)
				continue
			}

			var msg ws.Message
			msg.Address = addr
			msg.Symbol = ws.CoinWormhole
			msg.Balance = bal[addr]

			log.WithCtx(ctx).WithFields(logrus.Fields{
				log.DefaultTraceLabel: connection.Uid,
			}).Debugf("Subscribe: receive wormhole balance update message from redis, address: %s; balance: %v", msg.Address, msg.Balance)
			// notify websocket
			connMgr.MsgChan <- msg
		}
	}()
}

func SyncBalanceForBCH(addr cashutil.Address) {
	base58Addr := addr.EncodeAddress(false)
	bench32Addr := addr.EncodeAddress(true)
	connection, ok := connMgr.GetConnForAddress(bench32Addr)
	// the client holds this address not online.
	if !ok {
		logrus.Infof("the client connection has closed, address: %s", bench32Addr)

		return
	}

	node := getNode()
	balChan, err := node.BlockchainAddressSubscribe(base58Addr)
	if err != nil {
		// retry for subscribing bitcoin cash balance update notification.
		for i := 0; i < retrySubscribe; i++ {
			balChan, err = node.BlockchainAddressSubscribe(base58Addr)
			if err == nil {
				break
			}
		}

		if err != nil {
			logrus.WithFields(logrus.Fields{
				log.DefaultTraceLabel: connection.Uid,
			}).Errorf("track bch balance failed: %v; address: %s", err, bench32Addr)

			return
		}
	}

	logrus.WithFields(logrus.Fields{
		log.DefaultTraceLabel: connection.Uid,
	}).Infof("start track bch balance for address: %s", bench32Addr)

	go func() {
		defer func() {
			connection.Close()

			logrus.WithFields(logrus.Fields{
				log.DefaultTraceLabel: connection.Uid,
			}).Infof("goroutine exit for balance track: %s", bench32Addr)
		}()

		for {
			select {
			case <-connection.Quit:
				logrus.WithFields(logrus.Fields{
					log.DefaultTraceLabel: connection.Uid,
				}).Infof("stop track bch balance for address: %s", bench32Addr)

				return
			case <-balChan:
				bal, err := getNode().BlockchainAddressGetBalance(base58Addr)
				if err != nil {
					// only log this error if encountering some error.
					// It will request again when the coin confirmed.
					// keep the goroutine running.
					logrus.WithFields(logrus.Fields{
						log.DefaultTraceLabel: connection.Uid,
					}).Errorf("get BCH balance from electrum server error: %v; address: %s", err, bench32Addr)

					continue
				}

				// assemble websocket message
				var msg ws.Message
				msg.Address = bench32Addr
				msg.Balance = ws.BCHBalance{
					Confirmed:   bal.Confirmed.ToBCH(),
					Unconfirmed: bal.Unconfirmed.ToBCH(),
				}
				msg.Symbol = ws.CoinBch

				logrus.WithFields(logrus.Fields{
					log.DefaultTraceLabel: connection.Uid,
				}).Debugf("Subscribe: receive bitcoin-cash balance message from electrum server, address: %s; balance: %v", bench32Addr, msg.Balance)

				// update websocket
				connMgr.MsgChan <- msg
			}
		}
	}()
}

func keepAlive() {
	var reties int

	for {
		if err := getNode().Ping(); err != nil {
			reties++
			if reties >= retryLimit {
				logrus.Error("Retry to connect to electrum server failed too many times")

				// Should find a HA resolution before stop exit program directly
				os.Exit(1)
			}

			logrus.Errorf("Ping to electrum server error: %v", err)
		} else if reties != 0 {
			reties = 0
		}

		time.Sleep(pingInterval)
	}
}

repository: EmbraceDD/whcwallet

repo_name: EmbraceDD/whcwallet

extension: go


text:
DESCRIPTION = "github.com/Sirupsen/logrus"

GO_IMPORT = "github.com/Sirupsen/logrus"

inherit go

SRC_URI = "git://github.com/Sirupsen/logrus;protocol=https;destsuffix=${PN}-${PV}/src/${GO_IMPORT}"
SRCREV = "10f801ebc38b33738c9d17d50860f484a0988ff5"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=8dadfef729c08ec4e631c4f6fc5d43a0"

GO_INSTALL = "\
    ${GO_IMPORT} \
    ${GO_IMPORT}/hooks/... \
    "

FILES_${PN} += "${GOBIN_FINAL}/*"

branch_name: refs/heads/develop

gha_license_id: MIT

gha_language: BitBake


text:
include_guard()

if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
    set(_msg "The build directory (${CMAKE_BINARY_DIR}) is the same as the ")
    string(APPEND _msg "current source directory (${CMAKE_CURRENT_SOURCE_DIR})")
    string(APPEND _msg ". This usually means you are attempting to build in ")
    string(APPEND _msg "source, which is strongly discouraged. Please rerun ")
    string(APPEND _msg "cmake with a build directory (use the -B flag) and ")
    string(APPEND _msg "delete ${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt ")
    string(APPEND _msg "which was created when you ran cmake in source.")
    message(FATAL_ERROR "${_msg}")
endif()

include(cpp/dependency/dependency)
include(cpp/fetch/fetch)
include(cpp/targets/targets)
include(cpp/user_api/user_api)

repository: blakemulnix/CMaize

repo_name: blakemulnix/CMaize

extension: cmake


text:
package plugin

import "github.com/vlorc/hprose-gateway-types"

var driver = make(map[string]types.PluginFactory)

func Query(name string) types.PluginFactory {
	if factory, ok := driver[name]; ok {
		return factory
	}
	return nil
}

func Register(factory types.PluginFactory, name ...string) {
	for _, v := range name {
		driver[v] = factory
	}
}

repository: vlorc/hprose-gateway-core

repo_name: vlorc/hprose-gateway-core


text:
SUMMARY = "OpenPOWER Debug Collector"
DESCRIPTION = "Application to log error during host checkstop and watchdog timeout"

PR = "r1"
PV = "1.0+git${SRCPV}"

inherit meson \
        obmc-phosphor-systemd \
        python3native \
        phosphor-dbus-yaml

require ${BPN}.inc
require ${BPN}-systemd-links.inc

DEPENDS += " \
        phosphor-logging \
        ${PYTHON_PN}-sdbus++-native \
        cli11 \
        "
S = "${WORKDIR}/git"

# This provides below 2 applications that are called into in case
# of host checkstop and host watchdog timeout respectively.
APPS = "checkstop watchdog"

DEBUG_TMPL = "openpower-debug-collector-{0}@.service"
SYSTEMD_SERVICE:${PN} += "${@compose_list(d, 'DEBUG_TMPL', 'APPS')}"

# Do not depend on phosphor-logging for native build
DEPENDS:remove:class-native = "phosphor-logging"

# Do not depend on phosphor-logging for native SDK build
DEPENDS:remove:class-nativesdk = "phosphor-logging"

repository: doylehuang/openbmc

repo_name: doylehuang/openbmc

gha_license_id: NOASSERTION


text:
package instance

import (
	"context"
	"fmt"
	"net/http"

	"github.com/scaleway/scaleway-cli/internal/core"
	"github.com/scaleway/scaleway-sdk-go/api/instance/v1"
	"github.com/scaleway/scaleway-sdk-go/scw"
)

//
// Commands
//

func userDataDeleteBuilder(c *core.Command) *core.Command {
	c.ArgSpecs.GetByName("server-id").Positional = true
	return c
}

func userDataSetBuilder(c *core.Command) *core.Command {
	c.ArgSpecs.GetByName("server-id").Positional = true

	*c.ArgSpecs.GetByName("content.name") = core.ArgSpec{
		Name:     "content",
		Short:    "Content of the user data",
		Required: true,
	}

	c.ArgSpecs.DeleteByName("content.content-type")
	c.ArgSpecs.DeleteByName("content.content")
	return c
}

func userDataGetBuilder(c *core.Command) *core.Command {
	c.ArgSpecs.GetByName("server-id").Positional = true

	c.AddInterceptors(func(ctx context.Context, argsI interface{}, runner core.CommandRunner) (interface{}, error) {
		req := argsI.(*instance.GetServerUserDataRequest)
		res, err := runner(ctx, argsI)
		if err != nil {
			if resErr, ok := err.(*scw.ResponseError); ok {
				if resErr.StatusCode == http.StatusNotFound {
					return nil, fmt.Errorf("'%s' key does not exists", req.Key)
				}
			}
			return nil, err
		}

		return res, nil
	})

	return c
}

repository: jerome-quere/scaleway-cli

repo_name: jerome-quere/scaleway-cli

gha_language: Go


text:
import { ILuUser } from '../user.model';
import { ILuApiService, ALuApiService } from '@lucca-front/ng/api';
import { Observable } from 'rxjs';

export interface ILuUserService<U extends ILuUser = ILuUser> extends ILuApiService<U> {
	getMe(): Observable<U>;
}

export abstract class ALuUserService<U extends ILuUser = ILuUser> extends ALuApiService<U> implements ILuUserService<U> {
	abstract getMe(): Observable<U>;
}

repository: LuccaSA/lucca-front

repo_name: LuccaSA/lucca-front

branch_name: refs/heads/rc

gha_language: TypeScript

extension: ts


text:
using Microsoft.VisualBasic.FileIO;
using Microsoft.Win32;
using Nitra.ViewModels;
using System;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using Nitra.Visualizer.ViewModels;
using ReactiveUI;

namespace Nitra.Visualizer
{
  internal partial class TestSuiteDialog : IViewFor<TestSuiteCreateOrEditViewModel>
  {
    private readonly SuiteVm _baseSuite;

    public TestSuiteDialog(SuiteVm baseSuite, TestSuiteCreateOrEditViewModel testSuiteCreateOrEditViewModel)
    {
      _baseSuite = baseSuite;

      DataContext = ViewModel = testSuiteCreateOrEditViewModel;

      this.OneWayBind(ViewModel, vm => vm.Languages, v => v.Languages.ItemsSource);
      this.OneWayBind(ViewModel, vm => vm.ProjectSupports, v => v.ProjectSupports.ItemsSource);
      this.OneWayBind(ViewModel, vm => vm.ParserLibs, v => v.ParserLibs.ItemsSource);
      this.OneWayBind(ViewModel, vm => vm.DynamicExtensions, v => v._dynamicExtensions.ItemsSource);
      this.OneWayBind(ViewModel, vm => vm.References, v => v.References.ItemsSource);

      InitializeComponent();
    }

    public string TestSuiteName
    {
      get { return ViewModel.SuiteName; }
    }

    private void _okButton_Click(object sender, RoutedEventArgs e)
    {
      var testSuiteName = TestSuiteName;

      if (string.IsNullOrWhiteSpace(testSuiteName))
      {
        MessageBox.Show(this, "Name of test suite can't be empty.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        _testSuiteName.Focus();
        return;
      }

      var path = ViewModel.SuitPath;

      if (Directory.Exists(path) && ViewModel.IsCreate)
      {
        MessageBox.Show(this, "The test suite '" + testSuiteName + "' already exists.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        _testSuiteName.Focus();
        return;
      }

      if (Utils.IsInvalidDirName(testSuiteName))
      {
        MessageBox.Show(this, "Name of test suite is invalid.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        _testSuiteName.Focus();
        return;
      }

      var assemblies = ViewModel.ParserLibs;

      if (assemblies.Count == 0)
      {
        MessageBox.Show(this, "No one valid library in library list.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        return;
      }

      var selectedLanguage = ViewModel.SelectedLanguage;

      if (selectedLanguage == null)
      {
        MessageBox.Show(this, "Langauge is not selected.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        Languages.Focus();
        return;
      }

      try
      {
        Directory.CreateDirectory(path);
        if (_baseSuite != null && !string.IsNullOrEmpty(_baseSuite.Name) && _baseSuite.Name != testSuiteName && Directory.Exists(_baseSuite.FullPath))
        {
          FileSystem.CopyDirectory(_baseSuite.FullPath, path, UIOption.AllDialogs);
          Directory.Delete(_baseSuite.FullPath, recursive: true);
        }
      }
      catch (Exception ex)
      {
        MessageBox.Show(this, ex.GetType().Name + ":" + ex.Message, "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
        return;
      }

      this.DialogResult = true;
      Close();
    }

    private void _addLibButton_Click(object sender, RoutedEventArgs e)
    {
      var dialog = new OpenFileDialog
      {
        DefaultExt = ".dll",
        InitialDirectory = ViewModel.SuitPath,
        Filter = "Parser library (.dll)|*.dll|Parser application (.exe)|*.exe",
        Title = "Choose language library",
        Multiselect = true
      };

      if ((bool) dialog.ShowDialog(this)) {
          ViewModel.ParserLibs.AddRange(dialog.FileNames.Select(fname => new ParserLibViewModel(fname)));
      }
    }

    private void _addReferenceNameButton_Click(object sender, RoutedEventArgs e)
    {
      var dialog = new ChooseAssemblyName();
      dialog.Owner = this;
      if (dialog.ShowDialog() ?? false)
      {
        ViewModel.References.Add("FullName:" + dialog.AssemblyName.ToString());
      }
    }

    private void _addReferencesButton_Click(object sender, RoutedEventArgs e)
    {
      var dialog = new OpenFileDialog
      {
        DefaultExt = ".dll",
        InitialDirectory = ViewModel.SuitPath,
        Filter = "Parser library (.dll)|*.dll|Parser application (.exe)|*.exe",
        Title = "Choose a project reference library",
        Multiselect = true
      };

      if (dialog.ShowDialog(this) ?? false)
      {
        ViewModel.References.AddRange(dialog.FileNames);
      }
    }

    private void AddReferenceButton_Click(object sender, RoutedEventArgs e)
    {
        var dialog = new OpenFileDialog {
            DefaultExt = ".dll",
            InitialDirectory = ViewModel.SuitPath,
            Filter = "Assembly (.dll)|*.dll|Application (.exe)|*.exe",
            Title = "Load parser",
            Multiselect = true
        };

        if ((bool)dialog.ShowDialog(this)) {
            ViewModel.References.AddRange(dialog.FileNames.Select(fname => "File:" + fname));
        }
    }

        object IViewFor.ViewModel
    {
      get { return ViewModel; }
      set { ViewModel = (TestSuiteCreateOrEditViewModel) value; }
    }

    public TestSuiteCreateOrEditViewModel ViewModel { get; set; }

    private void RemoveParserLib(object sender, RoutedEventArgs e)
    {
      var button = (Button) sender;
      var selectedParserLib = button.DataContext as ParserLibViewModel;

      if (selectedParserLib != null)
        ViewModel.ParserLibs.Remove(selectedParserLib);
    }
  }
}

repository: rsdn/nitra

repo_name: rsdn/nitra

gha_language: Nemerle

extension: cs