text:
package int

import (
	"context"
	"database/sql"
	"fmt"
	"os"
	"os/signal"
	"strconv"
	"strings"
	"syscall"
	"testing"
	"time"

	"github.com/google/uuid"
	. "github.com/obsidiandynamics/goharvest"
	"github.com/obsidiandynamics/goharvest/stasher"
	"github.com/obsidiandynamics/libstdgo/check"
	"github.com/obsidiandynamics/libstdgo/concurrent"
	"github.com/obsidiandynamics/libstdgo/diags"
	"github.com/obsidiandynamics/libstdgo/fault"
	"github.com/obsidiandynamics/libstdgo/scribe"
	"github.com/obsidiandynamics/libstdgo/scribe/overlog"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
	"gopkg.in/confluentinc/confluent-kafka-go.v1/kafka"
)

type externals struct {
	cons  *kafka.Consumer
	admin *kafka.AdminClient
	db    *sql.DB
}

const (
	kafkaNamespace                = "goharvest_test"
	topic                         = kafkaNamespace + ".topic"
	partitions                    = 10
	dbSchema                      = "goharvest_test"
	outboxTable                   = dbSchema + ".outbox"
	leaderTopic                   = kafkaNamespace + ".neli"
	leaderGroupID                 = kafkaNamespace + ".group"
	receiverGroupID               = kafkaNamespace + ".receiver_group"
	bootstrapServers              = "localhost:9092"
	dataSource                    = "host=localhost port=5432 user=postgres password= dbname=postgres sslmode=disable"
	generateInterval              = 5 * time.Millisecond
	generateRecordsPerTxn         = 20
	generateMinRecords            = 100
	generateUniqueKeys            = 10
	receiverPollDuration          = 500 * time.Millisecond
	receiverNoMessagesWarningTime = 10 * time.Second
	waitTimeout                   = 90 * time.Second
)

var logger = overlog.New(overlog.StandardFormat())
var scr = scribe.New(overlog.Bind(logger))

func openExternals() externals {
	cons, err := kafka.NewConsumer(&kafka.ConfigMap{
		"bootstrap.servers":  bootstrapServers,
		"group.id":           receiverGroupID,
		"enable.auto.commit": true,
		"auto.offset.reset":  "earliest",
		"socket.timeout.ms":  10000,
		// "debug":              "all",
	})
	if err != nil {
		panic(err)
	}

	admin, err := kafka.NewAdminClientFromConsumer(cons)
	if err != nil {
		panic(err)
	}
	for {
		result, err := admin.CreateTopics(context.Background(), []kafka.TopicSpecification{
			{
				Topic:             topic,
				NumPartitions:     partitions,
				ReplicationFactor: 1,
			},
		})
		if err != nil {
			if isFatalError(err) {
				panic(err)
			} else {
				// Allow for timeouts and other non-fatal errors.
				scr.W()("Non-fatal error creating topic: %v", err)
			}
		} else {
			if result[0].Error.Code() == kafka.ErrTopicAlreadyExists {
				scr.I()("Topic %s already exists", topic)
			} else if result[0].Error.Code() != kafka.ErrNoError {
				panic(result[0].Error)
			}
			break
		}
	}

	db, err := sql.Open("postgres", dataSource)
	if err != nil {
		panic(err)
	}

	const ddlTemplate = `
		CREATE SCHEMA IF NOT EXISTS %s;
		DROP TABLE IF EXISTS %s;
		CREATE TABLE %s (
			id                  BIGSERIAL PRIMARY KEY,
			create_time         TIMESTAMP WITH TIME ZONE NOT NULL,
			kafka_topic         VARCHAR(249) NOT NULL,
			kafka_key           VARCHAR(5) NOT NULL,
			kafka_value         VARCHAR(50),
			kafka_header_keys   TEXT[] NOT NULL,
			kafka_header_values TEXT[] NOT NULL,
			leader_id           UUID
		)
	`
	_, err = db.Exec(fmt.Sprintf(ddlTemplate, dbSchema, outboxTable, outboxTable))
	if err != nil {
		panic(err)
	}

	return externals{cons, admin, db}
}

func (x *externals) close() {
	x.cons.Close()
	x.db.Close()
	x.admin.Close()
}

func wait(t check.Tester) check.Timesert {
	return check.Wait(t, waitTimeout)
}

func TestOneNode_withFailures(t *testing.T) {
	test(t, 1, 5*time.Second, ProducerFaultSpecs{
		OnProduce:  fault.Spec{Cnt: fault.Random(0.02), Err: check.ErrSimulated},
		OnDelivery: fault.Spec{Cnt: fault.Random(0.02), Err: check.ErrSimulated},
	})
}

func TestFourNodes_withFailures(t *testing.T) {
	test(t, 4, 5*time.Second, ProducerFaultSpecs{
		OnProduce:  fault.Spec{Cnt: fault.Random(0.02), Err: check.ErrSimulated},
		OnDelivery: fault.Spec{Cnt: fault.Random(0.02), Err: check.ErrSimulated},
	})
}

func TestEightNodes_withoutFailures(t *testing.T) {
	test(t, 8, 2*time.Second, ProducerFaultSpecs{})
}

func test(t *testing.T, numHarvests int, spawnInterval time.Duration, producerFaultSpecs ProducerFaultSpecs) {
	check.RequireLabel(t, "int")
	installSigQuitHandler()

	testID, _ := uuid.NewRandom()
	x := openExternals()
	defer x.close()

	scr.I()("Starting generator")
	generator := startGenerator(t, testID, x.db, generateInterval, generateUniqueKeys)
	defer func() { <-generator.stop() }()

	scr.I()("Starting receiver")
	receiver := startReceiver(t, testID, x.cons)
	defer func() { <-receiver.stop() }()

	harvests := make([]Harvest, numHarvests)
	defer func() {
		for _, h := range harvests {
			if h != nil {
				h.Stop()
			}
		}
	}()
	// Start harvests at a set interval.
	for i := 0; i < numHarvests; i++ {
		config := Config{
			KafkaProducerProvider: FaultyKafkaProducerProvider(StandardKafkaProducerProvider(), producerFaultSpecs),
			Name:                  fmt.Sprintf("harvest-#%d", i+1),
			Scribe:                scribe.New(overlog.Bind(logger)),
			BaseKafkaConfig: KafkaConfigMap{
				"bootstrap.servers": bootstrapServers,
				"socket.timeout.ms": 10000,
			},
			ProducerKafkaConfig: KafkaConfigMap{
				"delivery.timeout.ms": 10000,
				// "debug":               "broker,topic,metadata",
			},
			LeaderTopic:   leaderTopic,
			OutboxTable:   outboxTable,
			LeaderGroupID: leaderGroupID,
			DataSource:    dataSource,
			Limits: Limits{
				MinPollInterval: Duration(100 * time.Millisecond),
				MarkBackoff:     Duration(1 * time.Millisecond),
				IOErrorBackoff:  Duration(1 * time.Millisecond),
			},
		}
		config.Scribe.SetEnabled(scribe.Trace)

		scr.I()("Starting harvest %d/%d", i+1, numHarvests)
		h, err := New(config)
		require.Nil(t, err)
		harvests[i] = h
		require.Nil(t, h.Start())

		scr.I()("Sleeping")
		sleepWithDeadline(spawnInterval)
	}

	// Stop harvests in the order they were started, except for the last one. The last harvest will be stopped
	// only after we've asserted the receipt of all messages.
	for i := 0; i < numHarvests-1; i++ {
		scr.I()("Stopping harvest %d/%d", i+1, numHarvests)
		harvests[i].Stop()
		scr.I()("In-flight records: %d", harvests[i].InFlightRecords())
		sleepWithDeadline(spawnInterval)
	}

	// Wait until the generator produces some records. Once we've produced enough records, stop the
	// generator so that we can assert receipt.
	generator.recs.Fill(generateMinRecords, concurrent.Indefinitely)
	scr.I()("Stopping generator")
	<-generator.stop()
	generated := generator.recs.GetInt()
	scr.I()("Generated %d records", generated)

	// Wait until we received all records. Keep sliding in bite-sized chunks through successive assertions so that, as
	// long as we keep on receiving records, the assertion does not fail. This deals with slow harvesters (when we are
	// simulating lots of faults).
	const waitBatchSize = 100
	for r := waitBatchSize; r < generated; r += waitBatchSize {
		advanced := wait(t).UntilAsserted(func(t check.Tester) {
			assert.GreaterOrEqual(t, receiver.recs.GetInt(), r)
		})
		if !advanced {
			scr.E()("Stack traces:\n%s", diags.DumpAllStacks())
		}
		require.True(t, advanced)
		scr.I()("Received %d messages", r)
	}
	wait(t).UntilAsserted(func(t check.Tester) {
		assert.GreaterOrEqual(t, receiver.recs.GetInt(), generated)
	})
	assert.Equal(t, generated, receiver.recs.GetInt())
	scr.I()("Stopping receiver")
	<-receiver.stop()

	// Stop the last harvest as we've already received all messages and there's nothing more to publish.
	scr.I()("Stopping harvest %d/%d", numHarvests, numHarvests)
	harvests[numHarvests-1].Stop()

	// Await harvests.
	for i, h := range harvests {
		scr.I()("Awaiting harvest %d/%d", i+1, numHarvests)
		assert.Nil(t, h.Await())
	}
	scr.I()("Done")
}

func sleepWithDeadline(duration time.Duration) {
	beforeSleep := time.Now()
	time.Sleep(duration)
	if elapsed := time.Now().Sub(beforeSleep); elapsed > 2*duration {
		scr.W()("Sleep deadline exceeded; expected %v but slept for %v", duration, elapsed)
	}
}

type generator struct {
	cancel  context.CancelFunc
	recs    concurrent.AtomicCounter
	stopped chan int
}

func (g generator) stop() chan int {
	g.cancel()
	return g.stopped
}

func startGenerator(t *testing.T, testID uuid.UUID, db *sql.DB, interval time.Duration, keys int) generator {
	st := stasher.New(outboxTable)
	ctx, cancel := concurrent.Forever(context.Background())
	recs := concurrent.NewAtomicCounter()
	stopped := make(chan int, 1)

	go func() {
		defer scr.T()("Generator exiting")
		defer close(stopped)
		ticker := time.NewTicker(interval)
		defer ticker.Stop()

		var tx *sql.Tx
		defer func() {
			err := finaliseTx(t, tx)
			if err != nil {
				scr.E()("Could not finalise transaction: %v", err)
				t.Errorf("Could not finalise transaction: %v", err)
			}
		}()

		var pre stasher.PreStash
		seq := 0
		for {
			if seq%generateRecordsPerTxn == 0 {
				err := finaliseTx(t, tx)
				if err != nil {
					scr.E()("Could not finalise transaction: %v", err)
					t.Errorf("Could not finalise transaction: %v", err)
					return
				}

				newTx, err := db.Begin()
				tx = newTx
				if err != nil {
					scr.E()("Could not begin transaction: %v", err)
					t.Errorf("Could not begin transaction: %v", err)
					return
				}
				pre, err = st.Prepare(tx)
				if err != nil {
					scr.E()("Could not prepare: %v", err)
					t.Errorf("Could not prepare: %v", err)
					return
				}
			}

			testIDStr := testID.String()
			rec := OutboxRecord{
				KafkaTopic: topic,
				KafkaKey:   strconv.Itoa(seq % keys),
				KafkaValue: String(testIDStr + "_" + strconv.Itoa(seq)),
				KafkaHeaders: KafkaHeaders{
					KafkaHeader{Key: "testId", Value: testIDStr},
				},
			}
			err := pre.Stash(rec)
			if err != nil {
				scr.E()("Could not stash: %v", err)
				t.Errorf("Could not stash: %v", err)
				return
			}

			seq = int(recs.Inc())
			select {
			case <-ctx.Done():
				return
			case <-ticker.C:
			}
		}
	}()

	return generator{cancel, recs, stopped}
}

func finaliseTx(t *testing.T, tx *sql.Tx) error {
	if tx != nil {
		return tx.Commit()
	}
	return nil
}

type receiver struct {
	cancel   context.CancelFunc
	received map[string]int
	recs     concurrent.AtomicCounter
	stopped  chan int
}

func (r receiver) stop() chan int {
	r.cancel()
	return r.stopped
}

func startReceiver(t *testing.T, testID uuid.UUID, cons *kafka.Consumer) receiver {
	received := make(map[string]int)
	ctx, cancel := concurrent.Forever(context.Background())
	recs := concurrent.NewAtomicCounter()
	stopped := make(chan int, 1)

	go func() {
		defer scr.T()("Receiver exiting")
		defer close(stopped)

		successiveTimeouts := 0
		resetTimeouts := func() {
			if successiveTimeouts > 0 {
				successiveTimeouts = 0
			}
		}

		err := cons.Subscribe(topic, func(_ *kafka.Consumer, event kafka.Event) error {
			switch e := event.(type) {
			case kafka.AssignedPartitions:
				resetTimeouts()
				scr.I()("Receiver: assigned partitions %v", e.Partitions)
			case kafka.RevokedPartitions:
				resetTimeouts()
				scr.I()("Receiver: revoked partitions %v", e.Partitions)
			}
			return nil
		})
		if err != nil {
			scr.E()("Could not subscribe: %v", err)
			t.Errorf("Could not subscribe: %v", err)
			return
		}

		lastMessageReceivedTime := time.Now()
		messageAbsencePrinted := false
		expectedTestID := testID.String()
		const partitions = 64
		lastReceivedOffsets := make([]kafka.Offset, partitions)
		for i := 0; i < partitions; i++ {
			lastReceivedOffsets[i] = kafka.Offset(-1)
		}

		for {
			msg, err := cons.ReadMessage(receiverPollDuration)
			if err != nil {
				if isFatalError(err) {
					scr.E()("Fatal error during poll: %v", err)
					t.Errorf("Fatal error during poll: %v", err)
					return
				} else if !isTimedOutError(err) {
					scr.W()("Error during poll: %v", err)
				} else {
					successiveTimeouts++
					logger.Raw(".")
				}
			}

			if msg != nil {
				if msg.TopicPartition.Offset <= lastReceivedOffsets[msg.TopicPartition.Partition] {
					scr.D()("Skipping duplicate delivery at offset %d", msg.TopicPartition.Offset)
					continue
				}
				lastReceivedOffsets[msg.TopicPartition.Partition] = msg.TopicPartition.Offset
				lastMessageReceivedTime = time.Now()
				messageAbsencePrinted = false

				resetTimeouts()

				valueFrags := strings.Split(string(msg.Value), "_")
				if len(valueFrags) != 2 {
					scr.E()("invalid value '%s'", string(msg.Value))
					t.Errorf("invalid value '%s'", string(msg.Value))
					return
				}
				receivedTestID, value := valueFrags[0], valueFrags[1]
				if receivedTestID != expectedTestID {
					scr.I()("Skipping %s (test ID %s)", string(msg.Value), expectedTestID)
					continue
				}
				key := string(msg.Key)

				receivedSeq, err := strconv.Atoi(value)
				if err != nil {
					scr.E()("Could not convert message value to sequence: '%s'", value)
					t.Errorf("Could not convert message value to sequence: '%s'", value)
					return
				}

				if assert.Equal(t, 1, len(msg.Headers)) {
					assert.Equal(t, expectedTestID, string(msg.Headers[0].Value))
				}

				if existingSeq, ok := received[key]; ok {
					if assert.GreaterOrEqual(t, receivedSeq, existingSeq) {
						if receivedSeq > existingSeq {
							received[key] = receivedSeq
							recs.Inc()
						} else {
							scr.I()("Received duplicate %d for key %s (this is okay)", existingSeq, key)
						}
					} else {
						scr.E()("Received records out of order, %d is behind %d", receivedSeq, existingSeq)
						t.Errorf("Received records out of order, %d is behind %d", receivedSeq, existingSeq)
					}
				} else {
					keyInt, err := strconv.Atoi(key)
					if err != nil {
						scr.E()("Could not convert message key '%s'", key)
						t.Errorf("Could not convert message key '%s'", key)
						return
					}
					if assert.Equal(t, keyInt, receivedSeq) {
						recs.Inc()
						received[key] = receivedSeq
					}
				}
			} else {
				elapsed := time.Now().Sub(lastMessageReceivedTime)
				if elapsed > receiverNoMessagesWarningTime && !messageAbsencePrinted {
					scr.W()("No messages received since %v", lastMessageReceivedTime)
					messageAbsencePrinted = true
				}
			}

			select {
			case <-ctx.Done():
				return
			default:
			}
		}
	}()

	return receiver{cancel, received, recs, stopped}
}

func isTimedOutError(err error) bool {
	kafkaError, ok := err.(kafka.Error)
	return ok && kafkaError.Code() == kafka.ErrTimedOut
}

func isFatalError(err error) bool {
	kafkaError, ok := err.(kafka.Error)
	return ok && kafkaError.IsFatal()
}

var sigQuitHandlerInstalled = concurrent.NewAtomicCounter()

func installSigQuitHandler() {
	if sigQuitHandlerInstalled.CompareAndSwap(0, 1) {
		sig := make(chan os.Signal, 1)
		go func() {
			signal.Notify(sig, syscall.SIGQUIT)
			select {
			case <-sig:
				scr.I()("Stack\n%s", diags.DumpAllStacks())
			}
		}()
	}
}

repository: kokizzu/goharvest

repo_name: kokizzu/goharvest


text:
import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';
import { DocGen } from '@ngx-kit/docgen/meta';

@Component({
  selector: 'app-module-page-function-declar',
  templateUrl: './module-page-function-declar.component.html',
  styleUrls: ['./module-page-function-declar.component.scss'],
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class ModulePageFunctionDeclarComponent implements OnInit {
  @Input() declar: DocGen.FunctionDeclar;

  constructor() { }

  ngOnInit() {
  }

}

license: MIT

repository: ngx-kit/sula

license_type: permissive

repo_name: ngx-kit/sula

branch_name: refs/heads/master

gha_license_id: MIT

gha_language: TypeScript

extension: ts


text:
// Code generated by protoc-gen-micro. DO NOT EDIT.
// source: test-grpc/hello.proto

package test_grpc

import (
	fmt "fmt"
	proto "google.golang.org/protobuf/proto"
	math "math"
)

import (
	context "context"
	api "go-micro.dev/v4/api"
	client "go-micro.dev/v4/client"
	server "go-micro.dev/v4/server"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// Reference imports to suppress errors if they are not otherwise used.
var _ api.Endpoint
var _ context.Context
var _ client.Option
var _ server.Option

// Api Endpoints for TestRPC service

func NewTestRPCEndpoints() []*api.Endpoint {
	return []*api.Endpoint{}
}

// Client API for TestRPC service

type TestRPCService interface {
	Hello(ctx context.Context, in *HelloReq, opts ...client.CallOption) (*HelloRsp, error)
}

type testRPCService struct {
	c    client.Client
	name string
}

func NewTestRPCService(name string, c client.Client) TestRPCService {
	return &testRPCService{
		c:    c,
		name: name,
	}
}

func (c *testRPCService) Hello(ctx context.Context, in *HelloReq, opts ...client.CallOption) (*HelloRsp, error) {
	req := c.c.NewRequest(c.name, "TestRPC.Hello", in)
	out := new(HelloRsp)
	err := c.c.Call(ctx, req, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for TestRPC service

type TestRPCHandler interface {
	Hello(context.Context, *HelloReq, *HelloRsp) error
}

func RegisterTestRPCHandler(s server.Server, hdlr TestRPCHandler, opts ...server.HandlerOption) error {
	type testRPC interface {
		Hello(ctx context.Context, in *HelloReq, out *HelloRsp) error
	}
	type TestRPC struct {
		testRPC
	}
	h := &testRPCHandler{hdlr}
	return s.Handle(s.NewHandler(&TestRPC{h}, opts...))
}

type testRPCHandler struct {
	TestRPCHandler
}

func (h *testRPCHandler) Hello(ctx context.Context, in *HelloReq, out *HelloRsp) error {
	return h.TestRPCHandler.Hello(ctx, in, out)
}

// Api Endpoints for TestMultiRPC service

func NewTestMultiRPCEndpoints() []*api.Endpoint {
	return []*api.Endpoint{}
}

// Client API for TestMultiRPC service

type TestMultiRPCService interface {
	World(ctx context.Context, in *WorldReq, opts ...client.CallOption) (*WorldRsp, error)
}

type testMultiRPCService struct {
	c    client.Client
	name string
}

func NewTestMultiRPCService(name string, c client.Client) TestMultiRPCService {
	return &testMultiRPCService{
		c:    c,
		name: name,
	}
}

func (c *testMultiRPCService) World(ctx context.Context, in *WorldReq, opts ...client.CallOption) (*WorldRsp, error) {
	req := c.c.NewRequest(c.name, "TestMultiRPC.World", in)
	out := new(WorldRsp)
	err := c.c.Call(ctx, req, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for TestMultiRPC service

type TestMultiRPCHandler interface {
	World(context.Context, *WorldReq, *WorldRsp) error
}

func RegisterTestMultiRPCHandler(s server.Server, hdlr TestMultiRPCHandler, opts ...server.HandlerOption) error {
	type testMultiRPC interface {
		World(ctx context.Context, in *WorldReq, out *WorldRsp) error
	}
	type TestMultiRPC struct {
		testMultiRPC
	}
	h := &testMultiRPCHandler{hdlr}
	return s.Handle(s.NewHandler(&TestMultiRPC{h}, opts...))
}

type testMultiRPCHandler struct {
	TestMultiRPCHandler
}

func (h *testMultiRPCHandler) World(ctx context.Context, in *WorldReq, out *WorldRsp) error {
	return h.TestMultiRPCHandler.World(ctx, in, out)
}

repository: jdxj/sign

repo_name: jdxj/sign

gha_language: Go

extension: go


text:
/*
 * OLED W/B Click board driver.
 *  - This driver can be used for the OLED W or OLED B Click boards by MikroE.
 * Version 1.0 :
 *  - Initial version coded by Stephen Cardinale
 *
 * References needed :
 *  Microsoft.SPOT.Hardware
 *  Microsoft.SPOT.Native
 *  MikroBusNet
 *  mscorlib
 *
 * Copyright 2014 MikroBus.Net
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language governing permissions and limitations under the License.
 */

using System;

namespace MBN.Modules
 {
    /// <summary>
    /// Abstracts a 1 bit depth bitmap expressed as a flat array of 8 bit values.
    /// </summary>
    public class Bitmap
	{
	    private static byte[] _bitmapData;
	    private static int _width;
	    private static int _height;

		/// <summary>
		/// A Abstract monochrome bitmap object that is usable by the drawing methods of the OLEDWB Click.
		/// </summary>
		/// <param name="data">An array of bytes representing the actual bitmap data.</param>
		/// <param name="widthInPixels">Width of the bitmap object in pixels.</param>
		/// <param name="heightInPixels">Height of the bitmap object in pixels.</param>
        public Bitmap(byte[] data, int widthInPixels, int heightInPixels)
		{
            if ((heightInPixels % 8) != 0 || (widthInPixels % 8) != 0) { throw new ArgumentException("height and width must be multiples of 8"); }
            if (data.Length != heightInPixels * widthInPixels / 8) { throw new ArgumentException("Data must be consistent with width and height.", "data"); }

            _width = widthInPixels;
            _height = heightInPixels;
			_bitmapData = data;
        }

        /// <summary>
        /// Gets the Width of the bitmap in pixels
        /// </summary>
        public int Width { get { return _width; } }

        /// <summary>
        /// Gets the Height of the bitmap in pixels
        /// </summary>
        public int Height { get { return _height; } }

		/// <summary>
		/// An array of bytes representing the actual bitmap data.
		/// </summary>
		public byte[] BitmapDataBytes { get { return _bitmapData; } }

		/// <summary>
		/// Parses a valid bitmap object usable by the OLEDWB Click from a file or embedded resource generated by LCDAssistant.
		/// LCDAssistant can be obtained from <see href="http://en.radzio.dxp.pl"/>LCDAssistant/>.
		/// </summary>
		/// <param name="imageDataFromResource">A string containing the monochrome bitmap data.</param>
		/// <returns>A <see cref="Bitmap"/> object usable by the drawing methods of the <see cref="OLEDWBClick"/> class.</returns>
		/// <remarks>Be sure to include the size information in the generated file by checking the "Include size" check box and to select the Little Edianness Radio Button </remarks>
		public static Bitmap Parse(string imageDataFromResource)
		{
			// Remove the header information.
			int start = imageDataFromResource.IndexOf('{');
			var trimmed = imageDataFromResource.Substring(start + 1, 24).TrimEnd(new[] { '\n', '\r' });

			// Find the image dimensions.
			string[] splitString = trimmed.Split(new[] { ',' });

			if (splitString.Length != 4) throw new NotImplementedException("Resource information does not contain the image dimensions.");
			var pixelWidth = Convert.ToInt32(splitString[0].TrimStart(new[] { '\r', '\n' }).TrimEnd(new[] { '\n', '\r' }), 16);
			var pixelHeight = Convert.ToInt32(splitString[2].TrimStart(new[] { '\n', '\r' }).TrimEnd(new[] { '\n', '\r' }), 16);

			// Parse the image data bytes and return a Bitmap.
			trimmed = imageDataFromResource.Substring(start + 26, imageDataFromResource.Length - start - 26).Trim().TrimEnd('}', ';');
			splitString = trimmed.Split(new[] { ',' });
			var returnBytes = new byte[splitString.Length];

			for (var x = 0; x < returnBytes.Length; x++)
			{
				returnBytes[x] = (byte)Convert.ToInt32(splitString[x].TrimStart(new[] { '\n', '\r' }).TrimEnd(new[] { '\n', '\r' }), 16);
			}

			return new Bitmap(returnBytes, pixelWidth, pixelHeight);
		}

    }
}

extension: cs


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="7.3.0">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.0635" unitdist="mm" unit="mm" style="lines" multiple="10" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="yes" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="yes" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="yes" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="yes" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="yes" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="yes" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="yes" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="yes" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="yes" active="yes"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Mittellin" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="Stiffner" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="7" fill="1" visible="yes" active="yes"/>
<layer number="105" name="Beschreib" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="BGA-Top" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="BD-Top" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="tBridges" color="7" fill="1" visible="yes" active="yes"/>
<layer number="109" name="tBPL" color="7" fill="1" visible="yes" active="yes"/>
<layer number="110" name="bBPL" color="7" fill="1" visible="yes" active="yes"/>
<layer number="111" name="MPL" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="121" name="sName" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="yes" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" active="yes"/>
<layer number="250" name="Descript" color="7" fill="1" visible="yes" active="yes"/>
<layer number="251" name="SMDround" color="7" fill="1" visible="yes" active="yes"/>
<layer number="254" name="cooling" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<text x="7.486" y="76.483" size="0.8128" layer="1" font="vector" ratio="18">TXD</text>
<text x="7.486" y="73.943" size="0.8128" layer="1" font="vector" ratio="18">RXD</text>
<text x="7.486" y="71.403" size="0.8128" layer="1" font="vector" ratio="18">CTS</text>
<text x="7.486" y="68.863" size="0.8128" layer="1" font="vector" ratio="18">RTS</text>
<text x="7.486" y="66.323" size="0.8128" layer="1" font="vector" ratio="18">P2_1*</text>
<text x="7.486" y="63.783" size="0.8128" layer="1" font="vector" ratio="18">P2_2*</text>
<text x="7.486" y="61.243" size="0.8128" layer="1" font="vector" ratio="18">P2_2</text>
<text x="7.486" y="58.703" size="0.8128" layer="1" font="vector" ratio="18">P2_1</text>
<text x="7.486" y="56.163" size="0.8128" layer="1" font="vector" ratio="18">P2_0</text>
<text x="7.486" y="53.623" size="0.8128" layer="1" font="vector" ratio="18">*</text>
<text x="7.486" y="51.083" size="0.8128" layer="1" font="vector" ratio="18">RESET</text>
<text x="7.486" y="48.543" size="0.8128" layer="1" font="vector" ratio="18">3.3V</text>
<text x="34.1115" y="76.1965" size="0.8128" layer="1" font="vector" ratio="18">0_6/P0_0</text>
<text x="34.1115" y="73.72" size="0.8128" layer="1" font="vector" ratio="18">0_7/P0_1</text>
<text x="34.175" y="71.18" size="0.8128" layer="1" font="vector" ratio="18">1_0/P0_2</text>
<text x="34.175" y="68.767" size="0.8128" layer="1" font="vector" ratio="18">1_1/P0_3</text>
<text x="34.175" y="66.227" size="0.8128" layer="1" font="vector" ratio="18">GND/P0_4</text>
<text x="34.175" y="63.687" size="0.8128" layer="1" font="vector" ratio="18">RST/P0_5</text>
<text x="37.223" y="61.147" size="0.8128" layer="1" font="vector" ratio="18">P0_6</text>
<text x="34.175" y="58.353" size="0.8128" layer="1" font="vector" ratio="18">VCC/P0_7</text>
<text x="37.223" y="56.067" size="0.8128" layer="1" font="vector" ratio="18">P1_0</text>
<text x="37.223" y="53.781" size="0.8128" layer="1" font="vector" ratio="18">P1_1</text>
<text x="37.223" y="50.987" size="0.8128" layer="1" font="vector" ratio="18">P1_2</text>
<text x="37.223" y="48.447" size="0.8128" layer="1" font="vector" ratio="18">P1_3</text>
<text x="37.9215" y="45.653" size="0.8128" layer="1" font="vector" ratio="18">GND</text>
<text x="7.486" y="46.003" size="0.8128" layer="1" font="vector" ratio="18">GND</text>
<text x="18.289" y="38.7" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">GND</text>
<text x="18.289" y="44.796" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">VCC</text>
<text x="20.448" y="44.796" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">CS</text>
<text x="22.861" y="38.7" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">SI</text>
<text x="22.988" y="44.796" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">SO</text>
<text x="25.909" y="38.7" size="0.8128" layer="1" font="vector" ratio="18" rot="R180">CLK</text>
<text x="36.577" y="49.368" size="0.8128" layer="1" font="vector" ratio="18" rot="R90">HM-11</text>
<wire x1="4.318" y1="37.719" x2="43.053" y2="37.719" width="0.2032" layer="20"/>
<wire x1="43.053" y1="37.719" x2="43.053" y2="77.978" width="0.2032" layer="20"/>
<wire x1="43.053" y1="77.978" x2="34.671" y2="77.978" width="0.2032" layer="20"/>
<wire x1="10.16" y1="77.978" x2="4.318" y2="77.978" width="0.2032" layer="20"/>
<wire x1="4.318" y1="37.719" x2="4.318" y2="77.978" width="0.2032" layer="20"/>
<wire x1="10.16" y1="77.978" x2="15.748" y2="72.39" width="0.2032" layer="20"/>
<wire x1="15.748" y1="72.39" x2="29.083" y2="72.39" width="0.2032" layer="20"/>
<wire x1="29.083" y1="72.39" x2="34.671" y2="77.978" width="0.2032" layer="20"/>
<text x="39.371" y="38.192" size="0.8128" layer="1" font="vector" ratio="18" rot="R90">APLA.ME</text>
<text x="40.641" y="38.192" size="0.8128" layer="1" font="vector" ratio="18" rot="R90">BLE-DBG</text>
<text x="41.911" y="38.192" size="0.8128" layer="1" font="vector" ratio="18" rot="R90">20140819</text>
<text x="17.265" y="52.099" size="0.8128" layer="1" font="vector" ratio="18">HM-1x - CC254x</text>
<wire x1="14.732" y1="70.866" x2="16.256" y2="70.866" width="0.127" layer="20"/>
<wire x1="16.3195" y1="69.85" x2="14.732" y2="69.85" width="0.127" layer="20"/>
<wire x1="14.732" y1="69.85" x2="14.732" y2="70.866" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="70.866" x2="16.3195" y2="69.85" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="69.342" x2="16.256" y2="69.342" width="0.127" layer="20"/>
<wire x1="16.3195" y1="68.326" x2="14.732" y2="68.326" width="0.127" layer="20"/>
<wire x1="14.732" y1="68.326" x2="14.732" y2="69.342" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="69.342" x2="16.3195" y2="68.326" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="67.818" x2="16.256" y2="67.818" width="0.127" layer="20"/>
<wire x1="16.3195" y1="66.802" x2="14.732" y2="66.802" width="0.127" layer="20"/>
<wire x1="14.732" y1="66.802" x2="14.732" y2="67.818" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="67.818" x2="16.3195" y2="66.802" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="66.3575" x2="16.256" y2="66.3575" width="0.127" layer="20"/>
<wire x1="16.3195" y1="65.3415" x2="14.732" y2="65.3415" width="0.127" layer="20"/>
<wire x1="14.732" y1="65.3415" x2="14.732" y2="66.3575" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="66.3575" x2="16.3195" y2="65.3415" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="64.8335" x2="16.256" y2="64.8335" width="0.127" layer="20"/>
<wire x1="16.3195" y1="63.8175" x2="14.732" y2="63.8175" width="0.127" layer="20"/>
<wire x1="14.732" y1="63.8175" x2="14.732" y2="64.8335" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="64.8335" x2="16.3195" y2="63.8175" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="63.3095" x2="16.256" y2="63.3095" width="0.127" layer="20"/>
<wire x1="16.3195" y1="62.2935" x2="14.732" y2="62.2935" width="0.127" layer="20"/>
<wire x1="14.732" y1="62.2935" x2="14.732" y2="63.3095" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="63.3095" x2="16.3195" y2="62.2935" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="61.7855" x2="16.256" y2="61.7855" width="0.127" layer="20"/>
<wire x1="16.3195" y1="60.7695" x2="14.732" y2="60.7695" width="0.127" layer="20"/>
<wire x1="14.732" y1="60.7695" x2="14.732" y2="61.7855" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="61.7855" x2="16.3195" y2="60.7695" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="60.325" x2="16.256" y2="60.325" width="0.127" layer="20"/>
<wire x1="16.3195" y1="59.309" x2="14.732" y2="59.309" width="0.127" layer="20"/>
<wire x1="14.732" y1="59.309" x2="14.732" y2="60.325" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="60.325" x2="16.3195" y2="59.309" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="58.8645" x2="16.256" y2="58.8645" width="0.127" layer="20"/>
<wire x1="16.3195" y1="57.8485" x2="14.732" y2="57.8485" width="0.127" layer="20"/>
<wire x1="14.732" y1="57.8485" x2="14.732" y2="58.8645" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="58.8645" x2="16.3195" y2="57.8485" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="57.3405" x2="16.256" y2="57.3405" width="0.127" layer="20"/>
<wire x1="16.3195" y1="56.3245" x2="14.732" y2="56.3245" width="0.127" layer="20"/>
<wire x1="14.732" y1="56.3245" x2="14.732" y2="57.3405" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="57.3405" x2="16.3195" y2="56.3245" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="55.8165" x2="16.256" y2="55.8165" width="0.127" layer="20"/>
<wire x1="16.3195" y1="54.8005" x2="14.732" y2="54.8005" width="0.127" layer="20"/>
<wire x1="14.732" y1="54.8005" x2="14.732" y2="55.8165" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="55.8165" x2="16.3195" y2="54.8005" width="0.127" layer="20" curve="-180"/>
<wire x1="14.732" y1="54.356" x2="16.256" y2="54.356" width="0.127" layer="20"/>
<wire x1="16.3195" y1="53.34" x2="14.732" y2="53.34" width="0.127" layer="20"/>
<wire x1="14.732" y1="53.34" x2="14.732" y2="54.356" width="0.127" layer="20" curve="-180"/>
<wire x1="16.256" y1="54.356" x2="16.3195" y2="53.34" width="0.127" layer="20" curve="-180"/>
<wire x1="16.637" y1="49.403" x2="16.637" y2="50.927" width="0.127" layer="20"/>
<wire x1="17.653" y1="50.9905" x2="17.653" y2="49.403" width="0.127" layer="20"/>
<wire x1="17.653" y1="49.403" x2="16.637" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="16.637" y1="50.927" x2="17.653" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="18.161" y1="49.403" x2="18.161" y2="50.927" width="0.127" layer="20"/>
<wire x1="19.177" y1="50.9905" x2="19.177" y2="49.403" width="0.127" layer="20"/>
<wire x1="19.177" y1="49.403" x2="18.161" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="18.161" y1="50.927" x2="19.177" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="19.685" y1="49.403" x2="19.685" y2="50.927" width="0.127" layer="20"/>
<wire x1="20.701" y1="50.9905" x2="20.701" y2="49.403" width="0.127" layer="20"/>
<wire x1="20.701" y1="49.403" x2="19.685" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="19.685" y1="50.927" x2="20.701" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="21.1455" y1="49.403" x2="21.1455" y2="50.927" width="0.127" layer="20"/>
<wire x1="22.1615" y1="50.9905" x2="22.1615" y2="49.403" width="0.127" layer="20"/>
<wire x1="22.1615" y1="49.403" x2="21.1455" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="21.1455" y1="50.927" x2="22.1615" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="22.606" y1="49.403" x2="22.606" y2="50.927" width="0.127" layer="20"/>
<wire x1="23.622" y1="50.9905" x2="23.622" y2="49.403" width="0.127" layer="20"/>
<wire x1="23.622" y1="49.403" x2="22.606" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="22.606" y1="50.927" x2="23.622" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="24.13" y1="49.403" x2="24.13" y2="50.927" width="0.127" layer="20"/>
<wire x1="25.146" y1="50.9905" x2="25.146" y2="49.403" width="0.127" layer="20"/>
<wire x1="25.146" y1="49.403" x2="24.13" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="24.13" y1="50.927" x2="25.146" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="25.654" y1="49.403" x2="25.654" y2="50.927" width="0.127" layer="20"/>
<wire x1="26.67" y1="50.9905" x2="26.67" y2="49.403" width="0.127" layer="20"/>
<wire x1="26.67" y1="49.403" x2="25.654" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="25.654" y1="50.927" x2="26.67" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="27.1145" y1="49.403" x2="27.1145" y2="50.927" width="0.127" layer="20"/>
<wire x1="28.1305" y1="50.9905" x2="28.1305" y2="49.403" width="0.127" layer="20"/>
<wire x1="28.1305" y1="49.403" x2="27.1145" y2="49.403" width="0.127" layer="20" curve="-180"/>
<wire x1="27.1145" y1="50.927" x2="28.1305" y2="50.9905" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="70.866" x2="29.9085" y2="70.866" width="0.127" layer="20"/>
<wire x1="29.972" y1="69.85" x2="28.3845" y2="69.85" width="0.127" layer="20"/>
<wire x1="28.3845" y1="69.85" x2="28.3845" y2="70.866" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="70.866" x2="29.972" y2="69.85" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="69.342" x2="29.9085" y2="69.342" width="0.127" layer="20"/>
<wire x1="29.972" y1="68.326" x2="28.3845" y2="68.326" width="0.127" layer="20"/>
<wire x1="28.3845" y1="68.326" x2="28.3845" y2="69.342" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="69.342" x2="29.972" y2="68.326" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="67.818" x2="29.9085" y2="67.818" width="0.127" layer="20"/>
<wire x1="29.972" y1="66.802" x2="28.3845" y2="66.802" width="0.127" layer="20"/>
<wire x1="28.3845" y1="66.802" x2="28.3845" y2="67.818" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="67.818" x2="29.972" y2="66.802" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="66.3575" x2="29.9085" y2="66.3575" width="0.127" layer="20"/>
<wire x1="29.972" y1="65.3415" x2="28.3845" y2="65.3415" width="0.127" layer="20"/>
<wire x1="28.3845" y1="65.3415" x2="28.3845" y2="66.3575" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="66.3575" x2="29.972" y2="65.3415" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="64.8335" x2="29.9085" y2="64.8335" width="0.127" layer="20"/>
<wire x1="29.972" y1="63.8175" x2="28.3845" y2="63.8175" width="0.127" layer="20"/>
<wire x1="28.3845" y1="63.8175" x2="28.3845" y2="64.8335" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="64.8335" x2="29.972" y2="63.8175" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="63.3095" x2="29.9085" y2="63.3095" width="0.127" layer="20"/>
<wire x1="29.972" y1="62.2935" x2="28.3845" y2="62.2935" width="0.127" layer="20"/>
<wire x1="28.3845" y1="62.2935" x2="28.3845" y2="63.3095" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="63.3095" x2="29.972" y2="62.2935" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="61.7855" x2="29.9085" y2="61.7855" width="0.127" layer="20"/>
<wire x1="29.972" y1="60.7695" x2="28.3845" y2="60.7695" width="0.127" layer="20"/>
<wire x1="28.3845" y1="60.7695" x2="28.3845" y2="61.7855" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="61.7855" x2="29.972" y2="60.7695" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="60.325" x2="29.9085" y2="60.325" width="0.127" layer="20"/>
<wire x1="29.972" y1="59.309" x2="28.3845" y2="59.309" width="0.127" layer="20"/>
<wire x1="28.3845" y1="59.309" x2="28.3845" y2="60.325" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="60.325" x2="29.972" y2="59.309" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="58.8645" x2="29.9085" y2="58.8645" width="0.127" layer="20"/>
<wire x1="29.972" y1="57.8485" x2="28.3845" y2="57.8485" width="0.127" layer="20"/>
<wire x1="28.3845" y1="57.8485" x2="28.3845" y2="58.8645" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="58.8645" x2="29.972" y2="57.8485" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="57.3405" x2="29.9085" y2="57.3405" width="0.127" layer="20"/>
<wire x1="29.972" y1="56.3245" x2="28.3845" y2="56.3245" width="0.127" layer="20"/>
<wire x1="28.3845" y1="56.3245" x2="28.3845" y2="57.3405" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="57.3405" x2="29.972" y2="56.3245" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="55.8165" x2="29.9085" y2="55.8165" width="0.127" layer="20"/>
<wire x1="29.972" y1="54.8005" x2="28.3845" y2="54.8005" width="0.127" layer="20"/>
<wire x1="28.3845" y1="54.8005" x2="28.3845" y2="55.8165" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="55.8165" x2="29.972" y2="54.8005" width="0.127" layer="20" curve="-180"/>
<wire x1="28.3845" y1="54.356" x2="29.9085" y2="54.356" width="0.127" layer="20"/>
<wire x1="29.972" y1="53.34" x2="28.3845" y2="53.34" width="0.127" layer="20"/>
<wire x1="28.3845" y1="53.34" x2="28.3845" y2="54.356" width="0.127" layer="20" curve="-180"/>
<wire x1="29.9085" y1="54.356" x2="29.972" y2="53.34" width="0.127" layer="20" curve="-180"/>
<text x="25.4" y="55.753" size="1.778" layer="16" rot="MR0">back</text>
</plain>
<libraries>
<library name="microbuilder">
<description><h2><b>microBuilder.eu</b> Eagle Footprint Library</h2>

<p>Footprints for common components used in our projects and products.  This is the same library that we use internally, and it is regularly updated.  The newest version can always be found at <b>www.microBuilder.eu</b>.  If you find this library useful, please feel free to purchase something from our online store. Please also note that all holes are optimised for metric drill bits!</p>

<h3>Obligatory Warning</h3>
<p>While it probably goes without saying, there are no guarantees that the footprints or schematic symbols in this library are flawless, and we make no promises of fitness for production, prototyping or any other purpose. These libraries are provided for information puposes only, and are used at your own discretion.  While we make every effort to produce accurate footprints, and many of the items found in this library have be proven in production, we can't make any promises of suitability for a specific purpose. If you do find any errors, though, please feel free to contact us at www.microbuilder.eu to let us know about it so that we can update the library accordingly!</p>

<h3>License</h3>
<p>This work is placed in the public domain, and may be freely used for commercial and non-commercial work with the following conditions:</p>
<p>THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</p></description>
<packages>
<package name="1X13_ROUND_70">
<wire x1="-16.51" y1="0.635" x2="-16.51" y2="-0.635" width="0.2032" layer="51"/>
<pad name="1" x="-15.24" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="2" x="-12.7" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="3" x="-10.16" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="4" x="-7.62" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="5" x="-5.08" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="6" x="-2.54" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="7" x="0" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="8" x="2.54" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="9" x="5.08" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="10" x="7.62" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="11" x="10.16" y="0" drill="1" diameter="1.6764" rot="R90"/>
<pad name="12" x="12.7" y="0" drill="1" diameter="1.6764" rot="R90"/>
<text x="-16.5862" y="1.8288" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="-16.51" y="-3.175" size="0.4064" layer="27" ratio="10">>VALUE</text>
<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
<rectangle x1="-2.794" y1="-0.254" x2="-2.286" y2="0.254" layer="51"/>
<rectangle x1="-5.334" y1="-0.254" x2="-4.826" y2="0.254" layer="51"/>
<rectangle x1="-7.874" y1="-0.254" x2="-7.366" y2="0.254" layer="51"/>
<rectangle x1="-10.414" y1="-0.254" x2="-9.906" y2="0.254" layer="51"/>
<rectangle x1="-12.954" y1="-0.254" x2="-12.446" y2="0.254" layer="51"/>
<rectangle x1="-15.494" y1="-0.254" x2="-14.986" y2="0.254" layer="51"/>
<rectangle x1="7.366" y1="-0.254" x2="7.874" y2="0.254" layer="51"/>
<rectangle x1="9.906" y1="-0.254" x2="10.414" y2="0.254" layer="51"/>
<rectangle x1="12.446" y1="-0.254" x2="12.954" y2="0.254" layer="51"/>
<pad name="13" x="15.24" y="0" drill="1" diameter="1.6764" rot="R90"/>
<rectangle x1="14.986" y1="-0.254" x2="15.494" y2="0.254" layer="51"/>
</package>
<package name="SOT223-W">
<description><b>SOT223</b> - Wave soldering</description>
<wire x1="-3.35" y1="1.8" x2="-3.35" y2="-1.8" width="0.254" layer="51"/>
<wire x1="-3.35" y1="-1.8" x2="3.35" y2="-1.8" width="0.254" layer="51"/>
<wire x1="3.35" y1="-1.8" x2="3.35" y2="1.8" width="0.254" layer="51"/>
<wire x1="3.35" y1="1.8" x2="-3.35" y2="1.8" width="0.254" layer="51"/>
<wire x1="-3.35" y1="-1.8" x2="-3.35" y2="1.8" width="0.2032" layer="21"/>
<wire x1="-3.35" y1="1.8" x2="1.85" y2="1.8" width="0.2032" layer="21"/>
<wire x1="3.35" y1="-1.8" x2="3.35" y2="1.8" width="0.2032" layer="21"/>
<wire x1="3.35" y1="1.8" x2="1.96" y2="1.8" width="0.2032" layer="21"/>
<wire x1="1.96" y1="1.8" x2="1.85" y2="1.8" width="0.2032" layer="21"/>
<wire x1="-3.278" y1="-1.8" x2="0.724" y2="-1.8" width="0.2032" layer="21"/>
<wire x1="0.8" y1="-1.8" x2="3.278" y2="-1.8" width="0.2032" layer="21"/>
<smd name="1" x="-2.7" y="-3.1" dx="1.9" dy="1.9" layer="1"/>
<smd name="2" x="0" y="-3.1" dx="1.1" dy="1.9" layer="1"/>
<smd name="3" x="2.7" y="-3.1" dx="1.9" dy="1.9" layer="1"/>
<smd name="4" x="0" y="3.1" dx="6.7" dy="1.9" layer="1"/>
<text x="-2.794" y="0.254" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="-2.794" y="-0.762" size="0.4064" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-2.75" y1="-3.45" x2="-1.85" y2="-1.9" layer="51"/>
<rectangle x1="-0.45" y1="-3.45" x2="0.45" y2="-1.9" layer="51"/>
<rectangle x1="1.85" y1="-3.45" x2="2.75" y2="-1.9" layer="51"/>
<rectangle x1="-1.55" y1="1.9" x2="1.55" y2="3.45" layer="51"/>
</package>
<package name="SOLDERJUMPER_ARROW_NOPASTE">
<wire x1="1.397" y1="-1.016" x2="-1.397" y2="-1.016" width="0.2032" layer="21"/>
<wire x1="1.397" y1="1.016" x2="1.651" y2="0.762" width="0.2032" layer="21" curve="-90"/>
<wire x1="-1.651" y1="0.762" x2="-1.397" y2="1.016" width="0.2032" layer="21" curve="-90"/>
<wire x1="-1.651" y1="-0.762" x2="-1.397" y2="-1.016" width="0.2032" layer="21" curve="90"/>
<wire x1="1.397" y1="-1.016" x2="1.651" y2="-0.762" width="0.2032" layer="21" curve="90"/>
<wire x1="1.651" y1="-0.762" x2="1.651" y2="0.762" width="0.2032" layer="21"/>
<wire x1="-1.651" y1="-0.762" x2="-1.651" y2="0.762" width="0.2032" layer="21"/>
<wire x1="-1.397" y1="1.016" x2="1.397" y2="1.016" width="0.2032" layer="21"/>
<smd name="1" x="-1.016" y="0" dx="0.762" dy="1.524" layer="1" roundness="50" stop="no" cream="no"/>
<smd name="2" x="1.016" y="0" dx="0.762" dy="1.524" layer="1" roundness="50" stop="no" cream="no"/>
<text x="-1.778" y="1.27" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="-1.651" y="-1.651" size="0.4064" layer="27" ratio="10">>VALUE</text>
<polygon width="0.0508" layer="1">
<vertex x="-1.143" y="0.7366"/>
<vertex x="-0.5715" y="0.7366"/>
<vertex x="0.1651" y="0"/>
<vertex x="-0.5715" y="-0.7366"/>
<vertex x="-1.143" y="-0.7366"/>
</polygon>
<polygon width="0.0508" layer="1">
<vertex x="-0.127" y="0.7366"/>
<vertex x="0.5842" y="0"/>
<vertex x="-0.127" y="-0.7366"/>
<vertex x="1.143" y="-0.7366"/>
<vertex x="1.143" y="0.7366"/>
</polygon>
<rectangle x1="-1.4605" y1="-0.8255" x2="1.4605" y2="0.8255" layer="29"/>
</package>
<package name="EIA3216-18/A-R">
<description><b>Chip Capacitor Type KEMET A / EIA 3216-18 Reflow solder</b><p>
KEMET S / EIA 3216-12</description>
<wire x1="-1.45" y1="0.6" x2="1.45" y2="0.6" width="0.1016" layer="51"/>
<wire x1="1.45" y1="0.6" x2="1.45" y2="-0.6" width="0.1016" layer="51"/>
<wire x1="1.45" y1="-0.6" x2="-1.45" y2="-0.6" width="0.1016" layer="51"/>
<wire x1="-1.45" y1="-0.6" x2="-1.45" y2="0.6" width="0.1016" layer="51"/>
<wire x1="-2.5525" y1="1" x2="-2.5525" y2="-1" width="0.2032" layer="21"/>
<wire x1="-2.5525" y1="1" x2="2.5525" y2="1" width="0.2032" layer="21"/>
<wire x1="2.5525" y1="1" x2="2.5525" y2="0.9" width="0.2032" layer="21"/>
<wire x1="-2.5525" y1="-1" x2="2.5525" y2="-1" width="0.2032" layer="21"/>
<wire x1="2.5525" y1="-1" x2="2.5525" y2="0.878" width="0.2032" layer="21"/>
<wire x1="-0.1905" y1="0.4445" x2="-0.1905" y2="-0.4445" width="0.2032" layer="21"/>
<wire x1="-0.1905" y1="-0.4445" x2="0.1905" y2="0" width="0.2032" layer="21"/>
<wire x1="0.1905" y1="0" x2="-0.1905" y2="0.4445" width="0.2032" layer="21"/>
<wire x1="0.1905" y1="0.4445" x2="0.1905" y2="-0.4445" width="0.2032" layer="21"/>
<smd name="+" x="1.375" y="0" dx="1.95" dy="1.5" layer="1"/>
<smd name="-" x="-1.375" y="0" dx="1.95" dy="1.5" layer="1"/>
<text x="2.749" y="-0.016" size="0.8128" layer="25" ratio="18">>NAME</text>
<text x="2.749" y="-0.674" size="0.4064" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-1.6" y1="-0.6" x2="-1.475" y2="0.6" layer="51"/>
<rectangle x1="1.475" y1="-0.6" x2="1.6" y2="0.6" layer="51"/>
<rectangle x1="0.8" y1="-0.625" x2="1.1" y2="0.625" layer="51"/>
</package>
</packages>
</library>
<library name="jst">
<packages>
<package name="B8B-ZR">
<wire x1="-6.35" y1="1.34" x2="6.85" y2="1.34" width="0.127" layer="21"/>
<wire x1="6.85" y1="1.34" x2="6.85" y2="-2.16" width="0.127" layer="21"/>
<wire x1="6.85" y1="-2.16" x2="-6.35" y2="-2.16" width="0.127" layer="21"/>
<wire x1="-6.35" y1="-2.16" x2="-6.35" y2="1.34" width="0.127" layer="21"/>
<text x="-7.1" y="1.54" size="1.27" layer="25">>NAME</text>
<text x="-7.1" y="-4.095" size="1.27" layer="27">>VALUE</text>
<pad name="1" x="-4.85" y="-0.03" drill="0.7"/>
<pad name="2" x="-3.35" y="-0.03" drill="0.7"/>
<pad name="3" x="-1.85" y="-0.03" drill="0.7"/>
<pad name="4" x="-0.35" y="-0.03" drill="0.7"/>
<pad name="5" x="1.15" y="-0.03" drill="0.7"/>
<pad name="6" x="2.65" y="-0.03" drill="0.7"/>
<pad name="7" x="4.15" y="-0.03" drill="0.7"/>
<pad name="8" x="5.65" y="-0.03" drill="0.7"/>
</package>
<package name="B13B-ZR">
<wire x1="-10.16" y1="1.34" x2="10.66" y2="1.34" width="0.127" layer="21"/>
<wire x1="10.66" y1="1.34" x2="10.66" y2="-2.16" width="0.127" layer="21"/>
<wire x1="10.66" y1="-2.16" x2="-10.16" y2="-2.16" width="0.127" layer="21"/>
<wire x1="-10.16" y1="-2.16" x2="-10.16" y2="1.34" width="0.127" layer="21"/>
<text x="-10.91" y="1.54" size="1.27" layer="25">>NAME</text>
<text x="-10.91" y="-4.095" size="1.27" layer="27">>VALUE</text>
<pad name="1" x="-8.66" y="-0.03" drill="0.7"/>
<pad name="2" x="-7.16" y="-0.03" drill="0.7"/>
<pad name="3" x="-5.66" y="-0.03" drill="0.7"/>
<pad name="4" x="-4.16" y="-0.03" drill="0.7"/>
<pad name="5" x="-2.66" y="-0.03" drill="0.7"/>
<pad name="6" x="-1.16" y="-0.03" drill="0.7"/>
<pad name="7" x="0.34" y="-0.03" drill="0.7"/>
<pad name="8" x="1.84" y="-0.03" drill="0.7"/>
<pad name="9" x="3.34" y="-0.03" drill="0.7"/>
<pad name="10" x="4.84" y="-0.03" drill="0.7"/>
<pad name="11" x="6.34" y="-0.03" drill="0.7"/>
<pad name="12" x="7.84" y="-0.03" drill="0.7"/>
<pad name="13" x="9.34" y="-0.03" drill="0.7"/>
</package>
</packages>
</library>
<library name="SparkFun-Connectors">
<description><h3>SparkFun Electronics' preferred foot prints</h3>
In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br>
We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.
<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.</description>
<packages>
<package name="USB-B-MICRO-SMD_V03">
<text x="-4.66" y="5.96" size="0.3048" layer="51">PCB Front</text>
<wire x1="-3" y1="5.6" x2="-2.3" y2="5.3" width="0.08" layer="51"/>
<wire x1="-2.3" y1="5.3" x2="-2.4" y2="5.5" width="0.08" layer="51"/>
<wire x1="-2.3" y1="5.3" x2="-2.5" y2="5.2" width="0.08" layer="51"/>
<text x="-1.27" y="5.969" size="0.4064" layer="25">>NAME</text>
<text x="-1.27" y="5.461" size="0.4064" layer="27">>VALUE</text>
<smd name="D+1" x="2.7" y="0" dx="0.4" dy="1.4" layer="1" rot="R90"/>
<smd name="D-1" x="2.7" y="0.65" dx="0.4" dy="1.4" layer="1" rot="R90"/>
<smd name="VBUS1" x="2.7" y="1.3" dx="0.4" dy="1.4" layer="1" rot="R90"/>
<smd name="ID1" x="2.7" y="-0.65" dx="0.4" dy="1.4" layer="1" rot="R90"/>
<smd name="GND1" x="2.7" y="-1.3" dx="0.4" dy="1.4" layer="1" rot="R90"/>
<hole x="2.2" y="1.9" drill="0.85"/>
<hole x="2.2" y="-1.9" drill="0.85"/>
<rectangle x1="-0.75" y1="2.784" x2="0.75" y2="4.584" layer="31"/>
<rectangle x1="-0.35" y1="-0.75" x2="0.35" y2="0.75" layer="31"/>
<rectangle x1="-0.75" y1="-4.584" x2="0.75" y2="-2.784" layer="31"/>
<wire x1="-2.15" y1="3.9" x2="-2.15" y2="-3.9" width="0.127" layer="49"/>
<wire x1="2.85" y1="3.9" x2="2.85" y2="-3.9" width="0.127" layer="49"/>
<wire x1="2.85" y1="3.9" x2="-2.15" y2="3.9" width="0.127" layer="49"/>
<wire x1="2.85" y1="-3.9" x2="-2.15" y2="-3.9" width="0.127" layer="49"/>
<wire x1="2.981959375" y1="3.99288125" x2="2" y2="3.99288125" width="0.3048" layer="21"/>
<wire x1="2" y1="3.99288125" x2="2" y2="4" width="0.3048" layer="21"/>
<wire x1="3" y1="4" x2="3" y2="3" width="0.3048" layer="21"/>
<wire x1="2" y1="-4" x2="3" y2="-4" width="0.3048" layer="21"/>
<wire x1="3" y1="-4" x2="3" y2="-3" width="0.3048" layer="21"/>
<wire x1="-1" y1="4" x2="-2" y2="4" width="0.3048" layer="21"/>
<wire x1="-1" y1="-4" x2="-2" y2="-4" width="0.3048" layer="21"/>
<rectangle x1="-0.85" y1="2.684" x2="0.85" y2="4.684" layer="29"/>
<rectangle x1="-0.85" y1="-4.684" x2="0.85" y2="-2.684" layer="29"/>
<rectangle x1="-0.85" y1="-1.35" x2="0.85" y2="1.35" layer="29"/>
<smd name="SHIELD1" x="0" y="3.7" dx="1.8" dy="1.5" layer="1" rot="R90" stop="no" cream="no"/>
<smd name="SHIELD3" x="0" y="0" dx="2.5" dy="1.5" layer="1" rot="R90" stop="no" cream="no"/>
<smd name="SHIELD2" x="0" y="-3.7" dx="1.8" dy="1.5" layer="1" rot="R90" stop="no" cream="no"/>
</package>
</packages>
</library>
<library name="resistor">
<description><b>Resistors, Capacitors, Inductors</b><p>
Based on the previous libraries:
<ul>
<li>r.lbr
<li>cap.lbr
<li>cap-fe.lbr
<li>captant.lbr
<li>polcap.lbr
<li>ipc-smd.lbr
</ul>
All SMD packages are defined according to the IPC specifications and  CECC<p>
<author>Created by librarian@cadsoft.de</author><p>
<p>
for Electrolyt Capacitors see also :<p>
www.bccomponents.com <p>
www.panasonic.com<p>
www.kemet.com<p>
<p>
for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p>

<map name="nav_main">
<area shape="rect" coords="0,1,140,23" href="../military_specs.asp" title="">
<area shape="rect" coords="0,24,140,51" href="../about.asp" title="">
<area shape="rect" coords="1,52,140,77" href="../rfq.asp" title="">
<area shape="rect" coords="0,78,139,103" href="../products.asp" title="">
<area shape="rect" coords="1,102,138,128" href="../excess_inventory.asp" title="">
<area shape="rect" coords="1,129,138,150" href="../edge.asp" title="">
<area shape="rect" coords="1,151,139,178" href="../industry_links.asp" title="">
<area shape="rect" coords="0,179,139,201" href="../comments.asp" title="">
<area shape="rect" coords="1,203,138,231" href="../directory.asp" title="">
<area shape="default" nohref>
</map>

<html>

<title></title>

 <LINK REL="StyleSheet" TYPE="text/css" HREF="style-sheet.css">

<body bgcolor="#ffffff" text="#000000" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
<table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0 height="55%">
<tr valign="top">

</td>
<! <td width="10">&nbsp;</td>
<td width="90%">

<b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b>
<P>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2>
  <TR>
    <TD COLSPAN=8>
      <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT>
      </B>
    </TD>
    <TD ALIGN=CENTER>
      <B>
      <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT>
      </B>
    </TD><TD>&nbsp;</TD>
  </TR>
  <TR>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 >
      3005P<BR>
      3006P<BR>
      3006W<BR>
      3006Y<BR>
      3009P<BR>
      3009W<BR>
      3009Y<BR>
      3057J<BR>
      3057L<BR>
      3057P<BR>
      3057Y<BR>
      3059J<BR>
      3059L<BR>
      3059P<BR>
      3059Y<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      89P<BR>
      89W<BR>
      89X<BR>
      89PH<BR>
      76P<BR>
      89XH<BR>
      78SLT<BR>
      78L&nbsp;ALT<BR>
      56P&nbsp;ALT<BR>
      78P&nbsp;ALT<BR>
      T8S<BR>
      78L<BR>
      56P<BR>
      78P<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      T18/784<BR>
      783<BR>
      781<BR>
      -<BR>
      -<BR>
      -<BR>
      2199<BR>
      1697/1897<BR>
      1680/1880<BR>
      2187<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      8035EKP/CT20/RJ-20P<BR>
      -<BR>
      RJ-20X<BR>
      -<BR>
      -<BR>
      -<BR>
      1211L<BR>
      8012EKQ&nbsp;ALT<BR>
      8012EKR&nbsp;ALT<BR>
      1211P<BR>
      8012EKJ<BR>
      8012EKL<BR>
      8012EKQ<BR>
      8012EKR<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      2101P<BR>
      2101W<BR>
      2101Y<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      2102L<BR>
      2102S<BR>
      2102Y<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      EVMCOG<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      43P<BR>
      43W<BR>
      43Y<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      40L<BR>
      40P<BR>
      40Y<BR>
      70Y-T602<BR>
      70L<BR>
      70P<BR>
      70Y<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      RT/RTR12<BR>
      RT/RTR12<BR>
      RT/RTR12<BR>
      -<BR>
      RJ/RJR12<BR>
      RJ/RJR12<BR>
      RJ/RJR12<BR></FONT>
    </TD>
  </TR>
  <TR>
    <TD COLSPAN=8>&nbsp;
    </TD>
  </TR>
  <TR>
    <TD COLSPAN=8>
      <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT>
    </TD>
  </TR>
  <TR>
   <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      3250L<BR>
      3250P<BR>
      3250W<BR>
      3250X<BR>
      3252P<BR>
      3252W<BR>
      3252X<BR>
      3260P<BR>
      3260W<BR>
      3260X<BR>
      3262P<BR>
      3262W<BR>
      3262X<BR>
      3266P<BR>
      3266W<BR>
      3266X<BR>
      3290H<BR>
      3290P<BR>
      3290W<BR>
      3292P<BR>
      3292W<BR>
      3292X<BR>
      3296P<BR>
      3296W<BR>
      3296X<BR>
      3296Y<BR>
      3296Z<BR>
      3299P<BR>
      3299W<BR>
      3299X<BR>
      3299Y<BR>
      3299Z<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      66P&nbsp;ALT<BR>
      66W&nbsp;ALT<BR>
      66X&nbsp;ALT<BR>
      66P&nbsp;ALT<BR>
      66W&nbsp;ALT<BR>
      66X&nbsp;ALT<BR>
      -<BR>
      64W&nbsp;ALT<BR>
      -<BR>
      64P&nbsp;ALT<BR>
      64W&nbsp;ALT<BR>
      64X&nbsp;ALT<BR>
      64P<BR>
      64W<BR>
      64X<BR>
      66X&nbsp;ALT<BR>
      66P&nbsp;ALT<BR>
      66W&nbsp;ALT<BR>
      66P<BR>
      66W<BR>
      66X<BR>
      67P<BR>
      67W<BR>
      67X<BR>
      67Y<BR>
      67Z<BR>
      68P<BR>
      68W<BR>
      68X<BR>
      67Y&nbsp;ALT<BR>
      67Z&nbsp;ALT<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      5050<BR>
      5091<BR>
      5080<BR>
      5087<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      T63YB<BR>
      T63XB<BR>
      -<BR>
      -<BR>
      -<BR>
      5887<BR>
      5891<BR>
      5880<BR>
      -<BR>
      -<BR>
      -<BR>
      T93Z<BR>
      T93YA<BR>
      T93XA<BR>
      T93YB<BR>
      T93XB<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      8026EKP<BR>
      8026EKW<BR>
      8026EKM<BR>
      8026EKP<BR>
      8026EKB<BR>
      8026EKM<BR>
      1309X<BR>
      1309P<BR>
      1309W<BR>
      8024EKP<BR>
      8024EKW<BR>
      8024EKN<BR>
      RJ-9P/CT9P<BR>
      RJ-9W<BR>
      RJ-9X<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      3103P<BR>
      3103Y<BR>
      3103Z<BR>
      3103P<BR>
      3103Y<BR>
      3103Z<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      3105P/3106P<BR>
      3105W/3106W<BR>
      3105X/3106X<BR>
      3105Y/3106Y<BR>
      3105Z/3105Z<BR>
      3102P<BR>
      3102W<BR>
      3102X<BR>
      3102Y<BR>
      3102Z<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      EVMCBG<BR>
      EVMCCG<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      55-1-X<BR>
      55-4-X<BR>
      55-3-X<BR>
      55-2-X<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      50-2-X<BR>
      50-4-X<BR>
      50-3-X<BR>
      -<BR>
      -<BR>
      -<BR>
      64P<BR>
      64W<BR>
      64X<BR>
      64Y<BR>
      64Z<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      RT/RTR22<BR>
      RT/RTR22<BR>
      RT/RTR22<BR>
      RT/RTR22<BR>
      RJ/RJR22<BR>
      RJ/RJR22<BR>
      RJ/RJR22<BR>
      RT/RTR26<BR>
      RT/RTR26<BR>
      RT/RTR26<BR>
      RJ/RJR26<BR>
      RJ/RJR26<BR>
      RJ/RJR26<BR>
      RJ/RJR26<BR>
      RJ/RJR26<BR>
      RJ/RJR26<BR>
      RT/RTR24<BR>
      RT/RTR24<BR>
      RT/RTR24<BR>
      RJ/RJR24<BR>
      RJ/RJR24<BR>
      RJ/RJR24<BR>
      RJ/RJR24<BR>
      RJ/RJR24<BR>
      RJ/RJR24<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
  </TR>
  <TR>
    <TD COLSPAN=8>&nbsp;
    </TD>
  </TR>
  <TR>
    <TD COLSPAN=8>
      <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT>
    </TD>
    <TD ALIGN=CENTER>
      <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      3323P<BR>
      3323S<BR>
      3323W<BR>
      3329H<BR>
      3329P<BR>
      3329W<BR>
      3339H<BR>
      3339P<BR>
      3339W<BR>
      3352E<BR>
      3352H<BR>
      3352K<BR>
      3352P<BR>
      3352T<BR>
      3352V<BR>
      3352W<BR>
      3362H<BR>
      3362M<BR>
      3362P<BR>
      3362R<BR>
      3362S<BR>
      3362U<BR>
      3362W<BR>
      3362X<BR>
      3386B<BR>
      3386C<BR>
      3386F<BR>
      3386H<BR>
      3386K<BR>
      3386M<BR>
      3386P<BR>
      3386S<BR>
      3386W<BR>
      3386X<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      25P<BR>
      25S<BR>
      25RX<BR>
      82P<BR>
      82M<BR>
      82PA<BR>
      -<BR>
      -<BR>
      -<BR>
      91E<BR>
      91X<BR>
      91T<BR>
      91B<BR>
      91A<BR>
      91V<BR>
      91W<BR>
      25W<BR>
      25V<BR>
      25P<BR>
      -<BR>
      25S<BR>
      25U<BR>
      25RX<BR>
      25X<BR>
      72XW<BR>
      72XL<BR>
      72PM<BR>
      72RX<BR>
      -<BR>
      72PX<BR>
      72P<BR>
      72RXW<BR>
      72RXL<BR>
      72X<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      T7YB<BR>
      T7YA<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      TXD<BR>
      TYA<BR>
      TYP<BR>
      -<BR>
      TYD<BR>
      TX<BR>
      -<BR>
      150SX<BR>
      100SX<BR>
      102T<BR>
      101S<BR>
      190T<BR>
      150TX<BR>
      101<BR>
      -<BR>
      -<BR>
      101SX<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      ET6P<BR>
      ET6S<BR>
      ET6X<BR>
      RJ-6W/8014EMW<BR>
      RJ-6P/8014EMP<BR>
      RJ-6X/8014EMX<BR>
      TM7W<BR>
      TM7P<BR>
      TM7X<BR>
      -<BR>
      8017SMS<BR>
      -<BR>
      8017SMB<BR>
      8017SMA<BR>
      -<BR>
      -<BR>
      CT-6W<BR>
      CT-6H<BR>
      CT-6P<BR>
      CT-6R<BR>
      -<BR>
      CT-6V<BR>
      CT-6X<BR>
      -<BR>
      -<BR>
      8038EKV<BR>
      -<BR>
      8038EKX<BR>
      -<BR>
      -<BR>
      8038EKP<BR>
      8038EKZ<BR>
      8038EKW<BR>
      -<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      3321H<BR>
      3321P<BR>
      3321N<BR>
      1102H<BR>
      1102P<BR>
      1102T<BR>
      RVA0911V304A<BR>
      -<BR>
      RVA0911H413A<BR>
      RVG0707V100A<BR>
      RVA0607V(H)306A<BR>
      RVA1214H213A<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      3104B<BR>
      3104C<BR>
      3104F<BR>
      3104H<BR>
      -<BR>
      3104M<BR>
      3104P<BR>
      3104S<BR>
      3104W<BR>
      3104X<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      EVMQ0G<BR>
      EVMQIG<BR>
      EVMQ3G<BR>
      EVMS0G<BR>
      EVMQ0G<BR>
      EVMG0G<BR>
      -<BR>
      -<BR>
      -<BR>
      EVMK4GA00B<BR>
      EVM30GA00B<BR>
      EVMK0GA00B<BR>
      EVM38GA00B<BR>
      EVMB6<BR>
      EVLQ0<BR>
      -<BR>
      EVMMSG<BR>
      EVMMBG<BR>
      EVMMAG<BR>
      -<BR>
      -<BR>
      EVMMCS<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      EVMM1<BR>
      -<BR>
      -<BR>
      EVMM0<BR>
      -<BR>
      -<BR>
      EVMM3<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      62-3-1<BR>
      62-1-2<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      67R<BR>
      -<BR>
      67P<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      67X<BR>
      63V<BR>
      63S<BR>
      63M<BR>
      -<BR>
      -<BR>
      63H<BR>
      63P<BR>
      -<BR>
      -<BR>
      63X<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      -<BR>
      -<BR>
      -<BR>
      RJ/RJR50<BR>
      RJ/RJR50<BR>
      RJ/RJR50<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR>
      -<BR></FONT>
    </TD>
  </TR>
</TABLE>
<P>&nbsp;<P>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3>
  <TR>
    <TD COLSPAN=7>
      <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT>
      <P>
      <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT>
    </TD>
    <TD>
      <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      3224G<BR>
      3224J<BR>
      3224W<BR>
      3269P<BR>
      3269W<BR>
      3269X<BR></FONT>
    </TD>
    <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3>
      44G<BR>
      44J<BR>
      44W<BR>
      84P<BR>
      84W<BR>
      84X<BR></FONT>
    </TD>
    <TD BGCOLOR

extension: brd