(kicad_sch (version 20230121) (generator eeschema)

  (uuid 98b7d9f2-b748-407c-a96b-06060004cf81)

  (paper "A3")

  (title_block
    (title "Gonk")
    (date "2023-07-20")
    (rev "P0")
  )

  (lib_symbols
    (symbol "Connector:Conn_01x10_Pin" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
      (property "Reference" "J" (at 0 12.7 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "Conn_01x10_Pin" (at 0 -15.24 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_locked" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "ki_keywords" "connector" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Generic connector, single row, 01x10, script generated" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "Conn_01x10_Pin_1_1"
        (polyline
          (pts
            (xy 1.27 -12.7)
            (xy 0.8636 -12.7)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 -10.16)
            (xy 0.8636 -10.16)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 -7.62)
            (xy 0.8636 -7.62)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 -5.08)
            (xy 0.8636 -5.08)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 -2.54)
            (xy 0.8636 -2.54)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 0)
            (xy 0.8636 0)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 2.54)
            (xy 0.8636 2.54)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 5.08)
            (xy 0.8636 5.08)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 7.62)
            (xy 0.8636 7.62)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 1.27 10.16)
            (xy 0.8636 10.16)
          )
          (stroke (width 0.1524) (type default))
          (fill (type none))
        )
        (rectangle (start 0.8636 -12.573) (end 0 -12.827)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 -10.033) (end 0 -10.287)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 -7.493) (end 0 -7.747)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 -4.953) (end 0 -5.207)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 -2.413) (end 0 -2.667)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 0.127) (end 0 -0.127)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 2.667) (end 0 2.413)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 5.207) (end 0 4.953)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 7.747) (end 0 7.493)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (rectangle (start 0.8636 10.287) (end 0 10.033)
          (stroke (width 0.1524) (type default))
          (fill (type outline))
        )
        (pin passive line (at 5.08 10.16 180) (length 3.81)
          (name "Pin_1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 -12.7 180) (length 3.81)
          (name "Pin_10" (effects (font (size 1.27 1.27))))
          (number "10" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 7.62 180) (length 3.81)
          (name "Pin_2" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 5.08 180) (length 3.81)
          (name "Pin_3" (effects (font (size 1.27 1.27))))
          (number "3" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 2.54 180) (length 3.81)
          (name "Pin_4" (effects (font (size 1.27 1.27))))
          (number "4" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 0 180) (length 3.81)
          (name "Pin_5" (effects (font (size 1.27 1.27))))
          (number "5" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 -2.54 180) (length 3.81)
          (name "Pin_6" (effects (font (size 1.27 1.27))))
          (number "6" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 -5.08 180) (length 3.81)
          (name "Pin_7" (effects (font (size 1.27 1.27))))
          (number "7" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 -7.62 180) (length 3.81)
          (name "Pin_8" (effects (font (size 1.27 1.27))))
          (number "8" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 5.08 -10.16 180) (length 3.81)
          (name "Pin_9" (effects (font (size 1.27 1.27))))
          (number "9" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Connector:TSW-102-07-G-S" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
      (property "Reference" "J" (at 8.89 6.35 0)
        (effects (font (size 1.524 1.524)))
      )
      (property "Value" "TSW-102-07-G-S" (at 0 0 0)
        (effects (font (size 1.524 1.524)))
      )
      (property "Footprint" "CON2_1X2_TU_TSW" (at 0 0 0)
        (effects (font (size 1.27 1.27) italic) hide)
      )
      (property "Datasheet" "TSW-102-07-G-S" (at 0 0 0)
        (effects (font (size 1.27 1.27) italic) hide)
      )
      (property "ki_locked" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "ki_keywords" "TSW-102-07-G-S" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "CON2_1X2_TU_TSW" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "TSW-102-07-G-S_1_1"
        (polyline
          (pts
            (xy 5.08 -5.08)
            (xy 12.7 -5.08)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 5.08 2.54)
            (xy 5.08 -5.08)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 -2.54)
            (xy 5.08 -2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 -2.54)
            (xy 8.89 -3.3867)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 -2.54)
            (xy 8.89 -1.6933)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 0)
            (xy 5.08 0)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 0)
            (xy 8.89 -0.8467)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 10.16 0)
            (xy 8.89 0.8467)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 12.7 -5.08)
            (xy 12.7 2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 12.7 2.54)
            (xy 5.08 2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (pin unspecified line (at 0 0 0) (length 5.08)
          (name "1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin unspecified line (at 0 -2.54 0) (length 5.08)
          (name "2" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
      (symbol "TSW-102-07-G-S_1_2"
        (polyline
          (pts
            (xy 5.08 -5.08)
            (xy 12.7 -5.08)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 5.08 2.54)
            (xy 5.08 -5.08)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 -2.54)
            (xy 5.08 -2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 -2.54)
            (xy 8.89 -3.3867)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 -2.54)
            (xy 8.89 -1.6933)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 0)
            (xy 5.08 0)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 0)
            (xy 8.89 -0.8467)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 7.62 0)
            (xy 8.89 0.8467)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 12.7 -5.08)
            (xy 12.7 2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 12.7 2.54)
            (xy 5.08 2.54)
          )
          (stroke (width 0.127) (type default))
          (fill (type none))
        )
        (pin unspecified line (at 0 0 0) (length 5.08)
          (name "1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin unspecified line (at 0 -2.54 0) (length 5.08)
          (name "2" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:C_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "C" (at 0.254 1.778 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "C_Small" (at 0.254 -2.032 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "capacitor cap" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Unpolarized capacitor, small symbol" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "C_*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "C_Small_0_1"
        (polyline
          (pts
            (xy -1.524 -0.508)
            (xy 1.524 -0.508)
          )
          (stroke (width 0.3302) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -1.524 0.508)
            (xy 1.524 0.508)
          )
          (stroke (width 0.3048) (type default))
          (fill (type none))
        )
      )
      (symbol "C_Small_1_1"
        (pin passive line (at 0 2.54 270) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:R_Small_US" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "R" (at 0.762 0.508 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "R_Small_US" (at 0.762 -1.016 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "r resistor" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Resistor, small US symbol" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "R_*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "R_Small_US_1_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 1.016 -0.381)
            (xy 0 -0.762)
            (xy -1.016 -1.143)
            (xy 0 -1.524)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 1.524)
            (xy 1.016 1.143)
            (xy 0 0.762)
            (xy -1.016 0.381)
            (xy 0 0)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (pin passive line (at 0 2.54 270) (length 1.016)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 1.016)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Mechanical:MountingHole_Pad" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
      (property "Reference" "H" (at 0 6.35 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "MountingHole_Pad" (at 0 4.445 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "mounting hole" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Mounting Hole with connection" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "MountingHole*Pad*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "MountingHole_Pad_0_1"
        (circle (center 0 1.27) (radius 1.27)
          (stroke (width 1.27) (type default))
          (fill (type none))
        )
      )
      (symbol "MountingHole_Pad_1_1"
        (pin input line (at 0 -2.54 90) (length 2.54)
          (name "1" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
      (property "Reference" "#PWR" (at 0 -6.35 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "GND" (at 0 -3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "global power" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "GND_0_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 0 -1.27)
            (xy 1.27 -1.27)
            (xy 0 -2.54)
            (xy -1.27 -1.27)
            (xy 0 -1.27)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
      )
      (symbol "GND_1_1"
        (pin power_in line (at 0 0 270) (length 0) hide
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:PWR_FLAG" (power) (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
      (property "Reference" "#FLG" (at 0 1.905 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "PWR_FLAG" (at 0 3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "flag power" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Special symbol for telling ERC where power comes from" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "PWR_FLAG_0_0"
        (pin power_out line (at 0 0 90) (length 0)
          (name "pwr" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
      (symbol "PWR_FLAG_0_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 0 1.27)
            (xy -1.016 1.905)
            (xy 0 2.54)
            (xy 1.016 1.905)
            (xy 0 1.27)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
      )
    )
  )

  (junction (at 127 48.26) (diameter 0) (color 0 0 0 0)
    (uuid 30908d8b-b2e8-42f9-9d67-3c8b01a2d6d7)
  )
  (junction (at 114.3 48.26) (diameter 0) (color 0 0 0 0)
    (uuid 5eb00f73-d164-4ef5-a162-71dd69009c2b)
  )
  (junction (at 93.98 48.26) (diameter 0) (color 0 0 0 0)
    (uuid 60f442c7-c696-434a-a25d-01b1ba0cd7a9)
  )
  (junction (at 119.38 48.26) (diameter 0) (color 0 0 0 0)
    (uuid 7a20d5c5-e18b-4f97-8156-1c660654150a)
  )
  (junction (at 102.87 48.26) (diameter 0) (color 0 0 0 0)
    (uuid e26b3801-3e09-44ce-8191-a5d7a67419d2)
  )

  (wire (pts (xy 311.15 222.25) (xy 322.58 222.25))
    (stroke (width 0) (type default))
    (uuid 01950db8-9c3f-474e-af80-a46a2759a14e)
  )
  (wire (pts (xy 311.15 157.48) (xy 322.58 157.48))
    (stroke (width 0) (type default))
    (uuid 169a3dd9-204b-4e13-9bd3-3189656e5800)
  )
  (wire (pts (xy 322.58 87.63) (xy 311.15 87.63))
    (stroke (width 0) (type default))
    (uuid 16f0a485-f1d1-406d-909b-3701c9a04878)
  )
  (wire (pts (xy 44.45 138.43) (xy 114.3 138.43))
    (stroke (width 0) (type default))
    (uuid 2dc11c41-bff7-4a5a-9154-d06c16efb795)
  )
  (wire (pts (xy 102.87 57.15) (xy 102.87 58.42))
    (stroke (width 0) (type default))
    (uuid 2f4ba99c-7120-45fe-ab9f-9c6efe625776)
  )
  (wire (pts (xy 311.15 107.95) (xy 322.58 107.95))
    (stroke (width 0) (type default))
    (uuid 2f8ea995-f3b4-4a5b-8f80-86e5d0335ace)
  )
  (wire (pts (xy 311.15 36.83) (xy 322.58 36.83))
    (stroke (width 0) (type default))
    (uuid 3520af54-4e92-4200-8dfc-b2cec544b3ae)
  )
  (wire (pts (xy 120.65 38.1) (xy 119.38 38.1))
    (stroke (width 0) (type default))
    (uuid 3de4467c-c208-4395-aca1-eff6155dd3a6)
  )
  (wire (pts (xy 102.87 48.26) (xy 102.87 52.07))
    (stroke (width 0.5) (type default))
    (uuid 3ff8ac79-8feb-4805-b656-1b88c26d1bbb)
  )
  (wire (pts (xy 322.58 138.43) (xy 311.15 138.43))
    (stroke (width 0) (type default))
    (uuid 41b28a29-293f-4839-9ce0-4e01315c4f34)
  )
  (wire (pts (xy 120.65 35.56) (xy 114.3 35.56))
    (stroke (width 0) (type default))
    (uuid 42981cad-d624-4275-9fa4-e75e113a50b6)
  )
  (wire (pts (xy 102.87 48.26) (xy 114.3 48.26))
    (stroke (width 0.5) (type default))
    (uuid 4807219e-013a-44ce-9e1c-fffd8439c7d6)
  )
  (wire (pts (xy 322.58 105.41) (xy 311.15 105.41))
    (stroke (width 0) (type default))
    (uuid 499f61c3-e767-4d1e-b65a-7dd7bc3a569d)
  )
  (wire (pts (xy 322.58 49.53) (xy 311.15 49.53))
    (stroke (width 0) (type default))
    (uuid 4cc59f4a-1f13-4be6-9094-2b4709fd36a9)
  )
  (wire (pts (xy 44.45 146.05) (xy 114.3 146.05))
    (stroke (width 0) (type default))
    (uuid 4d19dbc1-efdc-4b3a-9cd2-a190d1abbd51)
  )
  (wire (pts (xy 322.58 219.71) (xy 311.15 219.71))
    (stroke (width 0) (type default))
    (uuid 50d8c151-aee9-48bb-bf20-0c40be4c80f9)
  )
  (wire (pts (xy 44.45 130.81) (xy 114.3 130.81))
    (stroke (width 0) (type default))
    (uuid 59abe722-2b1a-4c36-a028-69e7305a4ad6)
  )
  (wire (pts (xy 322.58 171.45) (xy 311.15 171.45))
    (stroke (width 0) (type default))
    (uuid 5f75d3bc-fc81-4043-92d5-f8d96372d3c3)
  )
  (wire (pts (xy 93.98 57.15) (xy 93.98 58.42))
    (stroke (width 0) (type default))
    (uuid 64ea80f3-a4d7-4c79-912a-7e3a04aad0ec)
  )
  (wire (pts (xy 44.45 140.97) (xy 114.3 140.97))
    (stroke (width 0) (type default))
    (uuid 69d7c6ff-99e5-4d2a-b015-1c79593135c6)
  )
  (wire (pts (xy 119.38 38.1) (xy 119.38 48.26))
    (stroke (width 0) (type default))
    (uuid 6fef7030-c0e4-49ed-a025-724309542891)
  )
  (wire (pts (xy 123.19 48.26) (xy 127 48.26))
    (stroke (width 0) (type default))
    (uuid 70432c79-7a32-4a89-8411-2a1b3ce89540)
  )
  (wire (pts (xy 119.38 48.26) (xy 127 48.26))
    (stroke (width 0.5) (type default))
    (uuid 70ab0317-a5aa-4c20-b9c3-060b6a625d17)
  )
  (wire (pts (xy 127 48.26) (xy 134.62 48.26))
    (stroke (width 0.5) (type default))
    (uuid 72f97830-504e-48fb-9b46-a1f4ba387e97)
  )
  (wire (pts (xy 311.15 124.46) (xy 322.58 124.46))
    (stroke (width 0) (type default))
    (uuid 7a0c2a35-441f-4a7b-ae5e-df11fc5316c0)
  )
  (wire (pts (xy 44.45 133.35) (xy 114.3 133.35))
    (stroke (width 0) (type default))
    (uuid 81eb8816-bfb4-4b0b-ae2a-0615bfeb044f)
  )
  (wire (pts (xy 44.45 148.59) (xy 114.3 148.59))
    (stroke (width 0) (type default))
    (uuid 9d7eb913-c84b-4d65-bb4a-c29318c51be2)
  )
  (wire (pts (xy 93.98 48.26) (xy 102.87 48.26))
    (stroke (width 0.5) (type default))
    (uuid a41ab925-3764-4ca0-ad9b-6bf99a3cfe86)
  )
  (wire (pts (xy 311.15 205.74) (xy 322.58 205.74))
    (stroke (width 0) (type default))
    (uuid a5581ff8-1f0d-4a03-8b73-97fc5ad9b727)
  )
  (wire (pts (xy 44.45 128.27) (xy 114.3 128.27))
    (stroke (width 0) (type default))
    (uuid aa2991a4-b10d-4f34-9560-b2cb023a9b42)
  )
  (wire (pts (xy 311.15 190.5) (xy 322.58 190.5))
    (stroke (width 0) (type default))
    (uuid aaafd520-3bc0-4501-ad3a-a7c864b76c8b)
  )
  (wire (pts (xy 44.45 135.89) (xy 114.3 135.89))
    (stroke (width 0) (type default))
    (uuid b1c57b08-d40a-482c-89c5-a94e8350882d)
  )
  (wire (pts (xy 311.15 140.97) (xy 322.58 140.97))
    (stroke (width 0) (type default))
    (uuid b335366c-0f4e-45c3-bfa6-020c1a0351ec)
  )
  (wire (pts (xy 322.58 203.2) (xy 311.15 203.2))
    (stroke (width 0) (type default))
    (uuid b8634839-914f-4a89-8c40-a942ff5e4609)
  )
  (wire (pts (xy 322.58 34.29) (xy 311.15 34.29))
    (stroke (width 0) (type default))
    (uuid bed8efc7-cefa-4df3-8dd5-32ececb819f5)
  )
  (wire (pts (xy 52.07 50.8) (xy 68.58 50.8))
    (stroke (width 0) (type default))
    (uuid bfd96c7b-929b-4ccf-a250-cf46baa39500)
  )
  (wire (pts (xy 322.58 121.92) (xy 311.15 121.92))
    (stroke (width 0) (type default))
    (uuid c545a775-3412-49a8-abcf-c03945e8663d)
  )
  (wire (pts (xy 52.07 48.26) (xy 93.98 48.26))
    (stroke (width 0.5) (type default))
    (uuid cb9230f0-d1a9-446d-8aa4-29b2711c4c36)
  )
  (wire (pts (xy 93.98 48.26) (xy 93.98 52.07))
    (stroke (width 0.5) (type default))
    (uuid d289fed8-b7ca-40e2-90e9-8a0318cd3166)
  )
  (wire (pts (xy 311.15 90.17) (xy 322.58 90.17))
    (stroke (width 0) (type default))
    (uuid d3891717-0493-4d21-bf74-54df7c49a258)
  )
  (wire (pts (xy 311.15 173.99) (xy 322.58 173.99))
    (stroke (width 0) (type default))
    (uuid dc1fc975-eeab-48f4-9a06-f67dc37a8737)
  )
  (wire (pts (xy 44.45 143.51) (xy 114.3 143.51))
    (stroke (width 0) (type default))
    (uuid dfbb43a9-a612-4ec4-ad5b-6c0261ca1c00)
  )
  (wire (pts (xy 311.15 52.07) (xy 322.58 52.07))
    (stroke (width 0) (type default))
    (uuid e6c6850e-5e7a-4b83-86a3-7cbcbb6aa79b)
  )
  (wire (pts (xy 322.58 187.96) (xy 311.15 187.96))
    (stroke (width 0) (type default))
    (uuid edc33e60-6b17-4e17-bf6d-eb58a55ff55c)
  )
  (wire (pts (xy 44.45 125.73) (xy 114.3 125.73))
    (stroke (width 0) (type default))
    (uuid f1e4ec6b-b971-4f10-af8c-9ba840b1b83b)
  )
  (wire (pts (xy 322.58 68.58) (xy 311.15 68.58))
    (stroke (width 0) (type default))
    (uuid f90aa386-eb93-4665-b3ba-d0d22d8af9a0)
  )
  (wire (pts (xy 114.3 35.56) (xy 114.3 48.26))
    (stroke (width 0) (type default))
    (uuid f9badc33-06c8-407a-9527-c11f42dace58)
  )
  (wire (pts (xy 322.58 154.94) (xy 311.15 154.94))
    (stroke (width 0) (type default))
    (uuid fb3890fc-00da-4d38-b4a3-66d45e8355a4)
  )
  (wire (pts (xy 311.15 71.12) (xy 322.58 71.12))
    (stroke (width 0) (type default))
    (uuid fdf314b2-9af1-401c-95db-a2118ffb9e20)
  )

  (text "Connector Header Through Hole, Right Angle 10 position 0.050\" (1.27mm)\n"
    (at 36.83 154.94 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 37969c07-ca1d-4b97-9f70-d85058b25c33)
  )
  (text "R33(VIM)" (at 135.89 132.08 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 430b2219-37ee-415b-a805-2682f45376d6)
  )
  (text "R30(VIM)" (at 134.62 125.73 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 5c9bafb7-ce76-4cd7-81e0-ee47ca745341)
  )
  (text "R43(VIM)" (at 137.16 149.86 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 7d1fc947-3920-4197-8739-d7130f679fe2)
  )
  (text "PCB Mount Header, Right Angle, Board-to-Board, 2 Position, 2.54 mm [.1 in] Centerline"
    (at 35.56 67.31 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 9f101fe9-ffcf-49e2-aeaf-829971da6fe8)
  )

  (global_label "EMMC_1.8V" (shape input) (at 322.58 87.63 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 068f13c4-da44-4e3c-a7b3-50241160ff71)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 335.8876 87.63 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_A" (shape input) (at 322.58 154.94 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 15b026ac-2562-40b1-8c73-9ce8dc9d21a6)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 335.0411 154.94 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_B_EN" (shape output) (at 114.3 143.51 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 17fce65e-fd1f-42b0-93a0-318b9f01c710)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 130.3896 143.51 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_B" (shape input) (at 322.58 121.92 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 2c907994-933f-417d-aff7-d5e012751600)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 335.2225 121.92 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "PWR_EN" (shape output) (at 114.3 135.89 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 2fa426fe-8cdc-419d-bff7-e6605010e4ef)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 124.6443 135.89 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "DCIN_SENSE_P" (shape output) (at 120.65 35.56 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 31cee1ab-261a-4899-ac7f-c43dc2244298)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 137.2838 35.56 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_A_PWM" (shape output) (at 114.3 130.81 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 395396d9-0fa2-4ae7-8e51-4e1450023c3d)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 131.9015 130.81 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "DCIN_SENSE_N" (shape output) (at 120.65 38.1 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 3e42236a-0a50-47e3-9b8b-0d91e9983405)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 137.3443 38.1 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VCC1.8V" (shape input) (at 322.58 68.58 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 40cc212c-b3d9-4190-891c-47ebe4dc4359)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 333.2268 68.58 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDEE_PWM" (shape output) (at 114.3 125.73 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 44d722de-663e-44f7-b9cf-5024cea7a734)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 128.2728 125.73 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDIO_AO18" (shape input) (at 322.58 105.41 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 523940dd-9509-445e-a067-949442c15e4a)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 336.8554 105.41 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_A_EN" (shape output) (at 114.3 140.97 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 52b8a259-2c1f-494f-8aa5-cee7b0b0e2b8)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 130.2082 140.97 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VCC_MCU" (shape input) (at 322.58 34.29 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 79abd0b9-8872-404a-8a93-1808538827e2)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 334.1339 34.29 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VCC3.3V" (shape input) (at 322.58 49.53 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 7dea6a03-b2f0-4ce5-b078-dd5bca0310a0)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 333.2268 49.53 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "DCIN" (shape output) (at 134.62 48.26 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid a84cf3e6-b34f-4804-92c7-de9f7b84907d)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 142.0011 48.26 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VCC5V" (shape input) (at 322.58 203.2 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid aa9fe3ee-bad6-457e-91f5-6ebad7ed83f0)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 331.4125 203.2 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDD_EE" (shape input) (at 322.58 171.45 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid b04dc693-ea33-4f36-aad1-eb50c5bff0bb)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 332.38 171.45 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VSYS_3V3" (shape input) (at 322.58 219.71 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid c5ee02cd-b46e-4569-bc70-e518069b316f)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 334.5572 219.71 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDQ_1V1" (shape input) (at 322.58 138.43 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid ef7fb591-5d84-456a-b209-52bfad155063)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 334.9201 138.43 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VCC5V0_HDMI" (shape input) (at 322.58 187.96 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid f5754e1e-a84c-46cd-96cb-0f9387618505)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 338.2463 187.96 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "VDDCPU_B_PWM" (shape output) (at 114.3 148.59 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid fc4e96d6-0158-4042-927d-ea0881f4fe3b)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 132.0829 148.59 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 157.48 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 00ae54e3-6a7a-4c53-b73a-53062a939123)
    (property "Reference" "#PWR028" (at 328.93 157.48 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 156.845 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 157.48 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 157.48 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid be1452d9-e84e-4307-b793-6fe49dfd19d3))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR028") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 71.12 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 074d22b2-3285-4292-bddb-25dad9666d22)
    (property "Reference" "#PWR011" (at 328.93 71.12 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 70.485 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 71.12 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 71.12 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid f7bf6f2d-2f28-4f45-81c9-38ecb1edfc5b))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR011") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 93.98 58.42 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 0f771e3f-89b9-4b98-b400-27e15a7459de)
    (property "Reference" "#PWR07" (at 93.98 64.77 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 97.79 59.69 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 93.98 58.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 93.98 58.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 829b9073-25fb-4dfa-9337-a82067dd2e90))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR07") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:Conn_01x10_Pin") (at 39.37 135.89 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 126b771a-22c3-4405-b432-393eeb45be55)
    (property "Reference" "J1" (at 41.91 120.65 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "M50-3931042" (at 40.005 123.19 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Connector_PinHeader_1.27mm:PinHeader_1x10_P1.27mm_Horizontal" (at 39.37 135.89 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 39.37 135.89 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid e33e4adf-42b3-4122-94bc-50b7428e3758))
    (pin "10" (uuid 91bb2ecb-c56b-46d0-9fe0-962edeb21ab2))
    (pin "2" (uuid 0839c6a2-7d40-4846-8032-8d243b0f6d88))
    (pin "3" (uuid 577f3b07-3b13-44f2-a2e0-8f82513f4229))
    (pin "4" (uuid 959551be-6b1e-43c3-9c23-bb68a15ea9f9))
    (pin "5" (uuid 596c3ca6-1b37-48af-aacc-a493db6f3bfa))
    (pin "6" (uuid a2816e95-39a8-42e5-8cf2-adbcf56aa635))
    (pin "7" (uuid 6eea4d2c-9e1c-4b9f-8fbc-f8adb6ee500f))
    (pin "8" (uuid 353fbcfe-08be-46f8-a4b2-f1f2b36c830e))
    (pin "9" (uuid 5ff63928-cd54-4a47-91cb-06c4175c3f5d))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "J1") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 173.99 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 16e436e1-e3e4-4cb3-9289-6f60271e3acd)
    (property "Reference" "#PWR030" (at 328.93 173.99 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 173.355 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 173.99 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 173.99 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 5f5f71d3-5b4f-4499-813f-a1ce4c40e5d2))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR030") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:PWR_FLAG") (at 127 48.26 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 1c192baa-126d-433b-9d00-4afd52864093)
    (property "Reference" "#FLG01" (at 127 46.355 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "PWR_FLAG" (at 127 43.18 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 127 48.26 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 127 48.26 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid ce48552b-73d8-448d-8a03-0f89b88821b4))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#FLG01") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 34.29 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 1d04dd52-2734-40c7-aade-d97299469b1c)
    (property "Reference" "VCCMCU0" (at 298.45 40.64 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 30.48 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 34.29 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 34.29 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid e6a2fb46-7c20-4a18-9faf-f324d5f13b12))
    (pin "2" (uuid fce46ca0-cc4f-4c60-b9a7-5f0c3497ac89))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VCCMCU0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 105.41 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 25057962-a9ca-470a-a030-89ba15f6356c)
    (property "Reference" "AO18" (at 298.45 111.76 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 101.6 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 105.41 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 105.41 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 56ade24e-60dd-4861-ae6d-c96b3b717c87))
    (pin "2" (uuid 63ca8f7a-c3a2-4320-91cb-73252d48da64))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "AO18") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 92.71 208.28 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 286452e8-a140-443b-a605-3a3721a799dd)
    (property "Reference" "#PWR024" (at 92.71 214.63 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 92.71 213.36 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 92.71 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 92.71 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 26002c94-c978-4444-b0a9-f6b2ef689e4c))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR024") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 35.56 205.74 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 2fbb220c-b1e0-40a5-9e16-89e7f76452b0)
    (property "Reference" "H1" (at 38.1 203.835 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole_Pad" (at 38.1 206.375 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_Pad" (at 44.45 219.71 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Datasheet" "~" (at 35.56 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 748880fb-6298-44c1-864b-1a693e525117))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "H1") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 36.83 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 3bb68be8-7c8f-4c0d-9cf7-7e21d83ab23b)
    (property "Reference" "#PWR02" (at 328.93 36.83 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 36.195 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 36.83 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 36.83 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 35783382-7707-4c1b-89fd-747f089d9184))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR02") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 203.2 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 3c0e60dc-a6fe-4222-b97b-8c10e4f750b0)
    (property "Reference" "5V0" (at 298.45 209.55 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 199.39 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 203.2 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 203.2 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid c15bcd89-66fd-44fc-a791-69e77decc59a))
    (pin "2" (uuid 043e5010-c912-425b-9695-a16229232396))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "5V0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:R_Small_US") (at 116.84 48.26 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 4fd3c7e3-25ac-41c9-9665-40d57ea5f9c7)
    (property "Reference" "R18" (at 116.84 43.18 90)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "D1WEL0603MR050F-T5" (at 116.84 45.72 90)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 116.84 48.26 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 116.84 48.26 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1ba2772d-2978-4474-9159-84e9d2262b8a))
    (pin "2" (uuid 9fef82dc-c938-4c03-a5b3-eb69c93e6717))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4d6001c4-2b2a-4825-81a1-31148538fb15"
          (reference "R18") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a658e773-b177-4a90-ae83-7cc427167634"
          (reference "R51") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "R1") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 63.5 208.28 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 53ebff4a-e8cf-4ea3-98df-0725f2d4e40d)
    (property "Reference" "#PWR023" (at 63.5 214.63 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 63.5 213.36 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 63.5 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 63.5 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 755017b2-a053-4651-98ed-2295a91ec0bf))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR023") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 121.92 205.74 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 64d05050-b1d1-4130-ad6c-09b35f05fe01)
    (property "Reference" "H4" (at 124.46 203.835 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole_Pad" (at 124.46 206.375 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_Pad" (at 121.92 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 121.92 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid c078148d-443c-4f07-9153-846dc7141b4f))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "H4") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 222.25 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 6db73ddb-0837-4b35-96bf-5530b622eac1)
    (property "Reference" "#PWR036" (at 328.93 222.25 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 221.615 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 222.25 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 222.25 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 7fe152ce-ac42-437e-8f42-3c78db094a23))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR036") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 114.3 133.35 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 7477684d-4b01-4684-b958-47ccf3872572)
    (property "Reference" "#PWR014" (at 120.65 133.35 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 118.11 133.985 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 114.3 133.35 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 114.3 133.35 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid a5b13366-d1a2-4509-8284-68105c39db81))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR014") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 114.3 128.27 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 75989e72-6769-47db-9c9d-3497089d3452)
    (property "Reference" "#PWR013" (at 120.65 128.27 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 118.11 128.27 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 114.3 128.27 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 114.3 128.27 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 39a86db9-85a6-40ce-8fe6-8c5676dc310c))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR013") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 114.3 146.05 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 7a6c0b0f-d534-4f77-a4c4-dff723f9761a)
    (property "Reference" "#PWR012" (at 120.65 146.05 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 118.11 146.685 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 114.3 146.05 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 114.3 146.05 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 76bc686c-bc55-4657-9a80-3478d16f6944))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR012") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 63.5 205.74 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 7be0a3f2-4732-4317-aa46-3c82df32caff)
    (property "Reference" "H2" (at 66.04 203.835 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole_Pad" (at 66.04 206.375 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_Pad" (at 63.5 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 63.5 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid b8eb473f-c07b-4525-8dd0-eb24dcd6320e))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "H2") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 187.96 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 7cc34b41-5805-4085-bf39-975004f44b82)
    (property "Reference" "HDMI5V0" (at 298.45 194.31 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 184.15 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 187.96 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 187.96 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 9eeea7f9-25f9-4cea-b544-45d79900275d))
    (pin "2" (uuid 4937a334-70cc-4cee-b199-c2ffd9ba9d49))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "HDMI5V0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 52.07 48.26 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 7e1d2fde-8e51-4fe4-b838-56f861cf6ae4)
    (property "Reference" "DCIN_0" (at 39.37 54.61 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 39.37 43.18 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 52.07 48.26 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 52.07 48.26 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid c6c8dec4-75bd-48b6-9342-d6b640103021))
    (pin "2" (uuid 6e1652c3-f46b-447a-877a-04c0cbf11152))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "DCIN_0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 35.56 208.28 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 817b54a9-35f0-4918-ab1b-7872cecef453)
    (property "Reference" "#PWR022" (at 35.56 214.63 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 35.56 213.36 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 35.56 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 35.56 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid c03f01ab-8ca4-4046-be56-fa05367bebff))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR022") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 140.97 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 87dbc04e-3587-4059-9881-766212edd8ee)
    (property "Reference" "#PWR026" (at 328.93 140.97 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 140.335 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 140.97 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 140.97 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid aac979ae-e2ce-401a-a2fc-a8f49cd07dd0))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR026") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 138.43 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 8ffa9f42-3a6b-4048-89f7-da08746279a1)
    (property "Reference" "VDDQ_1V1" (at 298.45 144.78 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 134.62 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 138.43 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 138.43 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid a5c9021e-8591-4247-a8fe-e3b2097482de))
    (pin "2" (uuid b14fb2b7-c830-47ea-84f4-f273aef08b7a))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VDDQ_1V1") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 68.58 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 9d690ad3-d4e2-4a77-9323-6f72b57caa9a)
    (property "Reference" "VCC1.8" (at 298.45 74.93 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 64.77 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 68.58 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 68.58 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid fc377e78-07df-4c88-87db-dc03b95228cd))
    (pin "2" (uuid 04de9831-20df-4846-b69a-f023beec9d1b))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VCC1.8") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 219.71 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 9e2bf81e-d688-49d2-ad31-265070a98892)
    (property "Reference" "VSYS3V3" (at 298.45 226.06 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 215.9 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 219.71 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 219.71 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 859ee755-6031-4789-b2f7-1bce427cd876))
    (pin "2" (uuid f6887775-5c83-4f88-98ee-9a30c1a2cd71))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VSYS3V3") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:C_Small") (at 93.98 54.61 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 9fca6dbf-1c75-42d9-8bf5-60e0eac6d1c0)
    (property "Reference" "C1" (at 96.52 53.9813 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "47uF 25V X5R" (at 83.82 57.15 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_1206_3216Metric" (at 93.98 54.61 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 93.98 54.61 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid fee91cdd-6acb-46e5-b06f-9100175b772e))
    (pin "2" (uuid ba948537-e70d-4053-ba92-c6eddb6c8798))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "C1") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 171.45 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid a6a328d7-c2ee-470b-b816-922fb3c32915)
    (property "Reference" "VDDEE0" (at 298.45 177.8 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 167.64 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 171.45 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 171.45 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 6f1996d8-1332-40c9-a94f-b3c7ee0741e6))
    (pin "2" (uuid 2d2ef5eb-7ff1-46b8-a8aa-01560f3e628b))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VDDEE0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 68.58 50.8 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid b49a6392-1170-43c0-8741-49ebd25f1a6d)
    (property "Reference" "#PWR05" (at 74.93 50.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 72.39 51.435 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 68.58 50.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 68.58 50.8 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 63e604c6-1b56-415d-9013-55f62bebb04e))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR05") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 49.53 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid b783a27e-5ad2-4c30-aed4-63125be8fd2e)
    (property "Reference" "VCC3.3" (at 298.45 55.88 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 45.72 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 49.53 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 49.53 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid adba6d82-cede-4d64-b8ff-499cd08fef49))
    (pin "2" (uuid 8f988a53-cc2a-4d66-bfff-63ecfc416e77))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "VCC3.3") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Mechanical:MountingHole_Pad") (at 92.71 205.74 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid bb1f1c8a-fba5-4316-a622-4bd65cc3c823)
    (property "Reference" "H3" (at 95.25 203.835 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "MountingHole_Pad" (at 95.25 206.375 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_Pad" (at 92.71 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 92.71 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 7ca9cf09-8353-45c7-b731-0bb96b70f9de))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "H3") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 121.92 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid bd2b4965-0248-44c6-a9e4-cd0e5da3d827)
    (property "Reference" "CPU_B0" (at 298.45 128.27 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 118.11 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 121.92 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 121.92 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 66b84ced-d19c-4d78-8da9-bc64a7a940b4))
    (pin "2" (uuid 63f419c4-0eea-48a6-9475-2bb9202ac54d))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "CPU_B0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 107.95 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid be1c5b3c-bc38-4808-8cf2-909b512bd05c)
    (property "Reference" "#PWR018" (at 328.93 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 107.315 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid f080ae52-9ec8-4aa5-ae5c-ecfc0b56bc40))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR018") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:C_Small") (at 102.87 54.61 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid cdfe7dbe-e00e-4023-be58-4fd038d625db)
    (property "Reference" "C2" (at 105.41 53.9813 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Value" "47uF 25V X5R" (at 99.06 57.15 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
    (property "Footprint" "Capacitor_SMD:C_1206_3216Metric" (at 102.87 54.61 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 102.87 54.61 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid d94cc56b-df8c-4286-a191-a965a850c1c7))
    (pin "2" (uuid c1772413-6c8d-4a08-b507-c402410b68cc))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "C2") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 87.63 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid d3d888ca-d6ea-4a9b-97f9-c7aa67022282)
    (property "Reference" "EMMC_1.8" (at 298.45 93.98 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 83.82 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 87.63 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 87.63 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid c6d16059-b372-4c74-9872-69ada4bec4f9))
    (pin "2" (uuid 49d2149f-87e6-4e24-b01d-fd940a0c67e4))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "EMMC_1.8") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 121.92 208.28 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid dc543be6-6ee5-4978-98e2-84b8f1cd8a18)
    (property "Reference" "#PWR025" (at 121.92 214.63 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 121.92 213.36 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 121.92 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 121.92 208.28 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 2d06ba51-2296-4d1f-9a5d-b129f2c85aa6))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR025") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 205.74 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid e300505b-d0d4-4601-b251-6a354fc98ecc)
    (property "Reference" "#PWR034" (at 328.93 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 205.105 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 205.74 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 7b469bb4-6430-4a49-9bc4-db506f967853))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR034") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 52.07 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid e647b68e-5ee1-430a-ab5e-b620adab416f)
    (property "Reference" "#PWR06" (at 328.93 52.07 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 51.435 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 52.07 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 52.07 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid fcf754bc-dad8-4c7a-b4b9-7358cbcc05a3))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR06") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 124.46 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid ea5b958f-3272-4d26-836a-cd8d24ff6dff)
    (property "Reference" "#PWR020" (at 328.93 124.46 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 123.825 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 124.46 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 124.46 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 059ad7ae-0bb4-4be3-b096-fd1b83c3b834))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR020") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 90.17 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid ede7349f-e17a-425a-bf6c-072d0c605c30)
    (property "Reference" "#PWR016" (at 328.93 90.17 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 89.535 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 90.17 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 90.17 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid ea659dee-ca98-46b2-81d4-45b1c7587b79))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR016") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 322.58 190.5 90) (mirror x) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid f199257b-ee0c-4a5e-b4bb-3e90c6efb9b4)
    (property "Reference" "#PWR032" (at 328.93 190.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 326.39 189.865 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 322.58 190.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 322.58 190.5 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid a5360a88-9a82-49e3-858d-cba266f6e720))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR032") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 102.87 58.42 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid f1c2627d-b2a9-4f23-b115-e19ce4f3ff6b)
    (property "Reference" "#PWR08" (at 102.87 64.77 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 106.68 59.69 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 102.87 58.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 102.87 58.42 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid cf856336-3648-41c0-9533-67cbaa1fddac))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR08") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Connector:TSW-102-07-G-S") (at 311.15 154.94 0) (mirror y) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid f649b176-de5d-40c0-9127-fd294f3dc230)
    (property "Reference" "CPU_A0" (at 298.45 161.29 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Value" "826631-2" (at 288.29 151.13 0)
      (effects (font (size 1.524 1.524)) (justify right))
    )
    (property "Footprint" "Connector_TE-Connectivity:TE_826631-2" (at 311.15 154.94 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (property "Datasheet" "" (at 311.15 154.94 0)
      (effects (font (size 1.27 1.27) italic) hide)
    )
    (pin "1" (uuid 5e78ce11-23aa-458f-8580-1128088b03c9))
    (pin "2" (uuid 27cafcf2-292c-4608-8f2e-4c09d1e7fdd3))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "CPU_A0") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 114.3 138.43 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid f67eb41f-808c-40c7-a2c5-36fa4d2b9df4)
    (property "Reference" "#PWR010" (at 120.65 138.43 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 118.11 139.065 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 114.3 138.43 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 114.3 138.43 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 0c24a5a8-5d76-40f1-b36f-e2ae390659bb))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/d22097d6-616e-4b56-ac91-5f00f86ac6cd"
          (reference "#PWR010") (unit 1)
        )
      )
    )
  )
)
