text:
package internal

import (
	"fmt"
	"github.com/ktrysmt/go-bitbucket"
	"golang.org/x/mod/semver"
	"io/ioutil"
	"log"
	"net/http"
	"os"
	"sort"
	"strings"
)

type BitbucketService struct {
	bitbucketClient *bitbucket.Client
	ReleaseBranchPrefix string
	DevelopmentBranchName string
}

func NewBitbucketService(bitbucketClient *bitbucket.Client,
	releaseBranchPrefix string,
	developmentBranchName string) *BitbucketService {

	return &BitbucketService{bitbucketClient,
		releaseBranchPrefix,
		developmentBranchName}
}

func (service *BitbucketService) OnMerge (request *PullRequestMergedPayload) error {

	// Only operate on release branches
	sourceBranchName := request.PullRequest.Source.Branch.Name
	destBranchName := request.PullRequest.Destination.Branch.Name
	authorId := request.PullRequest.Author.UUID

	if strings.HasPrefix(destBranchName, service.ReleaseBranchPrefix) {

		log.Println("--------- Pull Request Merged ---------")

		repoName := request.Repository.Name
		repoOwner := request.Repository.Owner.Username

		log.Println("Repository: ", repoName)
		log.Println("Owner: ", repoOwner)
		log.Println("Source: ", sourceBranchName)
		log.Println("Destination: ", destBranchName)

		targets, err := service.GetBranches(repoName, repoOwner)
		if err != nil {
			return err
		}
		log.Println("Checking for internal targets: ", targets)
		nextTarget := service.NextTarget(destBranchName, targets)
		log.Println("Next Target: ", nextTarget)

		err = service.CreatePullRequest(destBranchName, nextTarget, repoName, repoOwner, authorId)
		if err != nil {
			return err
		}

		log.Println("--------- End Request Merged ---------")
	}
	return nil
}

func (service *BitbucketService) TryMerge(dat *PullRequestMergedPayload) error {

	log.Println("--------- Checking AutoMergeable ---------")
	err := service.DoApproveAndMerge(dat.Repository.Owner.Username, dat.Repository.Name)
	if err != nil {
		return err
	}
	//TODO - Try Merge
	log.Println("--------- End Checking AutoMergeable ---------")
	return nil
}

func (service *BitbucketService) NextTarget(oldDest string, cascadeTargets *[]string) string {
	targets := *cascadeTargets
	//Change release/YYYY.M.P --> vYYYY.M.P
	destination := strings.ReplaceAll(oldDest, service.ReleaseBranchPrefix, "v")

	//Change release/YYYY.M.P --> vYYYY.M.P
	for i, _ := range targets {
		targets[i] = strings.ReplaceAll(targets[i], service.ReleaseBranchPrefix, "v")
	}
	sort.SliceStable(targets, func(i, j int) bool {
		return semver.Compare(targets[i], targets[j]) < 0
	})
	for _, target := range targets {
		if semver.Compare(destination, target) < 0 {
			return strings.ReplaceAll(target, "v", service.ReleaseBranchPrefix)
		}
	}
	return service.DevelopmentBranchName
}

func (service *BitbucketService) GetBranches(repoSlug string, repoOwner string) (*[]string, error) {

	var options bitbucket.RepositoryBranchOptions
	options.RepoSlug = repoSlug
	options.Owner = repoOwner
	options.Query = "name ~ " + service.ReleaseBranchPrefix
	options.Pagelen = 100

	branches, err := service.bitbucketClient.Repositories.Repository.ListBranches(&options)

	if err != nil {
		return nil, err
	}

	targets := make([]string, len(branches.Branches))
	for i, branch := range branches.Branches {
		targets[i] = branch.Name
	}
	return &targets, nil
}

func (service *BitbucketService) PullRequestExists(repoName string, repoOwner string, source string, destination string) (bool, error) {

	options := bitbucket.PullRequestsOptions{
		Owner:             repoOwner,
		RepoSlug:          repoName,
		Query:             "destination.branch.name = \"" + destination + "\" AND source.branch.name=\"" + source + "\"",
	}
	resp, err := service.bitbucketClient.Repositories.PullRequests.Gets(&options)
	if err != nil {
		return false, nil
	}
	pullRequests := resp.(map[string]interface{})
	return len(pullRequests["values"].([]interface{})) > 0, nil
}

func (service *BitbucketService) CreatePullRequest(src string, dest string, repoName string, repoOwner string, reviewer string) error {

	exists, err := service.PullRequestExists(repoName, repoOwner, src, dest)

	if err != nil {
		return err
	}

	if exists {
		log.Println("Skipping creation. Pull Request Exists: ", src, " -> ", dest)
		return nil
	}

	options := bitbucket.PullRequestsOptions{
		ID:                "",
		CommentID:         "",
		Owner:             repoOwner,
		RepoSlug:          repoName,
		Title:             "#AutomaticCascade " + src + " -> " + dest,
		Description:       "#AutomaticCascade " + src + " -> " + dest+", this branch will automatically be merged on " +
			"successful build result+approval",
		CloseSourceBranch: false,
		SourceBranch:      src,
		SourceRepository:  "",
		DestinationBranch: dest,
		DestinationCommit: "",
		Message:           "",
		Reviewers:         []string{reviewer},
		States:            nil,
		Query:             "",
		Sort:              "",
	}

	_, err = service.bitbucketClient.Repositories.PullRequests.Create(&options)
	return err
}

func (service *BitbucketService) DoApproveAndMerge(repoOwner string, repoName string) error {

	options := bitbucket.PullRequestsOptions{
		Owner:             repoOwner,
		RepoSlug:          repoName,
		Query:             "title ~ \"#AutomaticCascade\" AND state = \"OPEN\"",
		States: 		   []string{"OPEN"},
	}
	resp, err := service.bitbucketClient.Repositories.PullRequests.Gets(&options)
	if err != nil {
		return err
	}
	pullRequests := resp.(map[string]interface{})

	for _, pr := range pullRequests["values"].([]interface{}) {
		prUnwrapped := pr.(map[string]interface{})
		log.Println("Trying to Auto Merge...")
		log.Println("ID: ",  prUnwrapped["id"])
		log.Println("Title: ", prUnwrapped["title"])
		err = service.ApprovePullRequest(repoOwner, repoName, fmt.Sprintf("%v", prUnwrapped["id"]))
		if err != nil {
			return err
		}
	}
	return nil
}

// HACK: There isn't an API method in the Bitbucket API Library to do pull request
// approval. Hacking together one here.
func (service *BitbucketService) ApprovePullRequest(repoOwner string, repoName string, pullRequestId string) error {
	url := service.bitbucketClient.GetApiBaseURL() + "/repositories/" + repoOwner + "/" + repoName + "/pullrequests/" + pullRequestId + "/approve"
	req, err := http.NewRequest("POST", url, nil)
	if err != nil {
		return err
	}
	username := os.Getenv("BITBUCKET_USERNAME")
	password := os.Getenv("BITBUCKET_PASSWORD")
	req.SetBasicAuth(username, password)
	response, err := service.bitbucketClient.HttpClient.Do(req)
	if err != nil {
		return err
	}
	buf, err := ioutil.ReadAll(response.Body)
	if err != nil {
		return err
	}
	log.Println(string(buf))
	return nil
}

func (service *BitbucketService) MergePullRequest(repoOwner string, repoName string, pullRequestId string) error {
	options := bitbucket.PullRequestsOptions{
		Owner:    repoOwner,
		RepoSlug: repoName,
		ID:       pullRequestId,
	}
	_, err := service.bitbucketClient.Repositories.PullRequests.Merge(&options)
	return err
}

repository: jmswenski/bitbucket-cascade-merge

repo_name: jmswenski/bitbucket-cascade-merge

extension: go


text:
DESCRIPTION = "Rdesktop rdp client for X"
DEPENDS = "libx11 openssl"
HOMEPAGE = "http://www.rdesktop.org"
SECTION = "x11/network"
MAINTAINER = "Adrian Davey <ade@beth2.org>"
LICENSE = "GPL"
PV = "1.4.1"
PR = "r1"

SRC_URI = "${SOURCEFORGE_MIRROR}/rdesktop/rdesktop-${PV}.tar.gz \
	file://strip.patch;patch=1"

inherit autotools

EXTRA_OECONF = "--with-openssl=${STAGING_LIBDIR}/.. "

license: MIT

repository: BackupTheBerlios/openslug-svn

license_type: permissive

repo_name: BackupTheBerlios/openslug-svn

branch_name: refs/heads/master

extension: bb


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.1.1">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting keepoldvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="12" fill="1" visible="no" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="9" fill="1" visible="no" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="14" fill="1" visible="no" active="yes"/>
<layer number="19" name="Unrouted" color="13" fill="1" visible="no" active="yes"/>
<layer number="20" name="Dimension" color="3" 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="no" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="26" name="bNames" color="11" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="11" 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="no" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="13" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="yes"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" 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="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" 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="5" fill="1" visible="no" active="no"/>
<layer number="100" name="Mechanical" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="no" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="no" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="14" fill="1" visible="no" active="no"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="1" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="1" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="1" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="1" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="10" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="11" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="12" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="13" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="14" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="15" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="16" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="17" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="yes"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="yes"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="yes"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="yes"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="yes"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="yes"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="yes"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="yes"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="OrgLBR" color="13" fill="1" visible="no" active="no"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="2.54" y1="0" x2="0" y2="2.54" width="0.254" layer="20"/>
<wire x1="0" y1="2.54" x2="0" y2="50.8" width="0.254" layer="20"/>
<wire x1="0" y1="50.8" x2="2.532684375" y2="53.34" width="0.254" layer="20"/>
<wire x1="2.532684375" y1="53.34" x2="109.22" y2="53.34" width="0.254" layer="20"/>
<wire x1="109.22" y1="53.34" x2="109.22" y2="0" width="0.254" layer="20"/>
<wire x1="109.22" y1="0" x2="2.54" y2="0" width="0.254" layer="20"/>
<rectangle x1="45.38735625" y1="3.550034375" x2="46.32715625" y2="3.575434375" layer="201"/>
<rectangle x1="45.18415625" y1="3.575434375" x2="46.53035625" y2="3.600834375" layer="201"/>
<rectangle x1="45.03175625" y1="3.600834375" x2="46.68275625" y2="3.626234375" layer="201"/>
<rectangle x1="44.90475625" y1="3.626234375" x2="46.80975625" y2="3.651634375" layer="201"/>
<rectangle x1="44.80315625" y1="3.651634375" x2="46.91135625" y2="3.677034375" layer="201"/>
<rectangle x1="44.70155625" y1="3.677034375" x2="47.03835625" y2="3.702434375" layer="201"/>
<rectangle x1="44.59995625" y1="3.702434375" x2="47.11455625" y2="3.727834375" layer="201"/>
<rectangle x1="44.52375625" y1="3.727834375" x2="47.19075625" y2="3.753234375" layer="201"/>
<rectangle x1="44.44755625" y1="3.753234375" x2="47.29235625" y2="3.778634375" layer="201"/>
<rectangle x1="44.34595625" y1="3.778634375" x2="47.36855625" y2="3.804034375" layer="201"/>
<rectangle x1="44.29515625" y1="3.804034375" x2="47.41935625" y2="3.829434375" layer="201"/>
<rectangle x1="44.21895625" y1="3.829434375" x2="47.49555625" y2="3.854834375" layer="201"/>
<rectangle x1="44.16815625" y1="3.854834375" x2="47.57175625" y2="3.880234375" layer="201"/>
<rectangle x1="44.09195625" y1="3.880234375" x2="47.62255625" y2="3.905634375" layer="201"/>
<rectangle x1="44.04115625" y1="3.905634375" x2="47.67335625" y2="3.931034375" layer="201"/>
<rectangle x1="43.96495625" y1="3.931034375" x2="47.74955625" y2="3.956434375" layer="201"/>
<rectangle x1="43.91415625" y1="3.956434375" x2="47.80035625" y2="3.981834375" layer="201"/>
<rectangle x1="43.86335625" y1="3.981834375" x2="47.85115625" y2="4.007234375" layer="201"/>
<rectangle x1="43.81255625" y1="4.007234375" x2="47.90195625" y2="4.032634375" layer="201"/>
<rectangle x1="43.76175625" y1="4.032634375" x2="47.95275625" y2="4.058034375" layer="201"/>
<rectangle x1="43.71095625" y1="4.058034375" x2="48.00355625" y2="4.083434375" layer="201"/>
<rectangle x1="43.68555625" y1="4.083434375" x2="48.05435625" y2="4.108834375" layer="201"/>
<rectangle x1="43.63475625" y1="4.108834375" x2="48.07975625" y2="4.134234375" layer="201"/>
<rectangle x1="43.58395625" y1="4.134234375" x2="48.13055625" y2="4.159634375" layer="201"/>
<rectangle x1="43.53315625" y1="4.159634375" x2="48.18135625" y2="4.185034375" layer="201"/>
<rectangle x1="43.50775625" y1="4.185034375" x2="48.23215625" y2="4.210434375" layer="201"/>
<rectangle x1="43.45695625" y1="4.210434375" x2="48.25755625" y2="4.235834375" layer="201"/>
<rectangle x1="43.40615625" y1="4.235834375" x2="48.30835625" y2="4.261234375" layer="201"/>
<rectangle x1="43.38075625" y1="4.261234375" x2="48.33375625" y2="4.286634375" layer="201"/>
<rectangle x1="43.32995625" y1="4.286634375" x2="48.38455625" y2="4.312034375" layer="201"/>
<rectangle x1="43.30455625" y1="4.312034375" x2="48.40995625" y2="4.337434375" layer="201"/>
<rectangle x1="43.25375625" y1="4.337434375" x2="48.46075625" y2="4.362834375" layer="201"/>
<rectangle x1="43.22835625" y1="4.362834375" x2="48.48615625" y2="4.388234375" layer="201"/>
<rectangle x1="43.20295625" y1="4.388234375" x2="48.53695625" y2="4.413634375" layer="201"/>
<rectangle x1="43.15215625" y1="4.413634375" x2="48.56235625" y2="4.439034375" layer="201"/>
<rectangle x1="43.12675625" y1="4.439034375" x2="48.58775625" y2="4.464434375" layer="201"/>
<rectangle x1="43.10135625" y1="4.464434375" x2="48.63855625" y2="4.489834375" layer="201"/>
<rectangle x1="43.05055625" y1="4.489834375" x2="48.66395625" y2="4.515234375" layer="201"/>
<rectangle x1="43.02515625" y1="4.515234375" x2="48.68935625" y2="4.540634375" layer="201"/>
<rectangle x1="42.99975625" y1="4.540634375" x2="48.71475625" y2="4.566034375" layer="201"/>
<rectangle x1="42.94895625" y1="4.566034375" x2="48.76555625" y2="4.591434375" layer="201"/>
<rectangle x1="42.92355625" y1="4.591434375" x2="48.79095625" y2="4.616834375" layer="201"/>
<rectangle x1="42.89815625" y1="4.616834375" x2="48.81635625" y2="4.642234375" layer="201"/>
<rectangle x1="42.87275625" y1="4.642234375" x2="48.84175625" y2="4.667634375" layer="201"/>
<rectangle x1="42.84735625" y1="4.667634375" x2="48.86715625" y2="4.693034375" layer="201"/>
<rectangle x1="42.82195625" y1="4.693034375" x2="48.89255625" y2="4.718434375" layer="201"/>
<rectangle x1="42.79655625" y1="4.718434375" x2="48.94335625" y2="4.743834375" layer="201"/>
<rectangle x1="42.74575625" y1="4.743834375" x2="48.96875625" y2="4.769234375" layer="201"/>
<rectangle x1="42.72035625" y1="4.769234375" x2="48.99415625" y2="4.794634375" layer="201"/>
<rectangle x1="42.69495625" y1="4.794634375" x2="49.01955625" y2="4.820034375" layer="201"/>
<rectangle x1="42.66955625" y1="4.820034375" x2="49.04495625" y2="4.845434375" layer="201"/>
<rectangle x1="42.64415625" y1="4.845434375" x2="49.07035625" y2="4.870834375" layer="201"/>
<rectangle x1="42.61875625" y1="4.870834375" x2="49.09575625" y2="4.896234375" layer="201"/>
<rectangle x1="42.59335625" y1="4.896234375" x2="49.12115625" y2="4.921634375" layer="201"/>
<rectangle x1="42.56795625" y1="4.921634375" x2="49.14655625" y2="4.947034375" layer="201"/>
<rectangle x1="42.54255625" y1="4.947034375" x2="49.17195625" y2="4.972434375" layer="201"/>
<rectangle x1="42.51715625" y1="4.972434375" x2="49.19735625" y2="4.997834375" layer="201"/>
<rectangle x1="42.51715625" y1="4.997834375" x2="45.61595625" y2="5.023234375" layer="201"/>
<rectangle x1="46.12395625" y1="4.997834375" x2="49.22275625" y2="5.023234375" layer="201"/>
<rectangle x1="42.49175625" y1="5.023234375" x2="45.41275625" y2="5.048634375" layer="201"/>
<rectangle x1="45.53975625" y1="5.023234375" x2="46.20015625" y2="5.048634375" layer="201"/>
<rectangle x1="46.30175625" y1="5.023234375" x2="49.24815625" y2="5.048634375" layer="201"/>
<rectangle x1="42.46635625" y1="5.048634375" x2="45.26035625" y2="5.074034375" layer="201"/>
<rectangle x1="45.33655625" y1="5.048634375" x2="45.53975625" y2="5.074034375" layer="201"/>
<rectangle x1="46.20015625" y1="5.048634375" x2="46.37795625" y2="5.074034375" layer="201"/>
<rectangle x1="46.45415625" y1="5.048634375" x2="49.24815625" y2="5.074034375" layer="201"/>
<rectangle x1="42.44095625" y1="5.074034375" x2="45.13335625" y2="5.099434375" layer="201"/>
<rectangle x1="45.23495625" y1="5.074034375" x2="45.33655625" y2="5.099434375" layer="201"/>
<rectangle x1="46.37795625" y1="5.074034375" x2="46.47955625" y2="5.099434375" layer="201"/>
<rectangle x1="46.58115625" y1="5.074034375" x2="49.27355625" y2="5.099434375" layer="201"/>
<rectangle x1="42.41555625" y1="5.099434375" x2="45.05715625" y2="5.124834375" layer="201"/>
<rectangle x1="45.10795625" y1="5.099434375" x2="45.20955625" y2="5.124834375" layer="201"/>
<rectangle x1="46.50495625" y1="5.099434375" x2="46.60655625" y2="5.124834375" layer="201"/>
<rectangle x1="46.65735625" y1="5.099434375" x2="49.29895625" y2="5.124834375" layer="201"/>
<rectangle x1="42.39015625" y1="5.124834375" x2="44.95555625" y2="5.150234375" layer="201"/>
<rectangle x1="45.00635625" y1="5.124834375" x2="45.10795625" y2="5.150234375" layer="201"/>
<rectangle x1="46.60655625" y1="5.124834375" x2="46.70815625" y2="5.150234375" layer="201"/>
<rectangle x1="46.75895625" y1="5.124834375" x2="49.32435625" y2="5.150234375" layer="201"/>
<rectangle x1="42.36475625" y1="5.150234375" x2="44.87935625" y2="5.175634375" layer="201"/>
<rectangle x1="44.93015625" y1="5.150234375" x2="45.00635625" y2="5.175634375" layer="201"/>
<rectangle x1="46.70815625" y1="5.150234375" x2="46.78435625" y2="5.175634375" layer="201"/>
<rectangle x1="46.83515625" y1="5.150234375" x2="49.34975625" y2="5.175634375" layer="201"/>
<rectangle x1="42.33935625" y1="5.175634375" x2="44.80315625" y2="5.201034375" layer="201"/>
<rectangle x1="44.85395625" y1="5.175634375" x2="44.93015625" y2="5.201034375" layer="201"/>
<rectangle x1="46.78435625" y1="5.175634375" x2="46.86055625" y2="5.201034375" layer="201"/>
<rectangle x1="46.91135625" y1="5.175634375" x2="49.37515625" y2="5.201034375" layer="201"/>
<rectangle x1="42.33935625" y1="5.201034375" x2="44.75235625" y2="5.226434375" layer="201"/>
<rectangle x1="44.77775625" y1="5.201034375" x2="44.85395625" y2="5.226434375" layer="201"/>
<rectangle x1="46.86055625" y1="5.201034375" x2="46.93675625" y2="5.226434375" layer="201"/>
<rectangle x1="46.96215625" y1="5.201034375" x2="49.40055625" y2="5.226434375" layer="201"/>
<rectangle x1="42.31395625" y1="5.226434375" x2="44.67615625" y2="5.251834375" layer="201"/>
<rectangle x1="44.72695625" y1="5.226434375" x2="44.77775625" y2="5.251834375" layer="201"/>
<rectangle x1="46.93675625" y1="5.226434375" x2="46.98755625" y2="5.251834375" layer="201"/>
<rectangle x1="47.03835625" y1="5.226434375" x2="49.40055625" y2="5.251834375" layer="201"/>
<rectangle x1="42.28855625" y1="5.251834375" x2="44.62535625" y2="5.277234375" layer="201"/>
<rectangle x1="44.65075625" y1="5.251834375" x2="44.72695625" y2="5.277234375" layer="201"/>
<rectangle x1="46.98755625" y1="5.251834375" x2="47.06375625" y2="5.277234375" layer="201"/>
<rectangle x1="47.08915625" y1="5.251834375" x2="49.42595625" y2="5.277234375" layer="201"/>
<rectangle x1="42.26315625" y1="5.277234375" x2="44.57455625" y2="5.302634375" layer="201"/>
<rectangle x1="44.59995625" y1="5.277234375" x2="44.65075625" y2="5.302634375" layer="201"/>
<rectangle x1="47.06375625" y1="5.277234375" x2="47.11455625" y2="5.302634375" layer="201"/>
<rectangle x1="47.13995625" y1="5.277234375" x2="49.45135625" y2="5.302634375" layer="201"/>
<rectangle x1="42.23775625" y1="5.302634375" x2="44.49835625" y2="5.328034375" layer="201"/>
<rectangle x1="44.54915625" y1="5.302634375" x2="44.59995625" y2="5.328034375" layer="201"/>
<rectangle x1="47.11455625" y1="5.302634375" x2="47.16535625" y2="5.328034375" layer="201"/>
<rectangle x1="47.21615625" y1="5.302634375" x2="49.47675625" y2="5.328034375" layer="201"/>
<rectangle x1="42.23775625" y1="5.328034375" x2="44.44755625" y2="5.353434375" layer="201"/>
<rectangle x1="44.49835625" y1="5.328034375" x2="44.54915625" y2="5.353434375" layer="201"/>
<rectangle x1="47.16535625" y1="5.328034375" x2="47.21615625" y2="5.353434375" layer="201"/>
<rectangle x1="47.26695625" y1="5.328034375" x2="49.50215625" y2="5.353434375" layer="201"/>
<rectangle x1="42.21235625" y1="5.353434375" x2="44.42215625" y2="5.378834375" layer="201"/>
<rectangle x1="44.44755625" y1="5.353434375" x2="44.49835625" y2="5.378834375" layer="201"/>
<rectangle x1="47.21615625" y1="5.353434375" x2="47.26695625" y2="5.378834375" layer="201"/>
<rectangle x1="47.29235625" y1="5.353434375" x2="49.50215625" y2="5.378834375" layer="201"/>
<rectangle x1="42.18695625" y1="5.378834375" x2="44.37135625" y2="5.404234375" layer="201"/>
<rectangle x1="44.39675625" y1="5.378834375" x2="44.44755625" y2="5.404234375" layer="201"/>
<rectangle x1="47.26695625" y1="5.378834375" x2="47.31775625" y2="5.404234375" layer="201"/>
<rectangle x1="47.34315625" y1="5.378834375" x2="49.52755625" y2="5.404234375" layer="201"/>
<rectangle x1="42.16155625" y1="5.404234375" x2="44.32055625" y2="5.429634375" layer="201"/>
<rectangle x1="44.34595625" y1="5.404234375" x2="44.39675625" y2="5.429634375" layer="201"/>
<rectangle x1="47.31775625" y1="5.404234375" x2="47.36855625" y2="5.429634375" layer="201"/>
<rectangle x1="47.39395625" y1="5.404234375" x2="49.55295625" y2="5.429634375" layer="201"/>
<rectangle x1="42.16155625" y1="5.429634375" x2="44.26975625" y2="5.455034375" layer="201"/>
<rectangle x1="44.29515625" y1="5.429634375" x2="44.34595625" y2="5.455034375" layer="201"/>
<rectangle x1="47.36855625" y1="5.429634375" x2="47.41935625" y2="5.455034375" layer="201"/>
<rectangle x1="47.44475625" y1="5.429634375" x2="49.55295625" y2="5.455034375" layer="201"/>
<rectangle x1="42.13615625" y1="5.455034375" x2="44.24435625" y2="5.480434375" layer="201"/>
<rectangle x1="44.26975625" y1="5.455034375" x2="44.29515625" y2="5.480434375" layer="201"/>
<rectangle x1="45.53975625" y1="5.455034375" x2="46.17475625" y2="5.480434375" layer="201"/>
<rectangle x1="47.41935625" y1="5.455034375" x2="47.44475625" y2="5.480434375" layer="201"/>
<rectangle x1="47.47015625" y1="5.455034375" x2="49.57835625" y2="5.480434375" layer="201"/>
<rectangle x1="42.11075625" y1="5.480434375" x2="44.19355625" y2="5.505834375" layer="201"/>
<rectangle x1="44.21895625" y1="5.480434375" x2="44.26975625" y2="5.505834375" layer="201"/>
<rectangle x1="45.38735625" y1="5.480434375" x2="45.56515625" y2="5.505834375" layer="201"/>
<rectangle x1="45.76835625" y1="5.480434375" x2="45.97155625" y2="5.505834375" layer="201"/>
<rectangle x1="46.14935625" y1="5.480434375" x2="46.32715625" y2="5.505834375" layer="201"/>
<rectangle x1="47.44475625" y1="5.480434375" x2="47.49555625" y2="5.505834375" layer="201"/>
<rectangle x1="47.52095625" y1="5.480434375" x2="49.60375625" y2="5.505834375" layer="201"/>
<rectangle x1="42.11075625" y1="5.505834375" x2="44.16815625" y2="5.531234375" layer="201"/>
<rectangle x1="44.19355625" y1="5.505834375" x2="44.21895625" y2="5.531234375" layer="201"/>
<rectangle x1="45.26035625" y1="5.505834375" x2="45.38735625" y2="5.531234375" layer="201"/>
<rectangle x1="45.46355625" y1="5.505834375" x2="46.25095625" y2="5.531234375" layer="201"/>
<rectangle x1="46.35255625" y1="5.505834375" x2="46.45415625" y2="5.531234375" layer="201"/>
<rectangle x1="47.49555625" y1="5.505834375" x2="47.52095625" y2="5.531234375" layer="201"/>
<rectangle x1="47.57175625" y1="5.505834375" x2="49.62915625" y2="5.531234375" layer="201"/>
<rectangle x1="42.08535625" y1="5.531234375" x2="44.11735625" y2="5.556634375" layer="201"/>
<rectangle x1="44.14275625" y1="5.531234375" x2="44.19355625" y2="5.556634375" layer="201"/>
<rectangle x1="45.15875625" y1="5.531234375" x2="45.23495625" y2="5.556634375" layer="201"/>
<rectangle x1="45.33655625" y1="5.531234375" x2="46.37795625" y2="5.556634375" layer="201"/>
<rectangle x1="46.47955625" y1="5.531234375" x2="46.55575625" y2="5.556634375" layer="201"/>
<rectangle x1="47.52095625" y1="5.531234375" x2="47.57175625" y2="5.556634375" layer="201"/>
<rectangle x1="47.59715625" y1="5.531234375" x2="49.62915625" y2="5.556634375" layer="201"/>
<rectangle x1="42.05995625" y1="5.556634375" x2="44.09195625" y2="5.582034375" layer="201"/>
<rectangle x1="44.11735625" y1="5.556634375" x2="44.14275625" y2="5.582034375" layer="201"/>
<rectangle x1="45.08255625" y1="5.556634375" x2="45.15875625" y2="5.582034375" layer="201"/>
<rectangle x1="45.20955625" y1="5.556634375" x2="46.50495625" y2="5.582034375" layer="201"/>
<rectangle x1="46.55575625" y1="5.556634375" x2="46.65735625" y2="5.582034375" layer="201"/>
<rectangle x1="47.57175625" y1="5.556634375" x2="47.59715625" y2="5.582034375" layer="201"/>
<rectangle x1="47.62255625" y1="5.556634375" x2="49.65455625" y2="5.582034375" layer="201"/>
<rectangle x1="42.05995625" y1="5.582034375" x2="44.04115625" y2="5.607434375" layer="201"/>
<rectangle x1="44.06655625" y1="5.582034375" x2="44.11735625" y2="5.607434375" layer="201"/>
<rectangle x1="45.00635625" y1="5.582034375" x2="45.05715625" y2="5.607434375" layer="201"/>
<rectangle x1="45.10795625" y1="5.582034375" x2="46.60655625" y2="5.607434375" layer="201"/>
<rectangle x1="46.65735625" y1="5.582034375" x2="46.70815625" y2="5.607434375" layer="201"/>
<rectangle x1="47.59715625" y1="5.582034375" x2="49.67995625" y2="5.607434375" layer="201"/>
<rectangle x1="58.59535625" y1="5.582034375" x2="58.79855625" y2="5.607434375" layer="201"/>
<rectangle x1="62.35455625" y1="5.582034375" x2="63.09115625" y2="5.607434375" layer="201"/>
<rectangle x1="67.89175625" y1="5.582034375" x2="68.17115625" y2="5.607434375" layer="201"/>
<rectangle x1="42.03455625" y1="5.607434375" x2="44.01575625" y2="5.632834375" layer="201"/>
<rectangle x1="44.04115625" y1="5.607434375" x2="44.06655625" y2="5.632834375" layer="201"/>
<rectangle x1="44.93015625" y1="5.607434375" x2="44.98095625" y2="5.632834375" layer="201"/>
<rectangle x1="45.05715625" y1="5.607434375" x2="46.65735625" y2="5.632834375" layer="201"/>
<rectangle x1="46.73355625" y1="5.607434375" x2="46.78435625" y2="5.632834375" layer="201"/>
<rectangle x1="47.64795625" y1="5.607434375" x2="49.67995625" y2="5.632834375" layer="201"/>
<rectangle x1="58.36675625" y1="5.607434375" x2="58.97635625" y2="5.632834375" layer="201"/>
<rectangle x1="62.17675625" y1="5.607434375" x2="63.29435625" y2="5.632834375" layer="201"/>
<rectangle x1="67.63775625" y1="5.607434375" x2="68.42515625" y2="5.632834375" layer="201"/>
<rectangle x1="42.00915625" y1="5.632834375" x2="43.99035625" y2="5.658234375" layer="201"/>
<rectangle x1="44.01575625" y1="5.632834375" x2="44.04115625" y2="5.658234375" layer="201"/>
<rectangle x1="44.85395625" y1="5.632834375" x2="44.93015625" y2="5.658234375" layer="201"/>
<rectangle x1="44.98095625" y1="5.632834375" x2="46.75895625" y2="5.658234375" layer="201"/>
<rectangle x1="46.78435625" y1="5.632834375" x2="46.86055625" y2="5.658234375" layer="201"/>
<rectangle x1="47.64795625" y1="5.632834375" x2="47.67335625" y2="5.658234375" layer="201"/>
<rectangle x1="47.69875625" y1="5.632834375" x2="49.70535625" y2="5.658234375" layer="201"/>
<rectangle x1="58.26515625" y1="5.632834375" x2="59.07795625" y2="5.658234375" layer="201"/>
<rectangle x1="62.04975625" y1="5.632834375" x2="63.39595625" y2="5.658234375" layer="201"/>
<rectangle x1="67.51075625" y1="5.632834375" x2="68.55215625" y2="5.658234375" layer="201"/>
<rectangle x1="42.00915625" y1="5.658234375" x2="43.93955625" y2="5.683634375" layer="201"/>
<rectangle x1="43.96495625" y1="5.658234375" x2="44.01575625" y2="5.683634375" layer="201"/>
<rectangle x1="44.80315625" y1="5.658234375" x2="44.85395625" y2="5.683634375" layer="201"/>
<rectangle x1="44.90475625" y1="5.658234375" x2="46.80975625" y2="5.683634375" layer="201"/>
<rectangle x1="46.86055625" y1="5.658234375" x2="46.91135625" y2="5.683634375" layer="201"/>
<rectangle x1="47.67335625" y1="5.658234375" x2="47.69875625" y2="5.683634375" layer="201"/>
<rectangle x1="47.72415625" y1="5.658234375" x2="49.73075625" y2="5.683634375" layer="201"/>
<rectangle x1="51.91515625" y1="5.658234375" x2="52.95655625" y2="5.683634375" layer="201"/>
<rectangle x1="54.12495625" y1="5.658234375" x2="54.98855625" y2="5.683634375" layer="201"/>
<rectangle x1="56.15695625" y1="5.658234375" x2="57.17295625" y2="5.683634375" layer="201"/>
<rectangle x1="58.18895625" y1="5.658234375" x2="59.17955625" y2="5.683634375" layer="201"/>
<rectangle x1="59.91615625" y1="5.658234375" x2="60.93215625" y2="5.683634375" layer="201"/>
<rectangle x1="61.94815625" y1="5.658234375" x2="63.49755625" y2="5.683634375" layer="201"/>
<rectangle x1="64.81835625" y1="5.658234375" x2="65.88515625" y2="5.683634375" layer="201"/>
<rectangle x1="67.40915625" y1="5.658234375" x2="68.65375625" y2="5.683634375" layer="201"/>
<rectangle x1="70.66035625" y1="5.658234375" x2="72.00655625" y2="5.683634375" layer="201"/>
<rectangle x1="72.84475625" y1="5.658234375" x2="74.19095625" y2="5.683634375" layer="201"/>
<rectangle x1="41.98375625" y1="5.683634375" x2="43.91415625" y2="5.709034375" layer="201"/>
<rectangle x1="43.93955625" y1="5.683634375" x2="43.96495625" y2="5.709034375" layer="201"/>
<rectangle x1="44.75235625" y1="5.683634375" x2="44.80315625" y2="5.709034375" layer="201"/>
<rectangle x1="44.85395625" y1="5.683634375" x2="46.88595625" y2="5.709034375" layer="201"/>
<rectangle x1="46.91135625" y1="5.683634375" x2="46.96215625" y2="5.709034375" layer="201"/>
<rectangle x1="47.67335625" y1="5.683634375" x2="47.69875625" y2="5.709034375" layer="201"/>
<rectangle x1="47.72415625" y1="5.683634375" x2="49.73075625" y2="5.709034375" layer="201"/>
<rectangle x1="51.91515625" y1="5.683634375" x2="52.95655625" y2="5.709034375" layer="201"/>
<rectangle x1="54.09955625" y1="5.683634375" x2="54.98855625" y2="5.709034375" layer="201"/>
<rectangle x1="56.13155625" y1="5.683634375" x2="57.17295625" y2="5.709034375" layer="201"/>
<rectangle x1="58.11275625" y1="5.683634375" x2="59.25575625" y2="5.709034375" layer="201"/>
<rectangle x1="59.89075625" y1="5.683634375" x2="60.93215625" y2="5.709034375" layer="201"/>
<rectangle x1="61.87195625" y1="5.683634375" x2="63.59915625" y2="5.709034375" layer="201"/>
<rectangle x1="64.79295625" y1="5.683634375" x2="65.88515625" y2="5.709034375" layer="201"/>
<rectangle x1="67.33295625" y1="5.683634375" x2="68.72995625" y2="5.709034375" layer="201"/>
<rectangle x1="70.66035625" y1="5.683634375" x2="72.00655625" y2="5.709034375" layer="201"/>
<rectangle x1="72.84475625" y1="5.683634375" x2="74.19095625" y2="5.709034375" layer="201"/>
<rectangle x1="41.95835625" y1="5.709034375" x2="43.88875625" y2="5.734434375" layer="201"/>
<rectangle x1="43.91415625" y1="5.709034375" x2="43.93955625" y2="5.734434375" layer="201"/>
<rectangle x1="44.70155625" y1="5.709034375" x2="44.75235625" y2="5.734434375" layer="201"/>
<rectangle x1="44.77775625" y1="5.709034375" x2="46.93675625" y2="5.734434375" layer="201"/>
<rectangle x1="46.96215625" y1="5.709034375" x2="47.01295625" y2="5.734434375" layer="201"/>
<rectangle x1="47.69875625" y1="5.709034375" x2="49.75615625" y2="5.734434375" layer="201"/>
<rectangle x1="51.91515625" y1="5.709034375" x2="52.95655625" y2="5.734434375" layer="201"/>
<rectangle x1="54.09955625" y1="5.709034375" x2="55.01395625" y2="5.734434375" layer="201"/>
<rectangle x1="56.13155625" y1="5.709034375" x2="57.17295625" y2="5.734434375" layer="201"/>
<rectangle x1="58.06195625" y1="5.709034375" x2="59.30655625" y2="5.734434375" layer="201"/>
<rectangle x1="59.89075625" y1="5.709034375" x2="60.90675625" y2="5.734434375" layer="201"/>
<rectangle x1="61.79575625" y1="5.709034375" x2="63.64995625" y2="5.734434375" layer="201"/>
<rectangle x1="64.79295625" y1="5.709034375" x2="65.88515625" y2="5.734434375" layer="201"/>
<rectangle x1="67.25675625" y1="5.709034375" x2="68.80615625" y2="5.734434375" layer="201"/>
<rectangle x1="70.63495625" y1="5.709034375" x2="72.00655625" y2="5.734434375" layer="201"/>
<rectangle x1="72.81935625" y1="5.709034375" x2="74.21635625" y2="5.734434375" layer="201"/>
<rectangle x1="41.95835625" y1="5.734434375" x2="43.86335625" y2="5.759834375" layer="201"/>
<rectangle x1="43.88875625" y1="5.734434375" x2="43.91415625" y2="5.759834375" layer="201"/>
<rectangle x1="44.65075625" y1="5.734434375" x2="44.70155625" y2="5.759834375" layer="201"/>
<rectangle x1="44.72695625" y1="5.734434375" x2="46.98755625" y2="5.759834375" layer="201"/>
<rectangle x1="47.03835625" y1="5.734434375" x2="47.06375625" y2="5.759834375" layer="201"/>
<rectangle x1="47.69875625" y1="5.734434375" x2="47.72415625" y2="5.759834375" layer="201"/>
<rectangle x1="47.74955625" y1="5.734434375" x2="49.75615625" y2="5.759834375" layer="201"/>
<rectangle x1="51.91515625" y1="5.734434375" x2="52.95655625" y2="5.759834375" layer="201"/>
<rectangle x1="54.09955625" y1="5.734434375" x2="55.01395625" y2="5.759834375" layer="201"/>
<rectangle x1="56.13155625" y1="5.734434375" x2="57.17295625" y2="5.759834375" layer="201"/>
<rectangle x1="58.01115625" y1="5.734434375" x2="59.35735625" y2="5.759834375" layer="201"/>
<rectangle x1="59.86535625" y1="5.734434375" x2="60.90675625" y2="5.759834375" layer="201"/>
<rectangle x1="61.74495625" y1="5.734434375" x2="63.72615625" y2="5.759834375" layer="201"/>
<rectangle x1="64.79295625" y1="5.734434375" x2="65.88515625" y2="5.759834375" layer="201"/>
<rectangle x1="67.20595625" y1="5.734434375" x2="68.85695625" y2="5.759834375" layer="201"/>
<rectangle x1="70.63495625" y1="5.734434375" x2="72.03195625" y2="5.759834375" layer="201"/>
<rectangle x1="72.81935625" y1="5.734434375" x2="74.21635625" y2="5.759834375" layer="201"/>
<rectangle x1="41.93295625" y1="5.759834375" x2="43.88875625" y2="5.785234375" layer="201"/>
<rectangle x1="44.59995625" y1="5.759834375" x2="44.62535625" y2="5.785234375" layer="201"/>
<rectangle x1="44.67615625" y1="5.759834375" x2="47.03835625" y2="5.785234375" layer="201"/>
<rectangle x1="47.08915625" y1="5.759834375" x2="47.11455625" y2="5.785234375" layer="201"/>
<rectangle x1="47.69875625" y1="5.759834375" x2="47.72415625" y2="5.785234375" layer="201"/>
<rectangle x1="47.74955625" y1="5.759834375" x2="49.78155625" y2="5.785234375" layer="201"/>
<rectangle x1="51.91515625" y1="5.759834375" x2="52.95655625" y2="5.785234375" layer="201"/>
<rectangle x1="54.07415625" y1="5.759834375" x2="55.01395625" y2="5.785234375" layer="201"/>
<rectangle x1="56.13155625" y1="5.759834375" x2="57.17295625" y2="5.785234375" layer="201"/>
<rectangle x1="57.96035625" y1="5.759834375" x2="59.40815625" y2="5.785234375" layer="201"/>
<rectangle x1="59.86535625" y1="5.759834375" x2="60.88135625" y2="5.785234375" layer="201"/>
<rectangle x1="61.69415625" y1="5.759834375" x2="63.77695625" y2="5.785234375" layer="201"/>
<rectangle x1="64.79295625" y1="5.759834375" x2="65.88515625" y2="5.785234375" layer="201"/>
<rectangle x1="67.12975625" y1="5.759834375" x2="68.90775625" y2="5.785234375" layer="201"/>
<rectangle x1="70.63495625" y1="5.759834375" x2="72.03195625" y2="5.785234375" layer="201"/>
<rectangle x1="72.81935625" y1="5.759834375" x2="74.21635625" y2="5.785234375" layer="201"/>
<rectangle x1="41.93295625" y1="5.785234375" x2="43.78715625" y2="5.810634375" layer="201"/>
<rectangle x1="43.81255625" y1="5.785234375" x2="43.86335625" y2="5.810634375" layer="201"/>
<rectangle x1="44.54915625" y1="5.785234375" x2="44.59995625" y2="5.810634375" layer="201"/>
<rectangle x1="44.62535625" y1="5.785234375" x2="47.08915625" y2="5.810634375" layer="201"/>
<rectangle x1="47.11455625" y1="5.785234375" x2="47.16535625" y2="5.810634375" layer="201"/>
<rectangle x1="47.69875625" y1="5.785234375" x2="49.80695625" y2="5.810634375" layer="201"/>
<rectangle x1="51.91515625" y1="5.785234375" x2="52.95655625" y2="5.810634375" layer="201"/>
<rectangle x1="54.07415625" y1="5.785234375" x2="55.03935625" y2="5.810634375" layer="201"/>
<rectangle x1="56.13155625" y1="5.785234375" x2="57.17295625" y2="5.810634375" layer="201"/>
<rectangle x1="57.90955625" y1="5.785234375" x2="59.45895625" y2="5.810634375" layer="201"/>
<rectangle x1="59.83995625" y1="5.785234375" x2="60.88135625" y2="5.810634375" layer="201"/>
<rectangle x1="61.64335625" y1="5.785234375" x2="63.82775625" y2="5.810634375" layer="201"/>
<rectangle x1="64.79295625" y1="5.785234375" x2="65.88515625" y2="5.810634375" layer="201"/>
<rectangle x1="67.10435625" y1="5.785234375" x2="68.95855625" y2="5.810634375" layer="201"/>
<rectangle x1="70.63495625" y1="5.785234375" x2="72.03195625" y2="5.810634375" layer="201"/>
<rectangle x1="72.81935625" y1="5.785234375" x2="74.21635625" y2="5.810634375" layer="201"/>
<rectangle x1="41.90755625" y1="5.810634375" x2="43.76175625" y2="5.836034375" layer="201"/>
<rectangle x1="43.78715625" y1="5.810634375" x2="43.81255625" y2="5.836034375" layer="201"/>
<rectangle x1="44.49835625" y1="5.810634375" x2="44.54915625" y2="5.836034375" layer="201"/>
<rectangle x1="44.57455625" y1="5.810634375" x2="44.85395625" y2="5.836034375" layer="201"/>
<rectangle x1="44.93015625" y1="5.810634375" x2="44.98095625" y2="5.836034375" layer="201"/>
<rectangle x1="45.03175625" y1="5.810634375" x2="47.13995625" y2="5.836034375" layer="201"/>
<rectangle x1="47.16535625" y1="5.810634375" x2="47.21615625" y2="5.836034375" layer="201"/>
<rectangle x1="47.72415625" y1="5.810634375" x2="49.80695625" y2="5.836034375" layer="201"/>
<rectangle x1="51.91515625" y1="5.810634375" x2="52.95655625" y2="5.836034375" layer="201"/>
<rectangle x1="54.04875625" y1="5.810634375" x2="55.03935625" y2="5.836034375" layer="201"/>
<rectangle x1="56.13155625" y1="5.810634375" x2="57.17295625" y2="5.836034375" layer="201"/>
<rectangle x1="57.88415625" y1="5.810634375" x2="59.48435625" y2="5.836034375" layer="201"/>
<rectangle x1="59.83995625" y1="5.810634375" x2="60.88135625" y2="5.836034375" layer="201"/>
<rectangle x1="61.59255625" y1="5.810634375" x2="63.87855625" y2="5.836034375" layer="201"/>
<rectangle x1="64.79295625" y1="5.810634375" x2="65.88515625" y2="5.836034375" layer="201"/>
<rectangle x1="67.05355625" y1="5.810634375" x2="69.00935625" y2="5.836034375" layer="201"/>
<rectangle x1="70.60955625" y1="5.810634375" x2="72.03195625" y2="5.836034375" layer="201"/>
<rectangle x1="72.81935625" y1="5.810634375" x2="74.24175625" y2="5.836034375" layer="201"/>
<rectangle x1="41.88215625" y1="5.836034375" x2="43.73635625" y2="5.861434375" layer="201"/>
<rectangle x1="43.76175625" y1="5.836034375" x2="43.78715625" y2="5.861434375" layer="201"/>
<rectangle x1="44.47295625" y1="5.836034375" x2="44.49835625" y2="5.861434375" layer="201"/>
<rectangle x1="44.52375625" y1="5.836034375" x2="44.82855625" y2="5.861434375" layer="201"/>
<rectangle x1="44.85395625" y1="5.836034375" x2="44.90475625" y2="5.861434375" layer="201"/>
<rectangle x1="45.00635625" y1="5.836034375" x2="45.05715625" y2="5.861434375" layer="201"/>
<rectangle x1="45.08255625" y1="5.836034375" x2="47.19075625" y2="5.861434375" layer="201"/>
<rectangle x1="47.21615625" y1="5.836034375" x2="47.24155625" y2="5.861434375" layer="201"/>
<rectangle x1="47.67335625" y1="5.836034375" x2="47.69875625" y2="5.861434375" layer="201"/>
<rectangle x1="47.72415625" y1="5.836034375" x2="49.83235625" y2="5.861434375" layer="201"/>
<rectangle x1="51.91515625" y1="5.836034375" x2="52.95655625" y2="5.861434375" layer="201"/>
<rectangle x1="54.04875625" y1="5.836034375" x2="55.03935625" y2="5.861434375" layer="201"/>
<rectangle x1="56.13155625" y1="5.836034375" x2="57.17295625" y2="5.861434375" layer="201"/>
<rectangle x1="57.83335625" y1="5.836034375" x2="59.53515625" y2="5.861434375" layer="201"/>
<rectangle x1="59.81455625" y1="5.836034375" x2="60.85595625" y2="5.861434375" layer="201"/>
<rectangle x1="61.54175625" y1="5.836034375" x2="63.92935625" y2="5.861434375" layer="201"/>
<rectangle x1="64.79295625" y1="5.836034375" x2="65.88515625" y2="5.861434375" layer="201"/>
<rectangle x1="67.00275625" y1="5.836034375" x2="69.06015625" y2="5.861434375" layer="201"/>
<rectangle x1="70.60955625" y1="5.836034375" x2="72.05735625" y2="5.861434375" layer="201"/>
<rectangle x1="72.79395625" y1="5.836034375" x2="74.24175625" y2="5.861434375" layer="201"/>
<rectangle x1="41.88215625" y1="5.861434375" x2="43.71095625" y2="5.886834375" layer="201"/>
<rectangle x1="43.73635625" y1="5.861434375" x2="43.76175625" y2="5.886834375" layer="201"/>
<rectangle x1="44.42215625" y1="5.861434375" x2="44.47295625" y2="5.886834375" layer="201"/>
<rectangle x1="44.49835625" y1="5.861434375" x2="44.77775625" y2="5.886834375" layer="201"/>
<rectangle x1="44.80315625" y1="5.861434375" x2="44.85395625" y2="5.886834375" layer="201"/>
<rectangle x1="45.05715625" y1="5.861434375" x2="45.08255625" y2="5.886834375" layer="201"/>
<rectangle x1="45.10795625" y1="5.861434375" x2="47.21615625" y2="5.886834375" layer="201"/>
<rectangle x1="47.24155625" y1="5.861434375" x2="47.29235625" y2="5.886834375" layer="201"/>
<rectangle x1="47.67335625" y1="5.861434375" x2="49.83235625" y2="5.886834375" layer="201"/>
<rectangle x1="51.91515625" y1="5.861434375" x2="52.95655625" y2="5.886834375" layer="201"/>
<rectangle x1="54.04875625" y1="5.861434375" x2="55.06475625" y2="5.886834375" layer="201"/>
<rectangle x1="56.13155625" y1="5.861434375" x2="57.17295625" y2="5.886834375" layer="201"/>
<rectangle x1="57.80795625" y1="5.861434375" x2="59.56055625" y2="5.886834375" layer="201"/>
<rectangle x1="59.81455625" y1="5.861434375" x2="60.85595625" y2="5.886834375" layer="201"/>
<rectangle x1="61.51635625" y1="5.861434375" x2="63.95475625" y2="5.886834375" layer="201"/>
<rectangle x1="64.79295625" y1="5.861434375" x2="65.88515625" y2="5.886834375" layer="201"/>
<rectangle x1="66.95195625" y1="5.861434375" x2="69.08555625" y2="5.886834375" layer="201"/>
<rectangle x1="70.60955625" y1="5.861434375" x2="72.05735625" y2="5.886834375" layer="201"/>
<rectangle x1="72.79395625" y1="5.861434375" x2="74.24175625" y2="5.886834375" layer="201"/>
<rectangle x1="41.85675625" y1="5.886834375" x2="43.68555625" y2="5.912234375" layer="201"/>
<rectangle x1="43.71095625" y1="5.886834375" x2="43.73635625" y2="5.912234375" layer="201"/>
<rectangle x1="44.39675625" y1="5.886834375" x2="44.42215625" y2="5.912234375" layer="201"/>
<rectangle x1="44.44755625" y1="5.886834375" x2="44.75235625" y2="5.912234375" layer="201"/>
<rectangle x1="44.77775625" y1="5.886834375" x2="44.80315625" y2="5.912234375" layer="201"/>
<rectangle x1="45.08255625" y1="5.886834375" x2="45.10795625" y2="5.912234375" layer="201"/>
<rectangle x1="45.13335625" y1="5.886834375" x2="47.26695625" y2="5.912234375" layer="201"/>
<rectangle x1="47.29235625" y1="5.886834375" x2="47.34315625" y2="5.912234375" layer="201"/>
<rectangle x1="47.64795625" y1="5.886834375" x2="47.67335625" y2="5.912234375" layer="201"/>
<rectangle x1="47.69875625" y1="5.886834375" x2="49.85775625" y2="5.912234375" layer="201"/>
<rectangle x1="51.91515625" y1="5.886834375" x2="52.95655625" y2="5.912234375" layer="201"/>
<rectangle x1="54.02335625" y1="5.886834375" x2="55.06475625" y2="5.912234375" layer="201"/>
<rectangle x1="56.13155625" y1="5.886834375" x2="57.17295625" y2="5.912234375" layer="201"/>
<rectangle x1="57.78255625" y1="5.886834375" x2="59.58595625" y2="5.912234375" layer="201"/>
<rectangle x1="59.81455625" y1="5.886834375" x2="60.85595625" y2="5.912234375" layer="201"/>
<rectangle x1="61.46555625" y1="5.886834375" x2="64.00555625" y2="5.912234375" layer="201"/>
<rectangle x1="64.79295625" y1="5.886834375" x2="65.88515625" y2="5.912234375" layer="201"/>
<rectangle x1="66.92655625" y1="5.886834375" x2="69.13635625" y2="5.912234375" layer="201"/>
<rectangle x1="70.60955625" y1="5.886834375" x2="72.05735625" y2="5.912234375" layer="201"/>
<rectangle x1="72.79395625" y1="5.886834375" x2="74.24175625" y2="5.912234375" layer="201"/>
<rectangle x1="41.85675625" y1="5.912234375" x2="43.66015625" y2="5.937634375" layer="201"/>
<rectangle x1="43.68555625" y1="5.912234375" x2="43.71095625" y2="5.937634375" layer="201"/>
<rectangle x1="44.34595625" y1="5.912234375" x2="44.39675625" y2="5.937634375" layer="201"/>
<rectangle x1="44.42215625" y1="5.912234375" x2="44.77775625" y2="5.937634375" layer="201"/>
<rectangle x1="45.10795625" y1="5.912234375" x2="45.13335625" y2="5.937634375" layer="201"/>
<rectangle x1="45.15875625" y1="5.912234375" x2="47.29235625" y2="5.937634375" layer="201"/>
<rectangle x1="47.34315625" y1="5.912234375" x2="47.36855625" y2="5.937634375" layer="201"/>
<rectangle x1="47.62255625" y1="5.912234375" x2="47.64795625" y2="5.937634375" layer="201"/>
<rectangle x1="47.67335625" y1="5.912234375" x2="49.85775625" y2="5.937634375" layer="201"/>
<rectangle x1="51.91515625" y1="5.912234375" x2="52.95655625" y2="5.937634375" layer="201"/>
<rectangle x1="54.02335625" y1="5.912234375" x2="55.09015625" y2="5.937634375" layer="201"/>
<rectangle x1="56.13155625" y1="5.912234375" x2="57.17295625" y2="5.937634375" layer="201"/>
<rectangle x1="57.75715625" y1="5.912234375" x2="59.61135625" y2="5.937634375" layer="201"/>
<rectangle x1="59.78915625" y1="5.912234375" x2="60.83055625" y2="5.937634375" layer="201"/>
<rectangle x1="61.44015625" y1="5.912234375" x2="64.03095625" y2="5.937634375" layer="201"/>
<rectangle x1="64.79295625" y1="5.912234375" x2="65.88515625" y2="5.937634375" layer="201"/>
<rectangle x1="66.90115625" y1="5.912234375" x2="69.16175625" y2="5.937634375" layer="201"/>
<rectangle x1="70.58415625" y1="5.912234375" x2="72.05735625" y2="5.937634375" layer="201"/>
<rectangle x1="72.79395625" y1="5.912234375" x2="74.26715625" y2="5.937634375" layer="201"/>
<rectangle x1="41.83135625" y1="5.937634375" x2="43.63475625" y2="5.963034375" layer="201"/>
<rectangle x1="43.66015625" y1="5.937634375" x2="43.68555625" y2="5.963034375" layer="201"/>
<rectangle x1="44.32055625" y1="5.937634375" x2="44.34595625" y2="5.963034375" layer="201"/>
<rectangle x1="44.37135625" y1="5.937634375" x2="44.72695625" y2="5.963034375" layer="201"/>
<rectangle x1="44.75235625" y1="5.937634375" x2="44.77775625" y2="5.963034375" layer="201"/>
<rectangle x1="45.13335625" y1="5.937634375" x2="45.15875625" y2="5.963034375" layer="201"/>
<rectangle x1="45.18415625" y1="5.937634375" x2="47.34315625" y2="5.963034375" layer="201"/>
<rectangle x1="47.36855625" y1="5.937634375" x2="47.41935625" y2="5.963034375" layer="201"/>
<rectangle x1="47.57175625" y1="5.937634375" x2="47.62255625" y2="5.963034375" layer="201"/>
<rectangle x1="47.64795625" y1="5.937634375" x2="49.88315625" y2="5.963034375" layer="201"/>
<rectangle x1="51.91515625" y1="5.937634375" x2="52.95655625" y2="5.963034375" layer="201"/>
<rectangle x1="54.02335625" y1="5.937634375" x2="55.09015625" y2="5.963034375" layer="201"/>
<rectangle x1="56.13155625" y1="5.937634375" x2="57.17295625" y2="5.963034375" layer="201"/>
<rectangle x1="57.73175625" y1="5.937634375" x2="59.63675625" y2="5.963034375" layer="201"/>
<rectangle x1="59.78915625" y1="5.937634375" x2="60.83055625" y2="5.963034375" layer="201"/>
<rectangle x1="61.41475625" y1="5.937634375" x2="64.08175625" y2="5.963034375" layer="201"/>
<rectangle x1="64.79295625" y1="5.937634375" x2="65.88515625" y2="5.963034375" layer="201"/>
<rectangle x1="66.85035625" y1="5.937634375" x2="69.21255625" y2="5.963034375" layer="201"/>
<rectangle x1="70.58415625" y1="5.937634375" x2="72.05735625" y2="5.963034375" layer="201"/>
<rectangle x1="72.79395625" y1="5.937634375" x2="74.26715625" y2="5.963034375" layer="201"/>
<rectangle x1="41.83135625" y1="5.963034375" x2="43.60935625" y2="5.988434375" layer="201"/>
<rectangle x1="43.63475625" y1="5.963034375" x2="43.66015625" y2="5.988434375" layer="201"/>
<rectangle x1="44.26975625" y1="5.963034375" x2="44.32055625" y2="5.988434375" layer="201"/>
<rectangle x1="44.34595625" y1="5.963034375" x2="44.7

license: Unlicense

extension: brd