From a4f81e3cbbc0fdf927cbb71a049fc6842ffb579a Mon Sep 17 00:00:00 2001 From: Frank Adams <33405607+thedalles77@users.noreply.github.com> Date: Thu, 19 Aug 2021 09:22:25 -0700 Subject: [PATCH] Add files via upload --- .../Teensy 3p2/Lenovo_Scanner.sch | 2613 +++++++++++++++++ 1 file changed, 2613 insertions(+) create mode 100644 Example_Keyboards/Lenovo_ThinkPad_T61/Teensy 3p2/Lenovo_Scanner.sch diff --git a/Example_Keyboards/Lenovo_ThinkPad_T61/Teensy 3p2/Lenovo_Scanner.sch b/Example_Keyboards/Lenovo_ThinkPad_T61/Teensy 3p2/Lenovo_Scanner.sch new file mode 100644 index 0000000..317529b --- /dev/null +++ b/Example_Keyboards/Lenovo_ThinkPad_T61/Teensy 3p2/Lenovo_Scanner.sch @@ -0,0 +1,2613 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + +<b>WM6787CT-ND</b> - Motherboard keyboard connector + +<p> Digikey part number WM6787CT-ND<r/> +<p> Molex part number 0543630489<r/> +<p> Technical Specifications: +<ul> +<li> 40 signal pins, odds on top, evens on bottom</li> +<li>Pin Pitch is 0.5mm</li> +<li>4 additional ground pins on the corners</li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Connectors</h3> +This library contains electrically-functional connectors. +<br> +<br> +We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. +<br> +<br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. +<br> +<br> +<b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ +<br> +<br> +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. + + +<h3>Plated Through Hole - Long Pad</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + +>NAME +>VALUE + + + +<h3>Plated Through Hole</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + + + + + + + +>NAME +>VALUE + + + +<h3>Plated Through Hole - 2mm</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + +>NAME +>VALUE + + +<h3>Plated Through Hole - Long Pad w/ Offset Hole</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + + + + +>NAME +>VALUE + + + +<h3>Pogo Pin - 0.061"</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.061"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + +>NAME +>VALUE + + +<h3>Pogo Pin Hole - 0.58" </h3> +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.58"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + +>NAME +>VALUE + + +<h3>Sew-On Fabric Snap - Female</h3> +Equivalent to size #1/0 snap. +<p>Specifications: +<ul><li>Pin count: 1</li> +<li>Area:8mm</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Sew-On Fabric Snap - Male</h3> +Equivalent to size #1/0 snap. +<p>Specifications: +<ul><li>Pin count: 1</li> +<li>Area:8mm</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + +>NAME +>VALUE + + +<h3>Spring Connector</h3> +<p>Specifications: +<ul><li>Pin count: 1</li> +<li>Area:0.25"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + +>NAME +>VALUE + + +<h3>Plated Through Hole - No Silk Outline Kit Version</h3> +<p> Mask on only one side to make soldering in kits easier. +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - No Silk Outline</h3> +<p>Specifications: +<ul><li>Pin count:1</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + +>NAME +>VALUE + + + +<h3>SMTSO-256-ET Flush Mount Nut</h3> +.165 drill +<br> +Fits 4-40 Screws. +<p>Specifications: +<ul><li>Pin count: 1</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_01</li> +</ul></p> + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Molex 4-Pin Plated Through-Hole</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p><a href=”https://www.sparkfun.com/datasheets/Prototyping/2pin_molex_set_19iv10.pdf”>Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Screw Terminal 3.5mm Pitch -4 Pin PTH</h3> +<p>Specifications: +<ul><li>Pin count: 4</li> +<li>Pin pitch: 3.5mm/138mil</li> +</ul></p> +<p><a href=”https://www.sparkfun.com/datasheets/Prototyping/Screw-Terminal-3.5mm.pdf”>Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch: 1.27mm</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin Locking Footprint</h3> +Pins are offset 0.005" from center to lock pins in place during soldering. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin Long Pads w/ Locking Footprint</h3> +Holes are offset 0.005" from center to lock pins in place during soldering. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Molex 4-Pin Plated Through-Hole Locking</h3> +Holes are offset 0.005" from center to hold pins in place during soldering. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p><a href=”https://www.sparkfun.com/datasheets/Prototyping/2pin_molex_set_19iv10.pdf”>Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>SMD - 4 Pin Right Angle Male Header</h3> +tDocu layer shows pin locations. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin Long Pads</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + +>NAME +>VALUE + + +<h3>Plated Through Hole - 4 Pin No Silk Outline</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + +>NAME +>VALUE + + +<h3>JST Right Angle 4 Pin Plated Through Hole</h3> +<p>Specifications: +<ul><li>Pin count: 4</li> +<li>Pin pitch: 2mm</li> +</ul></p> +<p><a href=”https://www.sparkfun.com/datasheets/Prototyping/ePH.pdf”>Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + ++ +- +S +S + + + + + + + +>NAME +>VALUE + + +<h3>Screw Terminal 3.5mm Pitch -4 Pin PTH Locking</h3> +Holes are offset 0.005" from center to hold pins in place during soldering. +<p>Specifications: +<ul><li>Pin count: 4</li> +<li>Pin pitch: 3.5mm/138mil</li> +</ul></p> +<p><a href=”https://www.sparkfun.com/datasheets/Prototyping/Screw-Terminal-3.5mm.pdf”>Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>SMD- 4 Pin Right Angle </h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>SMD - 4 Pin Vertical Connector</h3> +<p>Specifications: +<ul><li>Pin count:4</li> +<li>SMD Pad count:8</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<h3>SMD - 4 Pin w/ Long Solder Pads</h3> +No silk, but tDocu layer shows pin position. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + + + + + + + + + +<h3>JST Vertical 4 Pin Plated Through Hole</h3> +<p>Specifications: +<ul><li>Pin count: 4</li> +<li>Pin pitch: 2mm</li> +</ul></p> +<p><a href="http://www.jst-mfg.com/product/pdf/eng/ePH.pdf">Datasheet referenced for footprint</a></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + ++ +- +Y +B +>NAME +>VALUE + + +<h3>SMD - 4 Pin Right-Angle Female Header</h3> +Silk outline shows header location. +<p>Specifications: +<ul><li>Pin count:4</li> +<li>Pin pitch:0.1"</li> +</ul></p> +<p>Example device(s): +<ul><li>CONN_04</li> +</ul></p> + + + + + + + + + + + + +>NAME +>VALUE + + + + +<h3>1 Pin Connection</h3> + + + + + +>VALUE +>NAME + + + +<h3>4 Pin Connection</h3> + + + + + + + + +>VALUE +>NAME + + + + + + + + +<h3>Single connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections</h3> +<p></p> + +<p></p> +On any of the 0.1 inch spaced packages, you can populate with these: +<ul> +<li><a href="https://www.sparkfun.com/products/116"> Break Away Headers - Straight</a> (PRT-00116)</li> +<li><a href="https://www.sparkfun.com/products/553"> Break Away Male Headers - Right Angle</a> (PRT-00553)</li> +<li><a href="https://www.sparkfun.com/products/115"> Female Headers</a> (PRT-00115)</li> +<li><a href="https://www.sparkfun.com/products/117"> Break Away Headers - Machine Pin</a> (PRT-00117)</li> +<li><a href="https://www.sparkfun.com/products/743"> Break Away Female Headers - Swiss Machine Pin</a> (PRT-00743)</li> +<p></p> +</ul> +<p></p> +This device is also useful as a general connection point to wire up your design to another part of your project. Our various solder wires solder well into these plated through hole pads. +<ul> +<li><a href="https://www.sparkfun.com/products/11375"> Hook-Up Wire - Assortment (Stranded, 22 AWG)</a> (PRT-11375)</li> +<li><a href="https://www.sparkfun.com/products/11367"> Hook-Up Wire - Assortment (Solid Core, 22 AWG)</a> (PRT-11367)</li> +<li><a href="https://www.sparkfun.com/categories/141"> View the entire wire category on our website here</a></li> +<p></p> +</ul> + +<p></p> +<b>Special notes:</b> +<p> </p> +SMTSO-256-ET is a "flush mount" nut for a 4-40 screw. We mostly use this on specialty testbeds; it is a nice way to connect hardware to your PCB at an adjustable hieght. +<p></p> +Also note, the SNAP packages are for using a snappable style connector. We sell a baggie of snaps and they are also used on two LilyPad designs: +<ul> +<li><a href="https://www.sparkfun.com/products/11347"> Snap Assortment - 30 pack (male and female)</a> (DEV-11347)</li> +<li><a href="https://www.sparkfun.com/products/10941">LilyPad Arduino SimpleSnap</a> (DEV-10941)</li> +<li><a href="https://www.sparkfun.com/products/10940"> LilyPad SimpleSnap Protoboard</a> (DEV-10940)</li> +<p></p> +</ul> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>Multi connection point. Often used as Generic Header-pin footprint for 0.1 inch spaced/style header connections</h3> + +<p></p> +<b>On any of the 0.1 inch spaced packages, you can populate with these:</b> +<ul> +<li><a href="https://www.sparkfun.com/products/116"> Break Away Headers - Straight</a> (PRT-00116)</li> +<li><a href="https://www.sparkfun.com/products/553"> Break Away Male Headers - Right Angle</a> (PRT-00553)</li> +<li><a href="https://www.sparkfun.com/products/115"> Female Headers</a> (PRT-00115)</li> +<li><a href="https://www.sparkfun.com/products/117"> Break Away Headers - Machine Pin</a> (PRT-00117)</li> +<li><a href="https://www.sparkfun.com/products/743"> Break Away Female Headers - Swiss Machine Pin</a> (PRT-00743)</li> +</ul> + +<p></p> +<b> For SCREWTERMINALS and SPRING TERMINALS visit here:</b> +<ul> +<li><a href="https://www.sparkfun.com/search/results?term=Screw+Terminals"> Screw Terimnals on SparkFun.com</a> (5mm/3.5mm/2.54mm spacing)</li> +</ul> + +<p></p> +<b>This device is also useful as a general connection point to wire up your design to another part of your project. Our various solder wires solder well into these plated through hole pads.</b> +<ul> +<li><a href="https://www.sparkfun.com/products/11375"> Hook-Up Wire - Assortment (Stranded, 22 AWG)</a> (PRT-11375)</li> +<li><a href="https://www.sparkfun.com/products/11367"> Hook-Up Wire - Assortment (Solid Core, 22 AWG)</a> (PRT-11367)</li> +<li><a href="https://www.sparkfun.com/categories/141"> View the entire wire category on our website here</a></li> +<p></p> +</ul> + +<p></p> +<b>Special notes:</b> +<p> </p> Molex polarized connector foot print use with SKU : PRT-08231 with associated crimp pins and housings. 1MM SMD Version SKU: PRT-10208 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +TEENSY 3.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + +<b>Teensy 3.2</b> - Microcontroller + +<p>Technical Specifications: +<ul> +<li>VCC: 3.3V signals, 5V tolerant</li> +<li>72 MHz Cortex-M4</li> +<li>32 bit ARM Processor</li> +<li>100% Compatible with Teensy 3.1</li> +</ul> +</p> + +<p>pjrc.com/store/teensy32.html <BR/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Resistors</h3> +This library contains resistors. Reference designator:R. +<br> +<br> +We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. +<br> +<br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. +<br> +<br> +<b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ +<br> +<br> +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. + + +<h3>AXIAL-0.3</h3> +<p>Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.</p> + + + + + + + + + + +>Name +>Value + + +<h3>AXIAL-0.1</h3> +<p>Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.</p> + + + + + + +>Name +>Value + + +<h3>AXIAL-0.1-KIT</h3> +<p>Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.</p> +<p><b>Warning:</b> This is the KIT version of the AXIAL-0.1 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</p> + + + + + + +>Name +>Value + + + + + + + +<h3>AXIAL-0.3-KIT</h3> +<p>Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.</p> +<p><b>Warning:</b> This is the KIT version of the AXIAL-0.3 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</p> + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + +<p><b>Generic 1608 (0603) package</b></p> +<p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + +<h3>10kΩ resistor</h3> +<p>A resistor is a passive two-terminal electrical component that implements electrical resistance as a circuit element. Resistors act to reduce current flow, and, at the same time, act to lower voltage levels within circuits. - Wikipedia</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Power Switch +HOTKEY +HOTKEY_RTN +SENSE(0) +SENSE(1) +SENSE(2) +SENSE(3) +SENSE(4) +SENSE(5) +SENSE(6) +SENSE(7) +DRV(0) +DRV(1) +DRV(2) +DRV(3) +DRV(4) +DRV(5) +DRV(6) +DRV(7) +DRV(8) +DRV(9) +DRV(10) +DRV(11) +DRV(12) +DRV(13) +DRV(14) +DRV(15) +5V +TP_RST +TP_CLK +TP_DATA +GND +NO CONNECTS +PWR_SW +NO CONNECTS +LEDs +PULLUPS +Fn- +Fn+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +