text:
package main

import (
	"regexp"
	"strconv"

	jp "github.com/buger/jsonparser"
	"github.com/prometheus/client_golang/prometheus"
)

const (
	namespace = "ravendb"
	subsystem = ""
)

type exporter struct {
	up                         prometheus.Gauge
	workingSet                 prometheus.Gauge
	cpuTime                    prometheus.Counter
	isLeader                   prometheus.Gauge
	requestTotal               prometheus.Counter
	documentPutTotal           prometheus.Counter
	documentPutBytes           prometheus.Counter
	mapIndexIndexedTotal       prometheus.Counter
	mapReduceIndexMappedTotal  prometheus.Counter
	mapReduceIndexReducedTotal prometheus.Counter

	databaseDocuments    *prometheus.GaugeVec
	databaseIndexes      *prometheus.GaugeVec
	databaseStaleIndexes *prometheus.GaugeVec
	databaseSize         *prometheus.GaugeVec

	databaseRequestTotal               *prometheus.CounterVec
	databaseDocumentPutTotal           *prometheus.CounterVec
	databaseDocumentPutBytes           *prometheus.CounterVec
	databaseMapIndexIndexedTotal       *prometheus.CounterVec
	databaseMapReduceIndexMappedTotal  *prometheus.CounterVec
	databaseMapReduceIndexReducedTotal *prometheus.CounterVec
}

func newExporter() *exporter {
	return &exporter{
		up:                         createGauge("up", "Whether the RavenDB scrape was successful"),
		workingSet:                 createGauge("working_set_bytes", "Process working set"),
		cpuTime:                    createCounter("cpu_time_seconds_total", "CPU time"),
		isLeader:                   createGauge("is_leader", "If 1, then node is the cluster leader, otherwise 0"),
		requestTotal:               createCounter("request_total", "Server-wide request count"),
		documentPutTotal:           createCounter("document_put_total", "Server-wide document puts count"),
		documentPutBytes:           createCounter("document_put_bytes_total", "Server-wide document put bytes"),
		mapIndexIndexedTotal:       createCounter("mapindex_indexed_total", "Server-wide map index indexed count"),
		mapReduceIndexMappedTotal:  createCounter("mapreduceindex_mapped_total", "Server-wide map-reduce index mapped count"),
		mapReduceIndexReducedTotal: createCounter("mapreduceindex_reduced_total", "Server-wide map-reduce index reduced count"),

		databaseDocuments:    createDatabaseGaugeVec("database_documents", "Count of documents in a database"),
		databaseIndexes:      createDatabaseGaugeVec("database_indexes", "Count of indexes in a database"),
		databaseStaleIndexes: createDatabaseGaugeVec("database_stale_indexes", "Count of stale indexes in a database"),
		databaseSize:         createDatabaseGaugeVec("database_size_bytes", "Database size in bytes"),

		databaseRequestTotal:               createDatabaseCounterVec("database_request_total", "Database request count"),
		databaseDocumentPutTotal:           createDatabaseCounterVec("database_document_put_total", "Database document puts count"),
		databaseDocumentPutBytes:           createDatabaseCounterVec("database_document_put_bytes_total", "Database document put bytes"),
		databaseMapIndexIndexedTotal:       createDatabaseCounterVec("database_mapindex_indexed_total", "Database map index indexed count"),
		databaseMapReduceIndexMappedTotal:  createDatabaseCounterVec("database_mapreduceindex_mapped_total", "Database map-reduce index mapped count"),
		databaseMapReduceIndexReducedTotal: createDatabaseCounterVec("database_mapreduceindex_reduced_total", "Database map-reduce index reduced count"),
	}
}

func (e *exporter) Describe(ch chan<- *prometheus.Desc) {
	ch <- e.up.Desc()
	ch <- e.workingSet.Desc()
	ch <- e.cpuTime.Desc()
	ch <- e.isLeader.Desc()
	ch <- e.requestTotal.Desc()
	ch <- e.documentPutTotal.Desc()
	ch <- e.documentPutBytes.Desc()
	ch <- e.mapIndexIndexedTotal.Desc()
	ch <- e.mapReduceIndexMappedTotal.Desc()
	ch <- e.mapReduceIndexReducedTotal.Desc()

	e.databaseDocuments.Describe(ch)
	e.databaseIndexes.Describe(ch)
	e.databaseStaleIndexes.Describe(ch)
	e.databaseSize.Describe(ch)

	e.databaseRequestTotal.Describe(ch)
	e.databaseDocumentPutTotal.Describe(ch)
	e.databaseMapIndexIndexedTotal.Describe(ch)
	e.databaseMapReduceIndexMappedTotal.Describe(ch)
	e.databaseMapReduceIndexReducedTotal.Describe(ch)
}

func (e *exporter) Collect(ch chan<- prometheus.Metric) {
	log.Info("Running scrape")

	if stats, err := getStats(); err != nil {
		log.WithError(err).Error("Error while getting data from RavenDB")

		e.up.Set(0)
		ch <- e.up
	} else {
		e.up.Set(1)
		ch <- e.up

		e.workingSet.Set(getMemoryWorkingSet(stats))
		ch <- e.workingSet

		e.cpuTime.Set(getCPUTime(stats))
		ch <- e.cpuTime

		e.isLeader.Set(getIsLeader(stats))
		ch <- e.isLeader

		e.requestTotal.Set(getRequestTotal(stats))
		ch <- e.requestTotal

		e.documentPutTotal.Set(getDocumentPutTotal(stats))
		ch <- e.documentPutTotal

		e.documentPutBytes.Set(getDocumentPutBytesTotal(stats))
		ch <- e.documentPutBytes

		e.mapIndexIndexedTotal.Set(getMapIndexIndexedTotal(stats))
		ch <- e.mapIndexIndexedTotal

		e.mapReduceIndexMappedTotal.Set(getMapReduceIndexMappedTotal(stats))
		ch <- e.mapReduceIndexMappedTotal

		e.mapReduceIndexReducedTotal.Set(getMapReduceIndexReducedTotal(stats))
		ch <- e.mapReduceIndexReducedTotal

		collectPerDatabaseGauge(stats, e.databaseDocuments, getDatabaseDocuments, ch)
		collectPerDatabaseGauge(stats, e.databaseIndexes, getDatabaseIndexes, ch)
		collectPerDatabaseGauge(stats, e.databaseStaleIndexes, getDatabaseStaleIndexes, ch)
		collectPerDatabaseGauge(stats, e.databaseSize, getDatabaseSize, ch)

		collectPerDatabaseCounter(stats, e.databaseRequestTotal, getDatabaseRequestTotal, ch)
		collectPerDatabaseCounter(stats, e.databaseDocumentPutBytes, getDatabaseDocumentPutBytes, ch)
		collectPerDatabaseCounter(stats, e.databaseDocumentPutTotal, getDatabaseDocumentPutTotal, ch)

		collectPerDatabaseCounter(stats, e.databaseMapIndexIndexedTotal, getDatabaseMapIndexIndexedTotal, ch)
		collectPerDatabaseCounter(stats, e.databaseMapReduceIndexMappedTotal, getDatabaseMapReduceIndexMappedTotal, ch)
		collectPerDatabaseCounter(stats, e.databaseMapReduceIndexReducedTotal, getDatabaseMapReduceIndexReducedTotal, ch)

	}
}

func collectPerDatabaseGauge(stats *stats, vec *prometheus.GaugeVec, collectFunc func(*dbStats) float64, ch chan<- prometheus.Metric) {
	for _, dbs := range stats.dbStats {
		vec.WithLabelValues(dbs.database).Set(collectFunc(dbs))
	}
	vec.Collect(ch)
}

func collectPerDatabaseCounter(stats *stats, vec *prometheus.CounterVec, collectFunc func(*dbStats) float64, ch chan<- prometheus.Metric) {
	for _, dbs := range stats.dbStats {
		vec.WithLabelValues(dbs.database).Set(collectFunc(dbs))
	}
	vec.Collect(ch)
}

func getCPUTime(stats *stats) float64 {
	var cpuTimeString string
	jp.ArrayEach(stats.cpu, func(value []byte, dataType jp.ValueType, offset int, err error) {
		cpuTimeString, _ = jp.GetString(value, "TotalProcessorTime") // just use the last entry in the array TODO: why is this an array?
	}, "CpuStats")

	return timeSpanToSeconds(cpuTimeString)
}

func getMemoryWorkingSet(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.memory, "WorkingSet")
	return value
}

func getIsLeader(stats *stats) float64 {
	value, _ := jp.GetString(stats.nodeInfo, "CurrentState")
	if value == "Leader" {
		return 1
	}
	return 0
}

func getRequestTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "Requests", "RequestsPerSec", "Count")
	return value
}

func getDocumentPutTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "Docs", "PutsPerSec", "Count")
	return value
}

func getDocumentPutBytesTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "Docs", "BytesPutsPerSec", "Count")
	return value
}

func getMapIndexIndexedTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "MapIndexes", "MappedPerSec", "Count")
	return value
}

func getMapReduceIndexMappedTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "MapReduceIndexes", "MappedPerSec", "Count")
	return value
}

func getMapReduceIndexReducedTotal(stats *stats) float64 {
	value, _ := jp.GetFloat(stats.metrics, "MapReduceIndexes", "ReducedPerSec", "Count")
	return value
}

func getDatabaseDocuments(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.databaseStats, "CountOfDocuments")
	return value
}

func getDatabaseIndexes(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.databaseStats, "CountOfIndexes")
	return value
}

func getDatabaseStaleIndexes(dbStats *dbStats) float64 {
	count := 0
	jp.ArrayEach(dbStats.databaseStats, func(value []byte, dataType jp.ValueType, offset int, err error) {
		if isStale, _ := jp.GetBoolean(value, "IsStale"); isStale {
			count++
		}
	}, "Indexes")

	return float64(count)
}

func getDatabaseSize(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.databaseStats, "SizeOnDisk", "SizeInBytes")
	return value
}

func getDatabaseRequestTotal(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "Requests", "RequestsPerSec", "Count")
	return value
}

func getDatabaseDocumentPutTotal(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "Docs", "PutsPerSec", "Count")
	return value
}

func getDatabaseDocumentPutBytes(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "Docs", "BytesPutsPerSec", "Count")
	return value
}

func getDatabaseMapIndexIndexedTotal(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "MapIndexes", "IndexedPerSec", "Count")
	return value
}

func getDatabaseMapReduceIndexMappedTotal(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "MapIndexes", "MappedPerSec", "Count")
	return value
}

func getDatabaseMapReduceIndexReducedTotal(dbStats *dbStats) float64 {
	value, _ := jp.GetFloat(dbStats.metrics, "MapIndexes", "ReducedPerSec", "Count")
	return value
}

func createGauge(name string, help string) prometheus.Gauge {
	return prometheus.NewGauge(prometheus.GaugeOpts{
		Namespace: namespace,
		Subsystem: subsystem,
		Name:      name,
		Help:      help,
	})
}

func createDatabaseGaugeVec(name string, help string) *prometheus.GaugeVec {
	return prometheus.NewGaugeVec(prometheus.GaugeOpts{
		Namespace: namespace,
		Subsystem: subsystem,
		Name:      name,
		Help:      help,
	}, []string{"database"})
}

func createCounter(name string, help string) prometheus.Counter {
	return prometheus.NewCounter(prometheus.CounterOpts{
		Namespace: namespace,
		Subsystem: subsystem,
		Name:      name,
		Help:      help,
	})
}

func createDatabaseCounterVec(name string, help string) *prometheus.CounterVec {
	return prometheus.NewCounterVec(prometheus.CounterOpts{
		Namespace: namespace,
		Subsystem: subsystem,
		Name:      name,
		Help:      help,
	}, []string{"database"})
}

var timespanRegex = regexp.MustCompile(`((?P<days>\d+)\.)?(?P<hours>\d{2}):(?P<minutes>\d{2}):(?P<seconds>\d{2})(\.(?P<secondfraction>\d{7}))?`)

func timeSpanToSeconds(timespanString string) float64 {

	var result float64

	matches := matchNamedGroups(timespanRegex, timespanString)
	if daysString, ok := matches["days"]; ok {
		days, _ := strconv.Atoi(daysString)
		result = result + float64(days)*24*60*60
	}
	if hoursString, ok := matches["hours"]; ok {
		hours, _ := strconv.Atoi(hoursString)
		result = result + float64(hours)*60*60
	}
	if minutesString, ok := matches["minutes"]; ok {
		minutes, _ := strconv.Atoi(minutesString)
		result = result + float64(minutes)*60
	}
	if secondsString, ok := matches["seconds"]; ok {
		seconds, _ := strconv.Atoi(secondsString)
		result = result + float64(seconds)
	}
	if secondFractionString, ok := matches["secondfraction"]; ok {
		secondFraction, _ := strconv.Atoi(secondFractionString)
		result = result + float64(secondFraction)/10000000
	}

	return result
}

func matchNamedGroups(regex *regexp.Regexp, text string) map[string]string {
	matches := regex.FindStringSubmatch(text)

	results := make(map[string]string)
	for i, name := range regex.SubexpNames() {
		if name != "" {
			results[name] = matches[i]
		}
	}
	return results
}


text:
@article{Terry-2022-Buffalo,
    title = "Buffalo Pound Lake{---}Modelling Water Resource Management Scenarios of a Large Multi-Purpose Prairie Reservoir",
    author = "Terry, Julie  and
      Davies, John-Mark  and
      Lindenschmidt, Karl-Erich",
    journal = "Water, Volume 14, Issue 4",
    volume = "14",
    number = "4",
    year = "2022",
    publisher = "MDPI AG",
    url = "https://aclanthology.org/G22-35001",
    doi = "10.3390/w14040584",
    pages = "584",
}

repository: gwf-uwaterloo/gwf-publications

license_type: permissive

repo_name: gwf-uwaterloo/gwf-publications

branch_name: refs/heads/main

gha_language: Python

extension: bib


text:
require matchbox-panel.inc

PR ="r12"
SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz \
           file://add_hostap.patch;patch=1 \
           http://handhelds.org/~pb/mb-panel-0.9.2-polling.patch;patch=1 \
           http://handhelds.org/~pb/mb-panel-0.9.2-msgcancel.patch;patch=1 \
           file://mb-applet-battery-repaint.patch;patch=1 \
           file://mb-panel-multi-category-matching.patch;patch=1 \
           file://mb-panel-allow-disabling-menu-panel.patch;patch=1 \
	   file://system-monitor-crash-fix.patch;patch=1 "

license: MIT

branch_name: refs/heads/master

extension: bb


text:
DESCRIPTION = "Sample state-scripts that will write to psplash"
HOMEPAGE = "https://mender.io"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"

SRC_URI = " \
    file://Download_Enter_00 \
    file://ArtifactInstall_Enter_00 \
    file://ArtifactReboot_Enter_00 \
    file://mender-progressbar-mock \
"

inherit mender-state-scripts

do_install() {
    install -d ${D}/${sysconfdir}/mender/scripts/
    install -m 755 ${WORKDIR}/Download_Enter_00 ${D}/${sysconfdir}/mender/scripts/

    install -d ${D}/${bindir}
    install -m 755 ${WORKDIR}/mender-progressbar-mock ${D}/${bindir}
}

do_compile() {
    cp ${WORKDIR}/ArtifactInstall_Enter_00 ${MENDER_STATE_SCRIPTS_DIR}/
    cp ${WORKDIR}/ArtifactReboot_Enter_00 ${MENDER_STATE_SCRIPTS_DIR}/
}

repository: mirzak/meta-mender-conf-demo

repo_name: mirzak/meta-mender-conf-demo


text:
// Copyright Istio Authors
//
// 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.

package structured

import (
	"fmt"
)

// Error represents structured error information, for optional use in scope.X or log.X calls.
// It is not the same thing as structured logging. The "structured" here means adding a structure to user facing
// messages.
// See https://docs.google.com/document/d/1vdYswLQuYnrLA2fDjk6OoZx2flBABa18UjCGTn8gsg8/ for additional information.
type Error struct {
	// MoreInfo is additional information about the error e.g. a link to context describing the context for the error.
	MoreInfo string
	// Impact is the likely impact of the error on system function e.g. "Proxies are unable to communicate with Istiod."
	Impact string
	// Action is the next step the user should take e.g. "Open an issue or bug report."
	Action string
	// LikelyCause is the likely cause for the error e.g. "Software bug."
	LikelyCause string
	// Err is the original error string.
	Err error
}

// Error implements the error#Error interface.
func (e *Error) Error() string {
	if e == nil {
		return ""
	}
	return fmt.Sprintf("\tmoreInfo=%s impact=%s action=%s likelyCause=%s err=%v",
		e.MoreInfo, e.Impact, e.Action, e.LikelyCause, e.Err)
}

// NewErr creates a new copy of an Error with the content of serr and err and returns a ptr to it.
func NewErr(serr *Error, err error) *Error {
	// Make a copy so that dictionary entry is not modified.
	ne := *serr
	ne.Err = err
	return &ne
}

// Unwrap implements error unwrapping for %w verb.
func (e *Error) Unwrap() error { return e }

repository: istio/pkg

repo_name: istio/pkg

gha_language: Go

extension: go


text:
package main

import (
	"fmt"
	"io"
	"os"

	"github.com/gtank/blake2s"
)

func main() {
	if len(os.Args) != 2 {
		os.Exit(1)
	}

	f, err := os.Open(os.ExpandEnv(os.Args[1]))
	if err != nil {
		os.Exit(1)
	}
	defer f.Close()

	d, err := blake2s.NewDigest([]byte{0x0}, nil, nil, 32)
	if err != nil {
		os.Exit(1)
	}

	_, err = io.Copy(d, f)
	if err != nil {
		os.Exit(1)
	}

	_, err = fmt.Fprintf(os.Stdout, "%x", d.Sum(nil))
	if err != nil {
		os.Exit(1)
	}

	return
}


text:
@article{RN921,
 author = {Mayo, M. and Kaestli, M. and Harrington, G. and Cheng, A. C. and Ward, L. and Karp, D. and Jolly, P. and Godoy, D. and Spratt, B. G. and Currie, B. J.},
 doi = {10.3201/eid1707.100614},
 journal = {Emerging Infectious Diseases},
 number = {7},
 pages = {1283-1285},
 title = {Burkholderia pseudomallei in unchlorinated domestic bore water, tropical northern Australia},
 type = {Journal Article},
 url = {https://www.scopus.com/inward/record.uri?eid=2-s2.0-79959861251&doi=10.3201%2feid1707.100614&partnerID=40&md5=b6039b2eecc42a4b0031c0c19832dce5
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3381386/pdf/10-0614_finalD.pdf},
 volume = {17},
 year = {2011}
}


text:
SUMMARY = "The sd-bus library, extracted from systemd."
HOMEPAGE = "https://sr.ht/~emersion/basu"
SECTION = "base"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"

SRC_URI = "git://git.sr.ht/~emersion/basu;protocol=https;branch=master"

DEPENDS += "gperf-native"

S = "${WORKDIR}/git"
PV = "0.2.1"
SRCREV = "684a41d68cfbb05e38aacb60a8548e21ddfbecdb"

inherit meson pkgconfig

PACKAGECONFIG ?= ""
PACKAGECONFIG[libcap] = "-Dlibcap=enabled,-Dlibcap=disabled,libcap"
PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit"

EXTRA_OEMESON += "--buildtype release"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded

gha_license_id: MIT

gha_language: BitBake


text:
@InProceedings{izbicki13,
  pdf = {http://jmlr.org/proceedings/papers/v28/izbicki13.pdf},
  supplementary = {Supplementary:izbicki13-supp.pdf},
  number = {3},
  section = {cycle-3},
  title = {Algebraic classifiers: a generic approach to fast cross-validation, online training, and parallel training},
  author = {Izbicki, Michael},
  pages = {648-656},
  abstract = {We use abstract algebra to derive new algorithms for fast cross-validation, online learning, and parallel learning.  To use these algorithms on a classification model, we must show that the model has appropriate algebraic structure.  It is easy to give algebraic structure to some models, and we do this explicitly for Bayesian classifiers and a novel variation of decision stumps called HomStumps.  But not all classifiers have an obvious structure, so we introduce the Free HomTrainer.  This can be used to give a ``generic'' algebraic structure to any classifier.  We use the Free HomTrainer to give algebraic structure to bagging and boosting.  In so doing, we derive novel online and parallel algorithms, and present the first fast cross-validation schemes for these classifiers.},
}

repository: mreid/papersite

repo_name: mreid/papersite

gha_language: TeX


text:
require swt3.4-gtk_${PV}.bb

PR = "r1"

DEPENDS += "libhildon libhildonfm"

SRC_URI += "file://swt-hildon.patch"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/scionproto/scion/go/cs/keepalive (interfaces: IfStatePusher,RevDropper)

// Package mock_keepalive is a generated GoMock package.
package mock_keepalive

import (
	context "context"
	gomock "github.com/golang/mock/gomock"
	addr "github.com/scionproto/scion/go/lib/addr"
	common "github.com/scionproto/scion/go/lib/common"
	reflect "reflect"
)

// MockIfStatePusher is a mock of IfStatePusher interface
type MockIfStatePusher struct {
	ctrl     *gomock.Controller
	recorder *MockIfStatePusherMockRecorder
}

// MockIfStatePusherMockRecorder is the mock recorder for MockIfStatePusher
type MockIfStatePusherMockRecorder struct {
	mock *MockIfStatePusher
}

// NewMockIfStatePusher creates a new mock instance
func NewMockIfStatePusher(ctrl *gomock.Controller) *MockIfStatePusher {
	mock := &MockIfStatePusher{ctrl: ctrl}
	mock.recorder = &MockIfStatePusherMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockIfStatePusher) EXPECT() *MockIfStatePusherMockRecorder {
	return m.recorder
}

// Push mocks base method
func (m *MockIfStatePusher) Push(arg0 context.Context, arg1 common.IFIDType) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Push", arg0, arg1)
}

// Push indicates an expected call of Push
func (mr *MockIfStatePusherMockRecorder) Push(arg0, arg1 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Push", reflect.TypeOf((*MockIfStatePusher)(nil).Push), arg0, arg1)
}

// MockRevDropper is a mock of RevDropper interface
type MockRevDropper struct {
	ctrl     *gomock.Controller
	recorder *MockRevDropperMockRecorder
}

// MockRevDropperMockRecorder is the mock recorder for MockRevDropper
type MockRevDropperMockRecorder struct {
	mock *MockRevDropper
}

// NewMockRevDropper creates a new mock instance
func NewMockRevDropper(ctrl *gomock.Controller) *MockRevDropper {
	mock := &MockRevDropper{ctrl: ctrl}
	mock.recorder = &MockRevDropperMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockRevDropper) EXPECT() *MockRevDropperMockRecorder {
	return m.recorder
}

// DeleteRevocation mocks base method
func (m *MockRevDropper) DeleteRevocation(arg0 context.Context, arg1 addr.IA, arg2 common.IFIDType) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteRevocation", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteRevocation indicates an expected call of DeleteRevocation
func (mr *MockRevDropperMockRecorder) DeleteRevocation(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRevocation", reflect.TypeOf((*MockRevDropper)(nil).DeleteRevocation), arg0, arg1, arg2)
}

repository: xingyang-liu/scion

repo_name: xingyang-liu/scion


text:
%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/

%% Created for cismay at 2016-07-29 15:18:38 -0500

%% Saved with string encoding Unicode (UTF-8)

@book{handson2014,
	Author = {Garrett Grolemund},
	Publisher = {O'Reilly},
	Title = {Hands-On Programming with R},
	Year = {2014}}

@book{1,
    title = {Getting used to R, {RStudio}, and R Markdown},
    author = {Chester Ismay},
    year = {2016},
    url = {http://ismayc.github.io/rbasics-book}
}

repository: ismayc/chemistr-book

repo_name: ismayc/chemistr-book


text:
SUMMARY = "ssh-add helper that uses kwallet and kpassworddialog"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = " \
    file://LICENSES/GPL-2.0-or-later.txt;md5=9e2385fe012386d34dcc5c9863070881 \
"

inherit kde-plasma gettext

DEPENDS += " \
    kcoreaddons-native kcoreaddons \
    kdoctools-native kdoctools \
    ki18n \
    kwallet \
    kwidgetsaddons \
"

PV = "${PLASMA_VERSION}"
SRC_URI[sha256sum] = "057d1e62ffe325dc01b4dc2453eb9775c7731fcb76bfb13365a05a7c4f4df085"


text:
# Compiler flags to be shared by all base, VTK and standalone targets

if (NOT MSVC) # GCC and Clang

  # warning flags
  list(APPEND TTK_COMPILER_FLAGS
    -Wall
    -Wextra
    -Wtype-limits
    -Wshadow
    -Wvla
    -Wcast-qual
    -Wmissing-declarations
    -Wundef
    )

  # performance and debug flags
  if(TTK_ENABLE_CPU_OPTIMIZATION AND CMAKE_BUILD_TYPE MATCHES Release)
    if (CMAKE_OSX_ARCHITECTURES MATCHES arm64) # Apple Silicon
      list(APPEND TTK_COMPILER_FLAGS -mcpu=apple-m1 -Wfatal-errors)
    else()
    # -O3 already enabled by CMake's Release configuration
      list(APPEND TTK_COMPILER_FLAGS -march=native -Wfatal-errors)
    endif()
  endif()

  if(CMAKE_BUILD_TYPE MATCHES Debug)
    list(APPEND TTK_COMPILER_FLAGS -O0 -g -pg)
  endif()

  # hardened linker flags for Clang and GCC
  if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
    list(APPEND TTK_LINKER_FLAGS
      -Wl,--as-needed
      -Wl,--no-undefined
      )
  endif()

elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
  # clang-cl on Windows
  # c.f. https://stackoverflow.com/questions/50857779/cmake-detects-clang-cl-as-clang

  # warning flags
  list(APPEND TTK_COMPILER_FLAGS -Wno-unused-parameter)

else() # MSVC

  # warning flags
  list(APPEND TTK_COMPILER_FLAGS /W4)

  # disabled warnings
  list(APPEND TTK_COMPILER_FLAGS /bigobj /wd4005 /wd4061 /wd4100
  /wd4146 /wd4221 /wd4242 /wd4244 /wd4245 /wd4263 /wd4264 /wd4267
  /wd4273 /wd4275 /wd4296 /wd4305 /wd4365 /wd4371 /wd4435 /wd4456
  /wd4457 /wd4514 /wd4619 /wd4625 /wd4626 /wd4628 /wd4668 /wd4701
  /wd4702 /wd4710 /wd4800 /wd4820 /wd4996 /wd5027 /wd5029 /wd5031)

endif()

repository: topology-tool-kit/ttk

repo_name: topology-tool-kit/ttk

branch_name: refs/heads/dev

gha_license_id: NOASSERTION

extension: cmake


text:
LICENSE = "GPLv2"
HOMEPAGE = "http://www.gpleda.org/"
FILES_${PN} += "${datadir}/gEDA ${datadir}/icons"
PR = "r1"

DEPENDS = "gtk+ libgeda"

SRC_URI = "http://geda.seul.org/release/v1.4/${PV}/${P}.tar.gz"

inherit autotools pkgconfig

SRC_URI[md5sum] = "764613c24a752281a4f5d5432e53d0d2"
SRC_URI[sha256sum] = "e6d9517eaea4383e724502c607d720a3cd4bf560459f5f2196e19d0c5bb3da2c"


text:
SECTION = "network/misc"
DESCRIPTION = "IMCP query generator"
SRC_URI = "file://icmpquery.c \
	   file://Makefile"
PV = "1.03"

DEFAULT_PREFERENCE="-1"

S = "${WORKDIR}"
LICENSE = "GPL"
do_compile() {
	oe_runmake icmpquery
}

do_install() {
	install -d ${D}${bindir}
	install -m 0755 icmpquery ${D}${bindir}/
}


text:
// Copyright (C) 2018 Google Inc.
//
// 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.

package validate

import (
	"context"
	"fmt"
	"math"
	"sort"
	"strings"

	"github.com/google/gapid/core/log"
	"github.com/google/gapid/gapis/perfetto"
	perfetto_service "github.com/google/gapid/gapis/perfetto/service"
	"github.com/google/gapid/gapis/service"
)

const (
	counterIdQuery     = "select id from gpu_counter_track where name = '%v'"
	counterValuesQuery = "" +
		"select value from counter " +
		"where track_id = %v order by ts " +
		"limit %v offset 10"
	trackIDQuery           = "select id from gpu_track where scope = '%v'"
	renderStageTrackScope  = "gpu_render_stage"
	vulkanEventsTrackScope = "vulkan_events"
	renderStageSlicesQuery = "" +
		"select name, command_buffer, submission_id " +
		"from gpu_slice " +
		"where track_id = %v " +
		"order by id"
	vulkanEventSlicesQuery = "" +
		"select name, submission_id " +
		"from gpu_slice " +
		"where track_id = %v " +
		"order by id"
	sampleCounter = 100
)

type Scope string

// Checker is a function that checks the validity of the values of the given result set column.
type Checker func(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool

// GpuCounter represents a GPU counter for which the profiling data is validated.
type GpuCounter struct {
	Id    uint32
	Name  string
	Check Checker
}

// Validator is an interface implemented by the various hardware specific validators.
type Validator interface {
	Validate(ctx context.Context, processor *perfetto.Processor) error
	GetCounters() []GpuCounter
	GetType() service.DeviceValidationResult_ValidatorType
}

// And returns a checker that is only valid if all of its arguments are.
func And(cs ...Checker) Checker {
	return func(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool {
		for _, c := range cs {
			if !c(column, columnType) {
				return false
			}
		}
		return true
	}
}

// Not returns a checker that returns the inverse of the given checker.
func Not(c Checker) Checker {
	return func(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool {
		return !c(column, columnType)
	}
}

// IsNumber is a checker that checks that the column is a number type.
func IsNumber(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool {
	if columnType != perfetto_service.QueryResult_ColumnDesc_LONG && columnType != perfetto_service.QueryResult_ColumnDesc_DOUBLE {
		return false
	}
	return true
}

func ForeachValue(check func(float64) bool) Checker {
	return func(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool {
		longValues := column.GetLongValues()
		doubleValues := column.GetDoubleValues()
		for i := 0; i < sampleCounter; i++ {
			if columnType == perfetto_service.QueryResult_ColumnDesc_LONG {
				if !check(float64(longValues[i])) {
					return false
				}
			} else if columnType == perfetto_service.QueryResult_ColumnDesc_DOUBLE {
				if !check(doubleValues[i]) {
					return false
				}
			}
		}
		return true
	}
}

// Average returns a checker that checks whether the average values meets the condition
func Average(check func(float64) bool) Checker {
	return func(column *perfetto_service.QueryResult_ColumnValues, columnType perfetto_service.QueryResult_ColumnDesc_Type) bool {
		longValues := column.GetLongValues()
		doubleValues := column.GetDoubleValues()
		total := float64(0.0)
		for i := 0; i < sampleCounter; i++ {
			if columnType == perfetto_service.QueryResult_ColumnDesc_LONG {
				total += float64(longValues[i])
			} else if columnType == perfetto_service.QueryResult_ColumnDesc_DOUBLE {
				total += doubleValues[i]
			}
		}
		return check(total / sampleCounter)
	}
}

// CheckLargerThanZero is a checker that checks that the values are all greater than zero.
func CheckLargerThanZero() Checker {
	return ForeachValue(func(v float64) bool {
		return v > 0.0
	})
}

// CheckNonNegative is a checker that checks that no value is less than zero.
func CheckNonNegative() Checker {
	return ForeachValue(func(v float64) bool {
		return v >= 0.0
	})
}

// CheckAllEqualTo returns a checker that checks that all returned value equal the given value.
func CheckAllEqualTo(num float64) Checker {
	return ForeachValue(func(v float64) bool {
		return v == num
	})
}

// CheckAverageApproximateTo checks whether the average of the values is within
// a margin of the given value.
func CheckAverageApproximateTo(num, margin float64) Checker {
	return Average(func(v float64) bool {
		return math.Abs(num-v) <= margin
	})
}

// ValidateGpuCounters queries for the GPU counter from the trace and
// validates the value based on the associated check,
// up to the amount specified in passThreshold.
func ValidateGpuCounters(ctx context.Context, processor *perfetto.Processor, counters []GpuCounter, passThreshold int) error {
	passCount := 0
	var failedCounters []GpuCounter
	var missingCounters []GpuCounter
	counters = trimDuplicates(counters)
	if passThreshold > len(counters) {
		log.E(ctx, "Received passThreshold (%v) higher than amount of counters (%v)", passThreshold, len(counters))
		passThreshold = len(counters)
	}

	for _, counter := range counters {
		// Converts counter name to track table ID.
		counterIdResult, err := processor.Query(fmt.Sprintf(counterIdQuery, counter.Name))
		if err != nil {
			return log.Errf(ctx, err, "Failed to query with %v", fmt.Sprintf(counterIdQuery, counter.Name))
		}

		// Ensure that there's one track table ID for the current counter.
		counterIdValues := counterIdResult.GetColumns()[0].GetLongValues()
		if len(counterIdValues) == 0 {
			log.E(ctx, "Trace does not contain expected counter %v", counter)
			missingCounters = append(missingCounters, counter)
			continue
		} else if len(counterIdValues) != 1 {
			// We should never run into situation where there are more than 1 results.
			return log.Errf(ctx, nil, "Found unexpected %v results for counter %v", len(counterIdValues), counter)
		}
		trackTableId := counterIdValues[0]

		valueQueryResult, err := processor.Query(fmt.Sprintf(counterValuesQuery, trackTableId, sampleCounter))
		if err != nil {
			return log.Errf(ctx, err, "Failed to query with %v for counter %v", fmt.Sprintf(counterValuesQuery, trackTableId), counter)
		}

		// Query exactly #sampleCounter samples, fail if not enough samples
		if valueQueryResult.GetNumRecords() != sampleCounter {
			log.E(ctx, "Expected %v number of samples for counter %v but got: %v", sampleCounter, counter, valueQueryResult.GetNumRecords())
			failedCounters = append(failedCounters, counter)
			continue
		}

		if counter.Check(valueQueryResult.GetColumns()[0], valueQueryResult.GetColumnDescriptors()[0].GetType()) {
			passCount++
			if passCount >= passThreshold {
				return nil
			}
		} else {
			failedCounters = append(failedCounters, counter)
		}
	}

	var sb strings.Builder
	sb.WriteString(fmt.Sprintf("Passed %v checks out of %v, expected to pass %v check(s). ", passCount, len(counters), passThreshold))

	if len(missingCounters) > 0 {
		sb.WriteString(fmt.Sprintf("Missing %v counter(s): %v\n", len(missingCounters), missingCounters))
	}
	if len(failedCounters) > 0 {
		sb.WriteString(fmt.Sprintf("Failed check for %v counter(s): %v", len(failedCounters), failedCounters))
	}

	return log.Errf(ctx, nil, sb.String())
}

// trimDuplicates removes duplicates from the GPU counter array.
func trimDuplicates(counters []GpuCounter) []GpuCounter {
	duplicateMap := make(map[int]GpuCounter)
	res := make([]GpuCounter, 0)
	for _, counter := range counters {
		duplicateMap[int(counter.Id)] = counter
	}

	// Sort the ids to retrieve from the map.
	ids := make([]int, 0, len(res))
	for id := range duplicateMap {
		ids = append(ids, id)
	}
	sort.Ints(ids)

	for _, id := range ids {
		res = append(res, duplicateMap[id])
	}

	return res
}

// GetTrackIDs returns all track ids from gpu_track with the given scope.
func GetTrackIDs(ctx context.Context, s Scope, processor *perfetto.Processor) ([]int64, error) {
	queryResult, err := processor.Query(fmt.Sprintf(trackIDQuery, s))
	if err != nil || queryResult.GetNumRecords() <= 0 {
		return []int64{}, log.Errf(ctx, err, "Failed to query track ids with scope: %v", s)
	}
	result := make([]int64, queryResult.GetNumRecords())
	for i, v := range queryResult.GetColumns()[0].GetLongValues() {
		result[i] = v
	}
	return result, nil
}

// ValidateGpuSlices validates vulkan events and its associated render stage events, then
// returns nil if all validation passes.
func ValidateGpuSlices(ctx context.Context, processor *perfetto.Processor) error {
	tIds, err := GetTrackIDs(ctx, vulkanEventsTrackScope, processor)
	if err != nil {
		return err
	}

	// Use a map in place of a set to keep track of all the valid submission IDs from
	// the vulkan_events track. This is used to screen gpu_slices in the gpu_render_stage
	// tracks that could originate from elsewhere (not our sample app).
	trackedSubmissionIds := make(map[int64]bool)

	for _, tId := range tIds {
		queryResult, err := processor.Query(fmt.Sprintf(vulkanEventSlicesQuery, tId))
		if err != nil || queryResult.GetNumRecords() <= 0 {
			return log.Errf(ctx, err, "Failed to query with %v", fmt.Sprintf(vulkanEventSlicesQuery, tId))
		}
		columns := queryResult.GetColumns()
		numRecords := queryResult.GetNumRecords()
		names := columns[0].GetStringValues()
		submissionIds := columns[1].GetLongValues()
		if numRecords == 0 {
			return log.Err(ctx, nil, "No GPU activity slices")
		}
		for i := uint64(0); i < numRecords; i++ {
			if names[i] == "vkQueueSubmit" && submissionIds[i] == 0 {
				return log.Errf(ctx, nil, "Vulkan event slice %v has null submission id", names[i])
			}
			trackedSubmissionIds[submissionIds[i]] = false
		}
	}

	invalidGpuSlices := make(map[int64]string)
	tIds, err = GetTrackIDs(ctx, renderStageTrackScope, processor)
	if err != nil {
		return err
	}

	for _, tId := range tIds {
		queryResult, err := processor.Query(fmt.Sprintf(renderStageSlicesQuery, tId))
		if err != nil {
			return log.Errf(ctx, err, "Failed to query with %v", fmt.Sprintf(renderStageSlicesQuery, tId))
		}
		numRecords := queryResult.GetNumRecords()
		if numRecords == 0 {
			log.W(ctx, "No GPU activity slices found in GPU track: %v", tId)
			continue
		}
		columns := queryResult.GetColumns()
		names := columns[0].GetStringValues()
		commandBuffers := columns[1].GetLongValues()
		submissionIds := columns[2].GetLongValues()
		for i := uint64(0); i < numRecords; i++ {
			if submissionIds[i] == 0 {
				return log.Errf(ctx, nil, "GPU activity slice %v has null submission id", names[i])
			}

			// Only check for GPU slices that originate from our sample app (has the same
			// submission ID as ones from the vulkan_events track).
			if _, ok := trackedSubmissionIds[submissionIds[i]]; !ok {
				continue
			}

			// Submission IDs between different apps are not guaranteed to be unique. invalidGpuSlices
			// is used to keep track of which ones were never verified.

			// Keep track of slices that are invalid that had not previously passed the check (in case we
			// run to the slice from our sample app then a slice from another app with the same ID).
			if commandBuffers[i] == 0 && !trackedSubmissionIds[submissionIds[i]] {
				invalidGpuSlices[submissionIds[i]] = names[i]
				continue
			}

			trackedSubmissionIds[submissionIds[i]] = true

			// If we previously mark this slice as invalid, remove it from the list.
			if _, ok := invalidGpuSlices[submissionIds[i]]; ok {
				delete(invalidGpuSlices, submissionIds[i])
			}
		}
	}

	if len(invalidGpuSlices) > 0 {
		var builder strings.Builder
		for id, name := range invalidGpuSlices {
			fmt.Fprintf(&builder, "%v (%v), ", name, id)
		}
		return log.Errf(ctx, nil, "GPU activity slice %v has null command buffer", builder.String())
	}

	return nil
}

repository: google/agi

repo_name: google/agi


text:
/*
Package cli provides a structure for multiple CLI arguments and their options,
flags and additional data.

Types that implement the Renderer interface should return text output formatted
for your targeted terminal interface (xterm, rxvt, dumb, etc.).
*/
package cli

/*
Renderer implements a Render method for a Type to generate CLI output
*/
type Renderer interface {
	Render(data, options map[string]string) string
}

repository: mkenney/docker-tools

repo_name: mkenney/docker-tools


text:
Id	Node1	Node2	Weight	Random
MIN_VAL	NA	NA	0	0
MAX_VAL	NA	NA	1	10
USE_AS	S	E	W	D
1	0	23	0.146589	7
2	0	35	0.066431	4
3	0	87	0.33681	4
4	0	88	0.000557	8
5	0	186	0.06018	0
6	0	260	0.332602	3
7	1	87	0.406009	9
8	1	239	0.065993	6
9	2	274	0.288569	3
10	4	23	0.141653	7
11	4	98	0.093946	1
12	4	99	0.323051	3
13	4	177	0.063628	0
14	4	260	0.788408	4
15	5	75	0.141847	5
16	5	273	0.287947	1
17	6	48	0.056605	9
18	6	108	0.107466	0
19	6	110	0.065213	9
20	6	111	0.211	4
21	6	112	0.128581	4
22	6	114	0.054388	9
23	6	202	0.484475	2
24	6	241	0.040222	8
25	6	260	0.25654	3
26	6	263	0.176878	6
27	7	79	0.007091	2
28	7	88	0.402468	1
29	7	214	0.039407	8
30	7	273	0.023072	6
31	10	87	0.070894	9
32	10	231	0.032356	7
33	11	23	0.049297	10
34	11	104	0.176986	6
35	11	107	0.040987	10
36	11	111	0.050006	10
37	11	136	0.04962	4
38	11	227	0.518693	8
39	11	260	0.241558	1
40	11	274	0.464925	0
41	12	23	0.009956	8
42	12	26	0.066797	6
43	12	35	0.327134	0
44	12	51	0.018164	1
45	12	59	0.01595	1
46	12	109	0.098403	3
47	12	152	0.027496	9
48	12	230	0.059219	0
49	12	231	0.016504	1
50	17	49	0.213095	7
51	17	216	0.003177	8
52	20	88	0.027327	10
53	21	35	0.173947	7
54	22	58	0.071106	0
55	22	78	0.038663	1
56	22	93	0.051395	6
57	22	110	0.191027	5
58	22	112	0.392187	5
59	22	211	0.172707	6
60	22	214	0.014685	6
61	22	216	0.005722	10
62	23	0	0.146589	7
63	23	4	0.141653	10
64	23	11	0.049297	10
65	23	12	0.009956	4
66	23	56	0.209949	7
67	23	65	0.09726	4
68	23	75	0.225467	5
69	23	80	0.022033	1
70	23	88	0.053308	5
71	23	93	0.691274	7
72	23	104	0.042784	4
73	23	107	0.038381	9
74	23	110	0.196916	4
75	23	111	0.31916	8
76	23	112	0.350886	4
77	23	115	0.008833	2
78	23	134	0.065374	2
79	23	144	0.075198	7
80	23	162	0.026145	2
81	23	166	0.82152	1
82	23	169	0.068695	10
83	23	180	0.296541	7
84	23	201	0.00984	0
85	23	207	0.202642	0
86	23	211	0.020472	4
87	23	229	0.132701	10
88	23	232	0.113908	7
89	23	236	0.343215	3
90	25	169	0.00313	7
91	26	12	0.066797	0
92	26	93	0.526503	2
93	26	94	0.034278	6
94	26	111	0.063661	5
95	26	112	0.044597	6
96	26	134	0.127073	2
97	26	144	0.060661	7
98	26	152	0.320013	9
99	26	162	0.057428	5
100	26	166	0.45732	2
101	26	169	0.130209	10
102	26	180	0.066379	6
103	28	111	0.431858	7
104	28	169	0.255078	7
105	33	78	0.114791	4
106	33	87	0.092331	9
107	33	110	0.146907	7
108	33	112	0.18666	10
109	33	138	0.011434	0
110	33	175	0.282384	9
111	33	180	0.042235	2
112	33	186	0.161144	3
113	33	216	0.099006	7
114	33	229	0.239959	10
115	33	264	0.154987	6
116	34	49	0.105858	0
117	34	50	0.205382	7
118	34	211	0.060867	8
119	35	0	0.066431	4
120	35	12	0.327134	8
121	35	21	0.173947	10
122	35	42	0.119548	4
123	35	60	0.287314	0
124	35	87	0.081198	8
125	35	88	0.759541	3
126	35	90	0.056108	6
127	35	91	0.646744	3
128	35	110	0.054797	6
129	35	111	0.587594	7
130	35	112	0.240612	1
131	35	115	0.269966	0
132	35	124	0.342781	5
133	35	127	0.480239	4
134	35	134	0.089311	5
135	35	135	0.061178	1
136	35	136	0.093484	5
137	35	142	0.614222	4
138	35	144	0.135839	4
139	35	145	0.16339	4
140	35	147	0.543562	2
141	35	153	0.172303	5
142	35	157	0.136467	4
143	35	162	0.69359	9
144	35	166	0.138425	4
145	35	169	0.616765	9
146	35	213	0.09131	2
147	35	214	0.111661	1
148	35	216	0.238797	7
149	35	227	0.091869	9
150	35	233	0.124462	9
151	35	237	0.05099	0
152	35	241	0.223331	1
153	36	93	0.057486	8
154	36	111	0.032406	1
155	36	166	0.158331	1
156	40	42	0.08178	1
157	40	60	0.029597	4
158	40	88	0.554922	5
159	40	111	0.333443	1
160	40	112	0.250071	8
161	40	115	0.142409	1
162	40	142	0.296577	5
163	40	144	0.312317	10
164	40	145	0.234351	7
165	40	147	0.355861	3
166	40	162	0.191312	5
167	40	166	0.265145	9
168	40	169	0.490053	5
169	40	213	0.022132	7
170	40	237	0.024297	2
171	40	241	0.024949	7
172	41	65	0.102526	2
173	41	166	0.211396	6
174	42	35	0.119548	8
175	42	40	0.08178	6
176	42	48	0.139329	10
177	42	88	0.203741	5
178	42	94	0.011569	10
179	42	263	0.031	4
180	44	93	0.123899	4
181	44	144	0.385004	1
182	44	152	0.011218	0
183	44	160	0.082872	1
184	44	162	0.051791	3
185	44	166	0.744062	8
186	44	260	0.165978	1
187	47	169	0.0033	5
188	48	6	0.056605	5
189	48	42	0.139329	1
190	48	88	0.07001	0
191	48	111	0.192767	3
192	48	115	0.046852	5
193	48	116	0.001173	8
194	48	124	0.429091	3
195	48	127	0.007311	1
196	48	142	0.057634	9
197	48	147	0.019509	1
198	48	169	0.431875	7
199	48	271	0.045034	6
200	49	17	0.213095	0
201	49	34	0.105858	9
202	49	50	0.094466	0
203	49	109	0.193112	9
204	49	115	0.099709	1
205	49	124	0.134881	5
206	49	127	0.180275	9
207	49	134	0.046003	8
208	49	160	0.201405	4
209	50	34	0.205382	6
210	50	49	0.094466	4
211	50	72	0.076195	7
212	51	12	0.018164	9
213	51	87	0.20132	6
214	51	88	0.172287	9
215	51	89	0.009218	0
216	51	91	0.014166	8
217	51	94	0.097383	10
218	51	135	0.198551	10
219	51	142	0.153835	9
220	51	144	0.060361	4
221	51	145	0.30802	8
222	51	162	0.055415	9
223	51	169	0.199864	5
224	51	202	0.334228	1
225	51	252	0.161357	0
226	52	88	0.670677	9
227	52	111	0.02036	8
228	52	124	0.111249	6
229	52	144	0.140927	9
230	52	145	0.098439	6
231	52	169	0.254807	9
232	53	260	0.285545	9
233	54	93	0.140688	1
234	54	112	0.129778	6
235	54	160	0.161213	8
236	54	166	0.335962	2
237	56	23	0.209949	6
238	56	93	0.470684	5
239	56	260	0.264303	1
240	57	144	0.17852	8
241	57	160	0.10602	0
242	57	166	0.048105	5
243	57	260	0.798362	6
244	58	22	0.071106	8
245	58	65	0.133527	7
246	58	72	0.223257	8
247	58	116	0.523282	10
248	58	190	0.475397	5
249	58	231	0.122879	5
250	58	275	0.415346	3
251	58	278	0.00273	0
252	58	279	0.068568	3
253	59	12	0.01595	9
254	59	87	0.317342	2
255	59	88	0.109021	0
256	59	89	0.020354	6
257	59	91	0.048209	8
258	59	94	0.004556	9
259	59	111	0.053112	10
260	59	135	0.283589	7
261	59	145	0.036807	6
262	59	162	0.031552	0
263	59	169	0.061381	5
264	59	202	0.425513	1
265	59	223	0.001695	3
266	59	225	0.07599	3
267	59	231	0.023728	5
268	59	241	0.008804	0
269	59	252	0.012033	6
270	59	274	0.105252	2
271	60	35	0.287314	5
272	60	40	0.029597	9
273	60	88	0.084383	9
274	60	121	0.128516	0
275	60	144	0.088483	7
276	60	145	0.026511	4
277	60	202	0.068573	2
278	60	215	0.240565	1
279	60	216	0.250628	6
280	61	144	0.032731	0
281	61	166	0.206994	2
282	62	88	0.132814	3
283	62	109	0.055876	9
284	62	110	0.135118	3
285	62	111	0.000139	7
286	62	112	0.245482	2
287	62	121	0.5668	8
288	62	144	0.518988	2
289	62	145	0.274738	9
290	62	169	0.467138	6
291	62	214	0.07991	6
292	62	215	0.622467	5
293	62	216	0.398632	9
294	63	112	0.092935	8
295	63	166	0.087959	6
296	63	260	0.350842	2
297	64	186	0.158188	7
298	64	260	0.556609	6
299	65	23	0.09726	2
300	65	41	0.102526	2
301	65	58	0.133527	6
302	65	110	0.002946	6
303	65	112	0.084333	4
304	65	144	0.002359	3
305	65	175	0.135795	4
306	65	186	0.577847	6
307	65	211	0.045137	7
308	65	214	0.056517	0
309	65	260	0.03132	2
310	67	260	0.046494	8
311	68	144	0.124556	0
312	68	160	0.14009	4
313	68	166	0.403474	6
314	68	260	0.395409	6
315	69	93	0.404989	5
316	69	160	0.092613	0
317	70	86	0.099185	3
318	70	87	0.093121	10
319	70	88	0.70546	10
320	70	91	0.052725	5
321	70	94	0.099173	9
322	70	169	0.024556	6
323	70	250	0.069916	4
324	72	50	0.076195	2
325	72	58	0.223257	4
326	72	93	0.20441	9
327	72	110	0.168682	0
328	72	112	0.175289	6
329	72	211	0.033254	1
330	73	144	0.156718	1
331	73	160	0.025013	10
332	73	161	0.081128	5
333	75	5	0.141847	5
334	75	23	0.225467	6
335	75	98	0.193879	3
336	75	99	0.575675	1
337	75	125	0.127181	0
338	75	175	0.040139	9
339	75	177	0.41421	8
340	75	201	0.14133	0
341	75	225	0.07426	5
342	75	260	0.986022	7
343	75	274	0.375113	6
344	76	260	0.284078	7
345	76	273	0.454281	2
346	78	22	0.038663	3
347	78	33	0.114791	7
348	78	93	0.142728	9
349	78	112	0.002951	3
350	78	144	0.029806	2
351	78	152	0.014207	10
352	78	160	0.333253	10
353	78	166	0.167012	3
354	79	7	0.007091	9
355	79	87	0.049212	4
356	79	144	0.785063	1
357	79	145	0.150452	7
358	79	146	0.08351	7
359	79	153	0.313467	8
360	79	163	0.041948	5
361	79	166	0.295085	8
362	79	167	0.029486	6
363	79	169	0.030512	9
364	79	252	0.276853	4
365	80	23	0.022033	1
366	80	93	0.205198	1
367	80	104	0.211587	3
368	80	107	0.040139	7
369	80	110	0.450197	4
370	80	111	0.092819	3
371	80	112	0.497	9
372	80	180	0.011328	6
373	80	216	0.102231	8
374	80	218	0.076403	2
375	80	229	0.443862	6
376	80	240	0.078413	8
377	80	260	0.134201	7
378	80	273	0.180243	8
379	81	202	0.219734	3
380	81	241	0.003647	9
381	81	274	0.306654	8
382	84	274	0.147219	9
383	85	144	0.381141	5
384	85	166	0.702676	6
385	85	169	0.078235	9
386	86	70	0.099185	3
387	86	112	0.33009	1
388	86	133	0.329085	7
389	86	134	0.224142	1
390	86	144	0.278431	2
391	86	145	0.078406	7
392	86	152	0.132683	4
393	86	160	0.091552	5
394	86	169	0.295551	6
395	86	193	0.208738	7
396	87	0	0.33681	10
397	87	1	0.406009	5
398	87	10	0.070894	5
399	87	33	0.092331	4
400	87	35	0.081198	10
401	87	51	0.20132	9
402	87	59	0.317342	4
403	87	70	0.093121	7
404	87	79	0.049212	2
405	87	115	0.059064	5
406	87	122	0.03308	1
407	87	127	0.029485	7
408	87	152	0.515296	0
409	87	157	0.26029	0
410	87	160	0.950496	5
411	87	161	0.000676	1
412	87	165	0.029721	8
413	87	172	0.423796	6
414	87	178	0.450988	0
415	87	240	0.002191	3
416	87	252	0.136665	2
417	87	253	0.171716	5
418	88	0	0.000557	10
419	88	7	0.402468	6
420	88	20	0.027327	5
421	88	23	0.053308	6
422	88	35	0.759541	4
423	88	40	0.554922	6
424	88	42	0.203741	1
425	88	48	0.07001	3
426	88	51	0.172287	7
427	88	52	0.670677	7
428	88	59	0.109021	9
429	88	60	0.084383	8
430	88	62	0.132814	0
431	88	70	0.70546	3
432	88	148	0.026925	5
433	88	152	0.397984	0
434	88	153	0.304784	9
435	88	160	0.743859	5
436	88	167	0.069426	9
437	88	170	0.090919	4
438	88	184	0.231418	5
439	88	230	0.183342	3
440	88	252	0.327739	5
441	88	263	0.019421	8
442	89	51	0.009218	3
443	89	59	0.020354	5
444	89	160	0.196506	7
445	90	35	0.056108	7
446	91	35	0.646744	0
447	91	51	0.014166	4
448	91	59	0.048209	4
449	91	70	0.052725	5
450	91	126	0.162496	2
451	91	160	0.189766	4
452	91	184	0.317388	3
453	91	228	0.010944	8
454	91	241	0.030086	3
455	91	274	0.010913	10
456	93	22	0.051395	1
457	93	23	0.691274	6
458	93	26	0.526503	9
459	93	36	0.057486	7
460	93	44	0.123899	4
461	93	54	0.140688	1
462	93	56	0.470684	3
463	93	69	0.404989	0
464	93	72	0.20441	2
465	93	78	0.142728	1
466	93	80	0.205198	5
467	93	99	0.039732	8
468	93	131	0.049617	10
469	93	136	0.055749	0
470	93	138	0.119016	9
471	93	180	0.29526	0
472	93	184	0.040894	4
473	93	190	0.110374	4
474	93	207	0.378234	3
475	93	209	0.085409	6
476	93	218	0.213093	1
477	93	226	0.965023	9
478	93	229	0.017348	6
479	93	231	0.987039	7
480	93	240	0.109921	7
481	93	241	0.346829	3
482	93	260	0.397687	3
483	93	269	0.202594	4
484	93	273	0.419599	8
485	93	274	0.345646	3
486	93	275	0.096493	7
487	93	276	0.01545	5
488	94	26	0.034278	9
489	94	42	0.011569	4
490	94	51	0.097383	4
491	94	59	0.004556	8
492	94	70	0.099173	8
493	94	152	0.199087	10
494	94	153	0.059254	8
495	94	237	0.143175	3
496	95	250	0.181254	4
497	96	107	0.015335	6
498	96	124	0.184125	1
499	96	145	0.12779	10
500	96	169	0.662637	2
501	96	180	0.303007	10
502	96	265	0.7134	8
503	96	267	0.00236	10
504	96	274	0.209858	1
505	98	4	0.093946	4
506	98	75	0.193879	10
507	98	144	0.140098	2
508	98	264	0.202043	6
509	98	273	0.185422	2
510	99	4	0.323051	0
511	99	75	0.575675	7
512	99	93	0.039732	9
513	99	107	0.003074	5
514	99	111	0.163223	1
515	99	112	0.008206	2
516	99	131	0.044935	9
517	99	144	0.039574	0
518	99	166	0.109605	2
519	99	180	0.203843	0
520	99	229	0.305443	6
521	99	264	0.508328	2
522	99	265	0.023338	10
523	99	273	0.82333	3
524	99	274	0.198405	0
525	100	131	0.124038	0
526	100	144	0.555676	3
527	100	169	0.300297	2
528	100	265	0.103353	10
529	104	11	0.176986	4
530	104	23	0.042784	9
531	104	80	0.211587	4
532	104	110	0.216784	4
533	104	124	0.342371	0
534	104	127	0.061665	10
535	104	131	0.068682	10
536	104	138	0.037045	10
537	104	142	0.320179	0
538	104	169	0.056492	6
539	104	226	0.01495	8
540	104	260	0.450077	8
541	104	274	0.11579	9
542	104	275	0.245389	2
543	106	124	0.209277	7
544	106	260	0.157557	8
545	107	11	0.040987	9
546	107	23	0.038381	1
547	107	80	0.040139	7
548	107	96	0.015335	1
549	107	99	0.003074	0
550	107	124	0.285882	2
551	107	260	0.623234	9
552	108	6	0.107466	4
553	108	124	0.475729	9
554	108	142	0.15128	9
555	108	232	0.044617	6
556	108	260	0.006209	0
557	109	12	0.098403	3
558	109	49	0.193112	9
559	109	62	0.055876	2
560	109	237	0.10028	6
561	109	260	0.121212	2
562	110	6	0.065213	10
563	110	22	0.191027	2
564	110	23	0.196916	0
565	110	33	0.146907	4
566	110	35	0.054797	2
567	110	62	0.135118	6
568	110	65	0.002946	7
569	110	72	0.168682	0
570	110	80	0.450197	6
571	110	104	0.216784	3
572	110	113	0.094124	6
573	110	116	0.0354	2
574	110	124	0.377221	10
575	110	127	0.108943	0
576	110	153	0.023675	9
577	110	165	0.048152	8
578	110	169	0.123032	1
579	110	190	0.449119	2
580	110	225	0.217588	9
581	110	226	0.152501	0
582	110	227	0.058697	6
583	110	237	0.105635	3
584	110	260	0.418774	2
585	110	273	0.420609	7
586	110	274	0.489785	4
587	110	275	0.438929	9
588	111	6	0.211	8
589	111	11	0.050006	0
590	111	23	0.31916	5
591	111	26	0.063661	0
592	111	28	0.431858	4
593	111	35	0.587594	4
594	111	36	0.032406	2
595	111	40	0.333443	2
596	111	48	0.192767	4
597	111	52	0.02036	7
598	111	59	0.053112	7
599	111	62	0.000139	10
600	111	80	0.092819	8
601	111	99	0.163223	7
602	111	115	0.122936	5
603	111	124	0.600095	4
604	111	127	0.107622	0
605	111	131	0.225124	9
606	111	139	0.03065	1
607	111	152	0.389177	1
608	111	169	0.362167	1
609	111	171	0.016946	9
610	111	175	0.10657	0
611	111	185	0.576737	8
612	111	190	0.101836	0
613	111	192	0.109994	3
614	111	204	0.096761	0
615	111	206	0.003431	3
616	111	221	0.108732	8
617	111	224	0.107	9
618	111	225	0.158041	10
619	111	237	0.295397	5
620	111	239	0.479959	7
621	111	260	0.567753	1
622	111	263	0.272467	9
623	111	273	0.035965	9
624	111	274	0.072594	8
625	111	275	0.196724	4
626	111	276	0.137828	9
627	112	6	0.128581	2
628	112	22	0.392187	1
629	112	23	0.350886	2
630	112	26	0.044597	1
631	112	33	0.18666	10
632	112	35	0.240612	7
633	112	40	0.250071	8
634	112	54	0.129778	1
635	112	62	0.245482	0
636	112	63	0.092935	6
637	112	65	0.084333	0
638	112	72	0.175289	10
639	112	78	0.002951	2
640	112	80	0.497	8
641	112	86	0.33009	9
642	112	99	0.008206	8
643	112	116	0.034985	6
644	112	124	0.378023	6
645	112	131	0.179707	7
646	112	136	0.137164	0
647	112	153	0.019199	0
648	112	165	0.151143	0
649	112	169	0.19428	0
650	112	190	0.746377	0
651	112	194	0.148233	3
652	112	196	0.042358	2
653	112	226	0.350865	9
654	112	231	0.033524	6
655	112	237	0.19268	2
656	112	239	0.016851	7
657	112	252	0.548592	1
658	112	259	0.046006	6
659	112	260	0.666777	8
660	112	273	0.137464	8
661	112	274	0.274878	7
662	112	275	0.357106	6
663	113	110	0.094124	5
664	114	6	0.054388	4
665	114	124	0.183379	0
666	114	127	0.061213	4
667	114	142	0.504276	0
668	114	152	0.121561	8
669	114	160	0.004306	0
670	115	23	0.008833	2
671	115	35	0.269966	8
672	115	40	0.142409	2
673	115	48	0.046852	7
674	115	49	0.099709	0
675	115	87	0.059064	2
676	115	111	0.122936	3
677	115	121	0.022717	2
678	115	202	0.068934	10
679	115	216	0.432949	0
680	116	48	0.001173	6
681	116	58	0.523282	10
682	116	110	0.0354	7
683	116	112	0.034985	1
684	116	160	0.005595	2
685	116	166	0.056883	3
686	116	211	0.371895	10
687	116	214	0.161185	5
688	116	260	0.096669	9
689	117	186	0.078943	4
690	117	260	0.543635	3
691	121	60	0.128516	3
692	121	62	0.5668	8
693	121	115	0.022717	1
694	121	122	0.311653	9
695	121	127	0.003469	10
696	121	237	0.158326	4
697	122	87	0.03308	7
698	122	121	0.311653	9
699	122	135	0.066862	1
700	122	202	0.48306	6
701	122	215	0.314502	10
702	122	216	0.206399	6
703	122	220	0.134177	4
704	123	180	0.228008	8
705	123	273	0.718051	1
706	124	35	0.342781	5
707	124	48	0.429091	4
708	124	49	0.134881	7
709	124	52	0.111249	8
710	124	96	0.184125	5
711	124	104	0.342371	4
712	124	106	0.209277	3
713	124	107	0.285882	2
714	124	108	0.475729	10
715	124	110	0.377221	7
716	124	111	0.600095	9
717	124	112	0.378023	2
718	124	114	0.183379	9
719	124	136	0.188354	1
720	124	180	0.31209	4
721	124	196	0.206802	10
722	124	201	0.042146	1
723	124	205	0.006259	9
724	124	212	0.01714	1
725	124	213	0.150715	9
726	124	217	0.047879	0
727	124	218	0.05473	5
728	124	227	0.176948	0
729	124	241	0.032069	5
730	124	260	0.068574	5
731	124	263	0.335869	0
732	124	274	0.128087	10
733	125	75	0.127181	5
734	125	185	0.06101	4
735	125	273	0.351904	4
736	126	91	0.162496	3
737	126	202	0.093855	9
738	127	35	0.480239	9
739	127	48	0.007311	1
740	127	49	0.180275	1
741	127	87	0.029485	9
742	127	104	0.061665	0
743	127	110	0.108943	4
744	127	111	0.107622	10
745	127	114	0.061213	10
746	127	121	0.003469	1
747	127	202	0.130921	3
748	127	213	0.073367	0
749	127	215	0.297632	4
750	127	216	0.139878	4
751	127	220	0.098124	0
752	127	226	0.015801	7
753	127	260	0.103365	0
754	127	274	0.147028	3
755	128	220	0.075378	9
756	128	273	0.44518	1
757	130	166	0.08733	5
758	130	173	0.291816	7
759	131	93	0.049617	10
760	131	99	0.044935	2
761	131	100	0.124038	7
762	131	104	0.068682	3
763	131	111	0.225124	9
764	131	112	0.179707	9
765	131	215	0.026393	7
766	131	216	0.017795	5
767	131	229	0.49365	4
768	131	232	0.21715	3
769	131	240	0.181868	6
770	131	260	0.322114	1
771	131	273	0.88183	5
772	132	160	0.224813	2
773	133	86	0.329085	5
774	134	23	0.065374	0
775	134	26	0.127073	0
776	134	35	0.089311	0
777	134	49	0.046003	3
778	134	86	0.224142	8
779	134	145	0.062604	3
780	134	193	0.069347	5
781	135	35	0.061178	9
782	135	51	0.198551	3
783	135	59	0.283589	8
784	135	122	0.066862	7
785	135	152	0.008451	4
786	135	229	0.175566	1
787	135	230	0.072357	5
788	135	273	0.072935	2
789	135	276	0.025317	10
790	136	11	0.04962	2
791	136	35	0.093484	10
792	136	93	0.055749	7
793	136	112	0.137164	2
794	136	124	0.188354	3
795	136	273	0.820701	3
796	137	273	0.074341	4
797	138	33	0.011434	6
798	138	93	0.119016	0
799	138	104	0.037045	6
800	138	260	0.535452	8
801	138	275	0.044204	1
802	139	111	0.03065	10
803	142	35	0.614222	5
804	142	40	0.296577	6
805	142	48	0.057634	7
806	142	51	0.153835	2
807	142	104	0.320179	7
808	142	108	0.15128	10
809	142	114	0.504276	10
810	142	185	0.009786	9
811	142	196	0.187268	8
812	142	205	0.28027	8
813	142	213	0.434874	0
814	142	217	0.20615	8
815	142	219	0.078061	3
816	142	226	0.06166	1
817	142	263	0.161798	4
818	142	274	0.11188	7
819	143	146	0.157125	1
820	143	252	0.104676	3
821	144	23	0.075198	6
822	144	26	0.060661	0
823	144	35	0.135839	6
824	144	40	0.312317	6
825	144	44	0.385004	8
826	144	51	0.060361	6
827	144	52	0.140927	4
828	144	57	0.17852	1
829	144	60	0.088483	1
830	144	61	0.032731	0
831	144	62	0.518988	3
832	144	65	0.002359	5
833	144	68	0.124556	3
834	144	73	0.156718	0
835	144	78	0.029806	0
836	144	79	0.785063	7
837	144	85	0.381141	4
838	144	86	0.278431	1
839	144	98	0.140098	3
840	144	99	0.039574	3
841	144	100	0.555676	1
842	144	173	0.51164	4
843	144	176	0.117216	0
844	144	185	0.071894	1
845	144	186	0.191786	9
846	144	193	0.528839	9
847	144	205	0.159706	0
848	144	235	0.042114	10
849	144	237	0.270383	3
850	145	35	0.16339	1
851	145	40	0.234351	1
852	145	51	0.30802	1
853	145	52	0.098439	9
854	145	59	0.036807	5
855	145	60	0.026511	5
856	145	62	0.274738	2
857	145	79	0.150452	2
858	145	86	0.078406	1
859	145	96	0.12779	8
860	145	134	0.062604	6
861	145	173	0.386142	10
862	145	185	0.494463	4
863	145	186	0.478746	1
864	145	193	0.020977	4
865	145	195	0.14961	0
866	145	205	0.168108	7
867	145	236	0.089767	6
868	145	239	0.550678	8
869	145	250	0.058498	1
870	145	260	0.165794	4
871	146	79	0.08351	2
872	146	143	0.157125	3
873	146	237	0.10965	5
874	147	35	0.543562	10
875	147	40	0.355861	10
876	147	48	0.019509	1
877	147	185	0.084024	6
878	147	186	0.048584	8
879	147	205	0.013327	2
880	147	241	0.0327	8
881	147	274	0.113095	8
882	148	88	0.026925	10
883	148	185	0.0597	3
884	152	12	0.027496	10
885	152	26	0.320013	0
886	152	44	0.011218	7
887	152	78	0.014207	8
888	152	86	0.132683	4
889	152	87	0.515296	9
890	152	88	0.397984	9
891	152	94	0.199087	0
892	152	111	0.389177	0
893	152	114	0.121561	1
894	152	135	0.008451	6
895	152	175	0.18324	3
896	152	186	0.166097	8
897	152	202	0.185117	6
898	152	212	0.031246	6
899	152	215	0.043888	2
900	152	216	0.097631	4
901	152	220	0.131887	2
902	152	231	0.304721	4
903	152	235	0.028613	8
904	152	239	0.053888	10
905	152	274	0.070361	8
906	153	35	0.172303	3
907	153	79	0.313467	0
908	153	88	0.304784	8
909	153	94	0.059254	6
910	153	110	0.023675	2
911	153	112	0.019199	5
912	153	220	0.079987	7
913	154	185	0.091925	10
914	156	252	0.302828	2
915	157	35	0.136467	0
916	157	87	0.26029	5
917	157	185	0.02382	9
918	160	44	0.082872	10
919	160	49	0.201405	0
920	160	54	0.161213	8
921	160	57	0.10602	0
922	160	68	0.14009	2
923	160	69	0.092613	5
924	160	73	0.025013	7
925	160	78	0.333253	3
926	160	86	0.091552	4
927	160	87	0.950496	7
928	160	88	0.743859	8
929	160	89	0.196506	7
930	160	91	0.189766	0
931	160	114	0.004306	0
932	160	116	0.005595	8
933	160	132	0.224813	9
934	160	186	0.169958	3
935	160	215	0.034586	8
936	160	216	0.350507	8
937	160	231	0.456841	8
938	160	235	0.171703	7
939	160	236	0.087736	9
940	160	239	0.136561	2
941	160	241	0.236946	9
942	160	260	0.0101	9
943	160	274	0.032465	6
944	161	73	0.081128	2
945	161	87	0.000676	5
946	161	173	0.085329	3
947	161	186	0.004279	8
948	161	236	0.017765	6
949	161	252	0.135453	6
950	162	23	0.026145	9
951	162	26	0.057428	3
952	162	35	0.69359	5
953	162	40	0.191312	4
954	162	44	0.051791	4
955	162	51	0.055415	0
956	162	59	0.031552	5
957	162	185	0.362588	4
958	162	237	0.230816	3
959	162	252	0.016345	9
960	163	79	0.041948	6
961	165	87	0.029721	7
962	165	110	0.048152	3
963	165	112	0.151143	10
964	166	23	0.82152	2
965	166	26	0.45732	8
966	166	35	0.138425	1
967	166	36	0.158331	10
968	166	40	0.265145	7
969	166	41	0.211396	8
970	166	44	0.744062	2
971	166	54	0.335962	9
972	166	57	0.048105	2
973	166	61	0.206994	9
974	166	63	0.087959	8
975	166	68	0.403474	5
976	166	78	0.167012	1
977	166	79	0.295085	3
978	166	85	0.702676	7
979	166	99	0.109605	2
980	166	116	0.056883	0
981	166	130	0.08733	5
982	166	173	1	2
983	166	175	0.102924	1
984	166	176	0.760629	3
985	166	185	0.399755	7
986	166	186	0.923718	7
987	166	190	0.162732	7
988	166	193	0.10711	2
989	166	194	0.343316	3
990	166	195	0.36834	9
991	166	235	0.151239	7
992	166	236	0.504689	4
993	166	237	0.164932	1
994	166	260	0.438415	7
995	167	79	0.029486	2
996	167	88	0.069426	8
997	169	23	0.068695	6
998	169	25	0.00313	2
999	169	26	0.130209	2
1000	169	28	0.255078	10
1001	169	35	0.616765	3
1002	169	40	0.490053	2
1003	169	47	0.0033	8
1004	169	48	0.431875	9
1005	169	51	0.199864	9
1006	169	52	0.254807	9
1007	169	59	0.061381	10
1008	169	62	0.467138	10
1009	169	70	0.024556	9
1010	169	79	0.030512	10
1011	169	85	0.078235	5
1012	169	86	0.295551	3
1013	169	96	0.662637	3
1014	169	100	0.300297	3
1015	169	104	0.056492	0
1016	169	110	0.123032	6
1017	169	111	0.362167	1
1018	169	112	0.19428	1
1019	169	173	0.174329	1
1020	169	185	0.624489	10
1021	169	186	0.015881	4
1022	169	192	0.040291	3
1023	169	193	0.188349	3
1024	169	205	0.330301	2
1025	169	238	0.136276	8
1026	169	239	0.24067	6
1027	169	254	0.171623	2
1028	169	263	0.268381	3
1029	170	88	0.090919	1
1030	171	111	0.016946	7
1031	172	87	0.423796	8
1032	172	239	0.05535	2
1033	173	130	0.291816	3
1034	173	144	0.51164	3
1035	173	145	0.386142	5
1036	173	161	0.085329	5
1037	173	166	1	5
1038	173	169	0.174329	7
1039	173	236	0.373028	10
1040	175	33	0.282384	7
1041	175	65	0.135795	0
1042	175	75	0.040139	10
1043	175	111	0.10657	3
1044	175	152	0.18324	2
1045	175	166	0.102924	6
1046	175	273	0.050537	0
1047	176	144	0.117216	8
1048	176	166	0.760629	3
1049	177	4	0.063628	3
1050	177	75	0.41421	9
1051	177	180	0.10819	3
1052	177	264	0.014291	0
1053	177	273	0.388303	8
1054	178	87	0.450988	1
1055	180	23	0.296541	5
1056	180	26	0.066379	8
1057	180	33	0.042235	2
1058	180	80	0.011328	4
1059	180	93	0.29526	0
1060	180	96	0.303007	2
1061	180	99	0.203843	5
1062	180	123	0.228008	8
1063	180	124	0.31209	0
1064	180	177	0.10819	10
1065	180	185	0.054952	2
1066	180	202	0.167163	10
1067	180	260	0.855119	1
1068	180	264	0.349967	4
1069	180	274	0.079326	6
1070	184	88	0.231418	6
1071	184	91	0.317388	9
1072	184	93	0.040894	9
1073	184	202	0.580656	1
1074	185	111	0.576737	2
1075	185	125	0.06101	5
1076	185	142	0.009786	3
1077	185	144	0.071894	6
1078	185	145	0.494463	10
1079	185	147	0.084024	7
1080	185	148	0.0597	7
1081	185	154	0.091925	5
1082	185	157	0.02382	1
1083	185	162	0.362588	0
1084	185	166	0.399755	3
1085	185	169	0.624489	3
1086	185	180	0.054952	1
1087	185	201	0.027441	1
1088	185	265	0.467288	8
1089	185	274	0.028639	5
1090	186	0	0.06018	5
1091	186	33	0.161144	9
1092	186	64	0.158188	3
1093	186	65	0.577847	5
1094	186	117	0.078943	5
1095	186	144	0.191786	4
1096	186	145	0.478746	1
1097	186	147	0.048584	2
1098	186	152	0.166097	4
1099	186	160	0.169958	1
1100	186	161	0.004279	4
1101	186	166	0.923718	5
1102	186	169	0.015881	6
1103	186	236	0.247943	1
1104	190	58	0.475397	9
1105	190	93	0.110374	6
1106	190	110	0.449119	10
1107	190	111	0.101836	6
1108	190	112	0.746377	9
1109	190	166	0.162732	10
1110	190	211	0.906101	8
1111	190	214	0.48402	9
1112	192	111	0.109994	6
1113	192	169	0.040291	0
1114	192	233	0.085285	4
1115	192	265	0.038368	3
1116	192	274	0.201462	8
1117	193	86	0.208738	4
1118	193	134	0.069347	10
1119	193	144	0.528839	4
1120	193	145	0.020977	2
1121	193	166	0.10711	4
1122	193	169	0.188349	9
1123	193	250	0.029541	6
1124	194	112	0.148233	3
1125	194	166	0.343316	6
1126	194	211	0.516397	3
1127	194	214	0.144707	3
1128	195	145	0.14961	7
1129	195	166	0.36834	7
1130	196	112	0.042358	7
1131	196	124	0.206802	10
1132	196	142	0.187268	2
1133	199	239	0.135847	5
1134	201	23	0.00984	7
1135	201	75	0.14133	8
1136	201	124	0.042146	5
1137	201	185	0.027441	3
1138	201	204	0.026185	6
1139	201	225	0.133203	7
1140	201	260	0.374021	2
1141	201	263	0.081786	1
1142	202	6	0.484475	10
1143	202	51	0.334228	5
1144	202	59	0.425513	0
1145	202	60	0.068573	3
1146	202	81	0.219734	3
1147	202	115	0.068934	2
1148	202	122	0.48306	10
1149	202	126	0.093855	7
1150	202	127	0.130921	5
1151	202	152	0.185117	2
1152	202	180	0.167163	3
1153	202	184	0.580656	4
1154	202	210	0.052212	2
1155	202	228	0.01936	10
1156	202	273	0.070729	5
1157	202	276	0.319627	10
1158	204	111	0.096761	9
1159	204	201	0.026185	1
1160	205	124	0.006259	5
1161	205	142	0.28027	0
1162	205	144	0.159706	7
1163	205	145	0.168108	1
1164	205	147	0.013327	9
1165	205	169	0.330301	5
1166	206	111	0.003431	3
1167	207	23	0.202642	4
1168	207	93	0.378234	6
1169	207	273	0.454444	2
1170	208	227	0.124174	8
1171	208	274	0.364288	6
1172	209	93	0.085409	3
1173	209	260	0.201693	6
1174	209	274	0.458711	5
1175	210	202	0.052212	9
1176	210	274	0.187677	0
1177	211	22	0.172707	1
1178	211	23	0.020472	3
1179	211	34	0.060867	0
1180	211	65	0.045137	8
1181	211	72	0.033254	2
1182	211	116	0.371895	1
1183	211	190	0.906101	5
1184	211	194	0.516397	6
1185	211	258	0.113376	0
1186	211	275	0.233205	3
1187	212	124	0.01714	5
1188	212	152	0.031246	3
1189	212	264	0.185657	1
1190	212	276	0.001272	7
1191	213	35	0.09131	1
1192	213	40	0.022132	8
1193	213	124	0.150715	2
1194	213	127	0.073367	7
1195	213	142	0.434874	3
1196	213	219	0.011868	2
1197	214	7	0.039407	6
1198	214	22	0.014685	8
1199	214	35	0.111661	8
1200	214	62	0.07991	7
1201	214	65	0.056517	6
1202	214	116	0.161185	3
1203	214	190	0.48402	2
1204	214	194	0.144707	6
1205	214	275	0.08462	2
1206	215	60	0.240565	4
1207	215	62	0.622467	1
1208	215	122	0.314502	9
1209	215	127	0.297632	7
1210	215	131	0.026393	1
1211	215	152	0.043888	7
1212	215	160	0.034586	3
1213	216	17	0.003177	2
1214	216	22	0.005722	8
1215	216	33	0.099006	3
1216	216	35	0.238797	3
1217	216	60	0.250628	10
1218	216	62	0.398632	7
1219	216	80	0.102231	4
1220	216	115	0.432949	5
1221	216	122	0.206399	5
1222	216	127	0.139878	5
1223	216	131	0.017795	7
1224	216	152	0.097631	8
1225	216	160	0.350507	8
1226	216	275	0.043753	9
1227	216	276	0.477779	1
1228	217	124	0.047879	5
1229	217	142	0.20615	3
1230	218	80	0.076403	9
1231	218	93	0.213093	3
1232	218	124	0.05473	0
1233	218	260	0.215007	3
1234	219	142	0.078061	10
1235	219	213	0.011868	6
1236	220	122	0.134177	9
1237	220	127	0.098124	2
1238	220	128	0.075378	9
1239	220	152	0.131887	1
1240	220	153	0.079987	9
1241	220	226	0.193033	0
1242	221	111	0.108732	1
1243	221	260	0.079839	5
1244	221	274	0.093191	6
1245	222	229	0.406826	2
1246	222	273	0.219008	3
1247	223	59	0.001695	2
1248	223	239	0.126443	0
1249	224	111	0.107	10
1250	224	260	0.035757	7
1251	224	274	0.077966	6
1252	225	59	0.07599	3
1253	225	75	0.07426	5
1254	225	110	0.217588	10
1255	225	111	0.158041	7
1256	225	201	0.133203	0
1257	225	260	0.030067	1
1258	226	93	0.965023	5
1259	226	104	0.01495	7
1260	226	110	0.152501	0
1261	226	112	0.350865	7
1262	226	127	0.015801	10
1263	226	142	0.06166	3
1264	226	220	0.193033	2
1265	227	11	0.518693	6
1266	227	35	0.091869	9
1267	227	110	0.058697	7
1268	227	124	0.176948	5
1269	227	208	0.124174	8
1270	227	239	0.143291	1
1271	227	260	0.18308	6
1272	227	264	0.164617	4
1273	227	273	0.004359	1
1274	228	91	0.010944	10
1275	228	202	0.01936	7
1276	229	23	0.132701	8
1277	229	33	0.239959	3
1278	229	80	0.443862	2
1279	229	93	0.017348	9
1280	229	99	0.305443	7
1281	229	131	0.49365	0
1282	229	135	0.175566	9
1283	229	222	0.406826	10
1284	229	247	0.182128	3
1285	229	260	0.89834	4
1286	229	274	0.456742	1
1287	229	275	0.196936	10
1288	230	12	0.059219	5
1289	230	88	0.183342	3
1290	230	135	0.072357	4
1291	230	260	0.015064	7
1292	230	276	0.019223	8
1293	231	10	0.032356	5
1294	231	12	0.016504	3
1295	231	58	0.122879	10
1296	231	59	0.023728	6
1297	231	93	0.987039	5
1298	231	112	0.033524	1
1299	231	152	0.304721	8
1300	231	160	0.456841	2
1301	231	260	0.178024	9
1302	232	23	0.113908	4
1303	232	108	0.044617	8
1304	232	131	0.21715	2
1305	232	260	0.596846	8
1306	232	275	0.1395	0
1307	233	35	0.124462	5
1308	233	192	0.085285	5
1309	233	260	0.28462	2
1310	235	144	0.042114	7
1311	235	152	0.028613	3
1312	235	160	0.171703	7
1313	235	166	0.151239	6
1314	236	23	0.343215	9
1315	236	145	0.089767	4
1316	236	160	0.087736	2
1317	236	161	0.017765	7
1318	236	166	0.504689	4
1319	236	173	0.373028	1
1320	236	186	0.247943	6
1321	236	260	0.800099	10
1322	237	35	0.05099	9
1323	237	40	0.024297	10
1324	237	94	0.143175	4
1325	237	109	0.10028	0
1326	237	110	0.105635	6
1327	237	111	0.295397	3
1328	237	112	0.19268	1
1329	237	121	0.158326	9
1330	237	144	0.270383	7
1331	237	146	0.10965	2
1332	237	162	0.230816	2
1333	237	166	0.164932	1
1334	237	254	0.064577	4
1335	238	169	0.136276	1
1336	239	1	0.065993	9
1337	239	111	0.479959	8
1338	239	112	0.016851	6
1339	239	145	0.550678	1
1340	239	152	0.053888	9
1341	239	160	0.136561	3
1342	239	169	0.24067	8
1343	239	172	0.05535	7
1344	239	199	0.135847	10
1345	239	223	0.126443	5
1346	239	227	0.143291	4
1347	239	240	0.085009	5
1348	239	241	0.201254	10
1349	239	252	0.042733	10
1350	240	80	0.078413	5
1351	240	87	0.002191	8
1352	240	93	0.109921	6
1353	240	131	0.181868	0
1354	240	239	0.085009	1
1355	240	260	0.336218	5
1356	240	274	0.225222	4
1357	240	275	0.107786	1
1358	241	6	0.040222	5
1359	241	35	0.223331	1
1360	241	40	0.024949	0
1361	241	59	0.008804	0
1362	241	81	0.003647	2
1363	241	91	0.030086	2
1364	241	93	0.346829	5
1365	241	124	0.032069	6
1366	241	147	0.0327	2
1367	241	160	0.236946	7
1368	241	239	0.201254	8
1369	241	273	0.329153	2
1370	247	229	0.182128	6
1371	247	273	0.638998	9
1372	250	70	0.069916	2
1373	250	95	0.181254	4
1374	250	145	0.058498	8
1375	250	193	0.029541	0
1376	252	51	0.161357	1
1377	252	59	0.012033	9
1378	252	79	0.276853	3
1379	252	87	0.136665	7
1380	252	88	0.327739	2
1381	252	112	0.548592	1
1382	252	143	0.104676	1
1383	252	156	0.302828	2
1384	252	161	0.135453	7
1385	252	162	0.016345	9
1386	252	239	0.042733	2
1387	252	273	0.207918	4
1388	253	87	0.171716	0
1389	254	169	0.171623	8
1390	254	237	0.064577	5
1391	258	211	0.113376	6
1392	259	112	0.046006	4
1393	260	0	0.332602	10
1394	260	4	0.788408	8
1395	260	6	0.25654	7
1396	260	11	0.241558	1
1397	260	44	0.165978	2
1398	260	53	0.285545	9
1399	260	56	0.264303	8
1400	260	57	0.798362	2
1401	260	63	0.350842	1
1402	260	64	0.556609	6
1403	260	65	0.03132	3
1404	260	67	0.046494	4
1405	260	68	0.395409	4
1406	260	75	0.986022	4
1407	260	76	0.284078	2
1408	260	80	0.134201	9
1409	260	93	0.397687	5
1410	260	104	0.450077	2
1411	260	106	0.157557	0
1412	260	107	0.623234	10
1413	260	108	0.006209	8
1414	260	109	0.121212	10
1415	260	110	0.418774	1
1416	260	111	0.567753	9
1417	260	112	0.666777	1
1418	260	116	0.096669	2
1419	260	117	0.543635	4
1420	260	124	0.068574	10
1421	260	127	0.103365	10
1422	260	131	0.322114	0
1423	260	138	0.535452	2
1424	260	145	0.165794	0
1425	260	160	0.0101	9
1426	260	166	0.438415	3
1427	260	180	0.855119	2
1428	260	201	0.374021	8
1429	260	209	0.201693	0
1430	260	218	0.215007	3
1431	260	221	0.079839	7
1432	260	224	0.035757	5
1433	260	225	0.030067	5
1434	260	227	0.18308	5
1435	260	229	0.89834	6
1436	260	230	0.015064	0
1437	260	231	0.178024	9
1438	260	232	0.596846	6
1439	260	233	0.28462	1
1440	260	236	0.800099	6
1441	260	240	0.336218	1
1442	260	264	0.805301	8
1443	260	265	0.177823	3
1444	260	269	0.102803	3
1445	260	273	0.951725	6
1446	260	274	0.101214	0
1447	263	6	0.176878	10
1448	263	42	0.031	0
1449	263	88	0.019421	0
1450	263	111	0.272467	8
1451	263	124	0.335869	1
1452	263	142	0.161798	4
1453	263	169	0.268381	0
1454	263	201	0.081786	7
1455	264	33	0.154987	9
1456	264	98	0.202043	5
1457	264	99	0.508328	6
1458	264	177	0.014291	10
1459	264	180	0.349967	3
146


text:
0	264	212	0.185657	3
1461	264	227	0.164617	6
1462	264	260	0.805301	0
1463	264	274	0.240123	9
1464	265	96	0.7134	10
1465	265	99	0.023338	9
1466	265	100	0.103353	3
1467	265	185	0.467288	0
1468	265	192	0.038368	10
1469	265	260	0.177823	8
1470	265	268	0.021129	0
1471	267	96	0.00236	8
1472	268	265	0.021129	1
1473	269	93	0.202594	2
1474	269	260	0.102803	3
1475	271	48	0.045034	2
1476	273	5	0.287947	0
1477	273	7	0.023072	1
1478	273	76	0.454281	4
1479	273	80	0.180243	0
1480	273	93	0.419599	4
1481	273	98	0.185422	1
1482	273	99	0.82333	8
1483	273	110	0.420609	7
1484	273	111	0.035965	7
1485	273	112	0.137464	10
1486	273	123	0.718051	0
1487	273	125	0.351904	0
1488	273	128	0.44518	0
1489	273	131	0.88183	9
1490	273	135	0.072935	2
1491	273	136	0.820701	4
1492	273	137	0.074341	0
1493	273	175	0.050537	0
1494	273	177	0.388303	8
1495	273	202	0.070729	10
1496	273	207	0.454444	2
1497	273	222	0.219008	2
1498	273	227	0.004359	1
1499	273	241	0.329153	10
1500	273	247	0.638998	9
1501	273	252	0.207918	7
1502	273	260	0.951725	0
1503	273	274	0.724923	3
1504	273	275	0.44884	2
1505	274	2	0.288569	0
1506	274	11	0.464925	10
1507	274	59	0.105252	10
1508	274	75	0.375113	6
1509	274	81	0.306654	5
1510	274	84	0.147219	6
1511	274	91	0.010913	0
1512	274	93	0.345646	2
1513	274	96	0.209858	6
1514	274	99	0.198405	1
1515	274	104	0.11579	4
1516	274	110	0.489785	4
1517	274	111	0.072594	7
1518	274	112	0.274878	8
1519	274	124	0.128087	2
1520	274	127	0.147028	3
1521	274	142	0.11188	6
1522	274	147	0.113095	7
1523	274	152	0.070361	10
1524	274	160	0.032465	6
1525	274	180	0.079326	6
1526	274	185	0.028639	2
1527	274	192	0.201462	9
1528	274	208	0.364288	3
1529	274	209	0.458711	3
1530	274	210	0.187677	0
1531	274	221	0.093191	3
1532	274	224	0.077966	4
1533	274	229	0.456742	8
1534	274	240	0.225222	1
1535	274	260	0.101214	3
1536	274	264	0.240123	2
1537	274	273	0.724923	8
1538	275	58	0.415346	2
1539	275	93	0.096493	4
1540	275	104	0.245389	3
1541	275	110	0.438929	2
1542	275	111	0.196724	6
1543	275	112	0.357106	10
1544	275	138	0.044204	8
1545	275	211	0.233205	4
1546	275	214	0.08462	8
1547	275	216	0.043753	3
1548	275	229	0.196936	1
1549	275	232	0.1395	4
1550	275	240	0.107786	8
1551	275	273	0.44884	3
1552	276	93	0.01545	0
1553	276	111	0.137828	8
1554	276	135	0.025317	6
1555	276	202	0.319627	9
1556	276	212	0.001272	5
1557	276	216	0.477779	7
1558	276	230	0.019223	3
1559	278	58	0.00273	9
1560	279	58	0.068568	6


text:
// Package s3 provides Amazon S3 compatibility layer
/*
 * Copyright (c) 2018-2022, NVIDIA CORPORATION. All rights reserved.
 */
package s3

import (
	"encoding/xml"
	"net/http"
	"net/url"
	"path"
	"strconv"
	"time"

	"github.com/NVIDIA/aistore/api/apc"
	"github.com/NVIDIA/aistore/cluster"
	"github.com/NVIDIA/aistore/cmn"
	"github.com/NVIDIA/aistore/cmn/cos"
	"github.com/NVIDIA/aistore/cmn/debug"
	"github.com/NVIDIA/aistore/memsys"
)

const defaultLastModified = 0 // When an object was not accessed yet

// NOTE: do not rename structs that have `xml` tags. The names of those structs
// become a top level tag of resulting XML, and those tags S3-compatible
// clients require.
type (
	// List objects response
	ListObjectResult struct {
		Name                  string          `xml:"Name"`
		Ns                    string          `xml:"xmlns,attr"`
		Prefix                string          `xml:"Prefix"`
		KeyCount              int             `xml:"KeyCount"`                 // number of object names in the response
		MaxKeys               int             `xml:"MaxKeys"`                  // "The maximum number of keys returned ..." (s3)
		IsTruncated           bool            `xml:"IsTruncated"`              // true if there are more pages to read
		ContinuationToken     string          `xml:"ContinuationToken"`        // original ContinuationToken
		NextContinuationToken string          `xml:"NextContinuationToken"`    // NextContinuationToken to read the next page
		Contents              []*ObjInfo      `xml:"Contents"`                 // list of objects
		CommonPrefixes        []*CommonPrefix `xml:"CommonPrefixes,omitempty"` // list of dirs (used with `apc.LsNoRecursion`)
	}
	ObjInfo struct {
		Key          string `xml:"Key"`
		LastModified string `xml:"LastModified"`
		ETag         string `xml:"ETag"`
		Size         int64  `xml:"Size"`
		Class        string `xml:"StorageClass"`
	}
	CommonPrefix struct {
		Prefix string `xml:"Prefix"`
	}

	// Response for object copy request
	CopyObjectResult struct {
		LastModified string `xml:"LastModified"` // e.g. <LastModified>2009-10-12T17:50:30.000Z</LastModified>
		ETag         string `xml:"ETag"`
	}

	// Multipart upload start response
	InitiateMptUploadResult struct {
		Bucket   string `xml:"Bucket"`
		Key      string `xml:"Key"`
		UploadID string `xml:"UploadId"`
	}

	// Multipart uploaded part
	PartInfo struct {
		ETag       string `xml:"ETag"`
		PartNumber int64  `xml:"PartNumber"`
		Size       int64  `xml:"Size,omitempty"`
	}

	// Multipart upload completion request
	CompleteMptUpload struct {
		Parts []*PartInfo `xml:"Part"`
	}

	// Multipart upload completion response
	CompleteMptUploadResult struct {
		Bucket string `xml:"Bucket"`
		Key    string `xml:"Key"`
		ETag   string `xml:"ETag"`
	}

	// Multipart uploaded parts response
	ListPartsResult struct {
		Bucket   string      `xml:"Bucket"`
		Key      string      `xml:"Key"`
		UploadID string      `xml:"UploadId"`
		Parts    []*PartInfo `xml:"Part"`
	}

	// Active upload info
	UploadInfoResult struct {
		Key       string    `xml:"Key"`
		UploadID  string    `xml:"UploadId"`
		Initiated time.Time `xml:"Initiated"`
	}

	// List of active multipart uploads response
	ListMptUploadsResult struct {
		Bucket         string             `xml:"Bucket"`
		UploadIDMarker string             `xml:"UploadIdMarker"`
		Uploads        []UploadInfoResult `xml:"Upload"`
		MaxUploads     int
		IsTruncated    bool
	}

	// Deleted result: list of deleted objects and errors
	DeletedObjInfo struct {
		Key string `xml:"Key"`
	}
	DeleteResult struct {
		Objs []DeletedObjInfo `xml:"Deleted"`
	}
)

func ObjName(items []string) string { return path.Join(items[1:]...) }

func FillMsgFromS3Query(query url.Values, msg *apc.LsoMsg) {
	mxStr := query.Get(QparamMaxKeys)
	if pageSize, err := strconv.Atoi(mxStr); err == nil && pageSize > 0 {
		msg.PageSize = uint(pageSize)
	}
	if prefix := query.Get(QparamPrefix); prefix != "" {
		msg.Prefix = prefix
	}
	var token string
	if token = query.Get(QparamContinuationToken); token != "" {
		msg.ContinuationToken = token
	}
	// `start-after` is used only when starting to list pages, subsequent next-page calls
	// utilize `continuation-token`
	if after := query.Get(QparamStartAfter); after != "" && token == "" {
		msg.StartAfter = after
	}
	// TODO: check that the delimiter is '/' and raise an error otherwise
	if delimiter := query.Get(QparamDelimiter); delimiter != "" {
		msg.SetFlag(apc.LsNoRecursion)
	}
}

func NewListObjectResult(bucket string) *ListObjectResult {
	return &ListObjectResult{
		Name:     bucket,
		Ns:       s3Namespace,
		MaxKeys:  1000,
		Contents: make([]*ObjInfo, 0),
	}
}

func (r *ListObjectResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *ListObjectResult) Add(entry *cmn.LsoEntry, lsmsg *apc.LsoMsg) {
	if entry.Flags&apc.EntryIsDir == 0 {
		r.Contents = append(r.Contents, entryToS3(entry, lsmsg))
	} else {
		r.CommonPrefixes = append(r.CommonPrefixes, &CommonPrefix{Prefix: entry.Name + "/"})
	}
}

func entryToS3(entry *cmn.LsoEntry, lsmsg *apc.LsoMsg) *ObjInfo {
	objInfo := &ObjInfo{
		Key:          entry.Name,
		LastModified: entry.Atime,
		ETag:         entry.Checksum,
		Size:         entry.Size,
	}
	// Some S3 clients do not tolerate empty or missing LastModified, so fill it
	// with a zero time if the object was not accessed yet
	if objInfo.LastModified == "" {
		objInfo.LastModified = cos.FormatNanoTime(defaultLastModified, lsmsg.TimeFormat)
	}
	return objInfo
}

func (r *ListObjectResult) FillFromAisBckList(bckList *cmn.LsoResult, lsmsg *apc.LsoMsg) {
	r.KeyCount = len(bckList.Entries)
	r.IsTruncated = bckList.ContinuationToken != ""
	r.NextContinuationToken = bckList.ContinuationToken
	for _, e := range bckList.Entries {
		r.Add(e, lsmsg)
	}
}

func lomMD5(lom *cluster.LOM) string {
	if v, exists := lom.GetCustomKey(cmn.SourceObjMD); exists && v == apc.AWS {
		if v, exists := lom.GetCustomKey(cmn.MD5ObjMD); exists {
			return v
		}
	}
	if cksum := lom.Checksum(); cksum.Type() == cos.ChecksumMD5 {
		return cksum.Value()
	}
	return ""
}

func SetETag(header http.Header, lom *cluster.LOM) {
	if md5val := lomMD5(lom); md5val != "" {
		header.Set(cos.S3CksumHeader, md5val)
	}
}

func (r *CopyObjectResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *InitiateMptUploadResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *CompleteMptUploadResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *ListPartsResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *ListMptUploadsResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

func (r *DeleteResult) MustMarshal(sgl *memsys.SGL) {
	sgl.Write([]byte(xml.Header))
	err := xml.NewEncoder(sgl).Encode(r)
	debug.AssertNoErr(err)
}

repository: NVIDIA/aistore

repo_name: NVIDIA/aistore


text:
@BOOK{Strunk1979,
  title = {The Elements of Style},
  publisher = {Macmillan},
  year = {1979},
  author = {Strunk, Jr., William and E. B. White},
  edition = {Third}
}

@Book{1987:nelson,
  author = {Edward Nelson},
  title = {Radically Elementary Probability Theory},
  publisher = {Princeton University Press},
  year = {1987}
}

@article{Vatan2004
	author = {Vatan and Williams},
	title = {Optimal Quantum Circuits for General Two-Qubit Gates},
	year = 2004,
	note = {quant-ph/0308006},
	journal = {Phys. Rev. A},
	volume = 69,
	pages = 032315
	}

@article{Barenco1995a,
  Author = {Barenco, Adriano},
  Journal = {Proceedings of the Royal Society of London. Series A: Mathematical and Physical Sciences},
  Number = {1937},
  Pages = {679-683},
  Title = {A universal two-bit gate for quantum computation},
  Volume = {449},
  Year = {1995}}

repository: go-bears/quantumflow-dev

repo_name: go-bears/quantumflow-dev


text:
# - Find NetCDF
# Find the NetCDF C++ includes and library
#
#  NETCDF_INCLUDES    - where to find netcdf.h, etc
#  NETCDF_LIBRARIES   - Link these libraries when using NetCDF
#  NETCDF_FOUND       - True if NetCDF found including required interfaces (see below)
#
# Normal usage would be:
#  find_package (NetCDFcxx4 REQUIRED)
#  target_link_libraries (uses_f90_interface ${NETCDF_LIBRARIES})
#  target_link_libraries (only_uses_c_interface ${NETCDF_LIBRARIES_C})

find_path(NETCDF_F90_INCLUDES netcdf.mod
     HINTS ${netcdf_DIR}/include)
find_library(NETCDF_C_LIBRARY netcdf
     HINTS ${netcdf_DIR}/lib64 ${netcdf_DIR}/lib)
find_library(NETCDF_F90_LIBRARY netcdff
     HINTS ${netcdf_DIR}/lib64 ${netcdf_DIR}/lib)

set (NETCDF_LIBRARIES "${NetCDF_libs}" CACHE STRING "All NetCDF libraries required for interface level")
set (NETCDF_LIBRARIES ${NETCDF_C_LIBRARY} ${NETCDF_F90_LIBRARY})

# handle the QUIETLY and REQUIRED arguments and set NETCDF_FOUND to TRUE if
# all listed variables are TRUE
include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (NetCDF DEFAULT_MSG NETCDF_F90_INCLUDES NETCDF_LIBRARIES)

repository: dawn-ico/mch-summer-school

repo_name: dawn-ico/mch-summer-school


text:
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: mpm.proto

package robotMultiplePointsMove

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

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

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type MultiplePointsInfo struct {
	//Mask value to indicate optional value
	// count   |   distance_tolerance    |    max_continuous_retries |
	//   4     |           2             |           1               |
	InfoMask uint32 `protobuf:"varint,1,opt,name=infoMask,proto3" json:"infoMask,omitempty"`
	//required
	Markers []string `protobuf:"bytes,2,rep,name=markers,proto3" json:"markers,omitempty"`
	//optional
	Count                int32    `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	DistanceTolerance    float32  `protobuf:"fixed32,4,opt,name=distance_tolerance,json=distanceTolerance,proto3" json:"distance_tolerance,omitempty"`
	MaxContinuousRetries int32    `protobuf:"varint,5,opt,name=max_continuous_retries,json=maxContinuousRetries,proto3" json:"max_continuous_retries,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MultiplePointsInfo) Reset()         { *m = MultiplePointsInfo{} }
func (m *MultiplePointsInfo) String() string { return proto.CompactTextString(m) }
func (*MultiplePointsInfo) ProtoMessage()    {}
func (*MultiplePointsInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_6b4f32af36235b6a, []int{0}
}

func (m *MultiplePointsInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MultiplePointsInfo.Unmarshal(m, b)
}
func (m *MultiplePointsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MultiplePointsInfo.Marshal(b, m, deterministic)
}
func (m *MultiplePointsInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MultiplePointsInfo.Merge(m, src)
}
func (m *MultiplePointsInfo) XXX_Size() int {
	return xxx_messageInfo_MultiplePointsInfo.Size(m)
}
func (m *MultiplePointsInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_MultiplePointsInfo.DiscardUnknown(m)
}

var xxx_messageInfo_MultiplePointsInfo proto.InternalMessageInfo

func (m *MultiplePointsInfo) GetInfoMask() uint32 {
	if m != nil {
		return m.InfoMask
	}
	return 0
}

func (m *MultiplePointsInfo) GetMarkers() []string {
	if m != nil {
		return m.Markers
	}
	return nil
}

func (m *MultiplePointsInfo) GetCount() int32 {
	if m != nil {
		return m.Count
	}
	return 0
}

func (m *MultiplePointsInfo) GetDistanceTolerance() float32 {
	if m != nil {
		return m.DistanceTolerance
	}
	return 0
}

func (m *MultiplePointsInfo) GetMaxContinuousRetries() int32 {
	if m != nil {
		return m.MaxContinuousRetries
	}
	return 0
}

type MoveResponse struct {
	Command              string   `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
	Status               string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	ErrorMessage         string   `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	TaskId               string   `protobuf:"bytes,4,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MoveResponse) Reset()         { *m = MoveResponse{} }
func (m *MoveResponse) String() string { return proto.CompactTextString(m) }
func (*MoveResponse) ProtoMessage()    {}
func (*MoveResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6b4f32af36235b6a, []int{1}
}

func (m *MoveResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MoveResponse.Unmarshal(m, b)
}
func (m *MoveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MoveResponse.Marshal(b, m, deterministic)
}
func (m *MoveResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MoveResponse.Merge(m, src)
}
func (m *MoveResponse) XXX_Size() int {
	return xxx_messageInfo_MoveResponse.Size(m)
}
func (m *MoveResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_MoveResponse.DiscardUnknown(m)
}

var xxx_messageInfo_MoveResponse proto.InternalMessageInfo

func (m *MoveResponse) GetCommand() string {
	if m != nil {
		return m.Command
	}
	return ""
}

func (m *MoveResponse) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *MoveResponse) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

func (m *MoveResponse) GetTaskId() string {
	if m != nil {
		return m.TaskId
	}
	return ""
}

type MoveAndWaitForArrivalResponse struct {
	ErrorMessage         string   `protobuf:"bytes,1,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MoveAndWaitForArrivalResponse) Reset()         { *m = MoveAndWaitForArrivalResponse{} }
func (m *MoveAndWaitForArrivalResponse) String() string { return proto.CompactTextString(m) }
func (*MoveAndWaitForArrivalResponse) ProtoMessage()    {}
func (*MoveAndWaitForArrivalResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6b4f32af36235b6a, []int{2}
}

func (m *MoveAndWaitForArrivalResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MoveAndWaitForArrivalResponse.Unmarshal(m, b)
}
func (m *MoveAndWaitForArrivalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MoveAndWaitForArrivalResponse.Marshal(b, m, deterministic)
}
func (m *MoveAndWaitForArrivalResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MoveAndWaitForArrivalResponse.Merge(m, src)
}
func (m *MoveAndWaitForArrivalResponse) XXX_Size() int {
	return xxx_messageInfo_MoveAndWaitForArrivalResponse.Size(m)
}
func (m *MoveAndWaitForArrivalResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_MoveAndWaitForArrivalResponse.DiscardUnknown(m)
}

var xxx_messageInfo_MoveAndWaitForArrivalResponse proto.InternalMessageInfo

func (m *MoveAndWaitForArrivalResponse) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

func init() {
	proto.RegisterType((*MultiplePointsInfo)(nil), "robotMultiplePointsMove.MultiplePointsInfo")
	proto.RegisterType((*MoveResponse)(nil), "robotMultiplePointsMove.MoveResponse")
	proto.RegisterType((*MoveAndWaitForArrivalResponse)(nil), "robotMultiplePointsMove.MoveAndWaitForArrivalResponse")
}

func init() { proto.RegisterFile("mpm.proto", fileDescriptor_6b4f32af36235b6a) }

var fileDescriptor_6b4f32af36235b6a = []byte{
	// 358 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0x4d, 0x8b, 0xdb, 0x30,
	0x10, 0x8d, 0xf3, 0x59, 0x0f, 0xc9, 0xa1, 0x22, 0x4d, 0x4c, 0xa0, 0x60, 0x5c, 0x0a, 0x86, 0xd2,
	0x1c, 0xda, 0xd2, 0x7b, 0x08, 0x14, 0x72, 0x30, 0x14, 0xb1, 0xb0, 0x97, 0x05, 0xa3, 0xd8, 0xca,
	0x22, 0x62, 0x69, 0x8c, 0x24, 0x87, 0x9c, 0xf2, 0xef, 0xf6, 0x0f, 0xed, 0x2f, 0x58, 0xe4, 0xc4,
	0x61, 0x43, 0x36, 0x0b, 0x7b, 0x92, 0xde, 0x7b, 0x62, 0xe6, 0xcd, 0x3c, 0x81, 0x2f, 0x4b, 0x39,
	0x2f, 0x35, 0x5a, 0x24, 0x53, 0x8d, 0x6b, 0xb4, 0x49, 0x55, 0x58, 0x51, 0x16, 0xfc, 0x3f, 0x0a,
	0x65, 0x4d, 0x82, 0x3b, 0x1e, 0x3d, 0x79, 0x40, 0x2e, 0xe9, 0x95, 0xda, 0x20, 0x99, 0xc1, 0x27,
	0xa1, 0x36, 0x98, 0x30, 0xb3, 0x0d, 0xbc, 0xd0, 0x8b, 0x47, 0xf4, 0x8c, 0x49, 0x00, 0x03, 0xc9,
	0xf4, 0x96, 0x6b, 0x13, 0xb4, 0xc3, 0x4e, 0xec, 0xd3, 0x06, 0x92, 0x31, 0xf4, 0x32, 0xac, 0x94,
	0x0d, 0x3a, 0xa1, 0x17, 0xf7, 0xe8, 0x11, 0x90, 0x9f, 0x40, 0x72, 0x61, 0x2c, 0x53, 0x19, 0x4f,
	0x2d, 0x16, 0x5c, 0xbb, 0x5b, 0xd0, 0x0d, 0xbd, 0xb8, 0x4d, 0x3f, 0x37, 0xca, 0x5d, 0x23, 0x90,
	0x3f, 0x30, 0x91, 0x6c, 0x9f, 0x66, 0xa8, 0xac, 0x50, 0x15, 0x56, 0x26, 0xd5, 0xdc, 0x6a, 0xc1,
	0x4d, 0xd0, 0xab, 0xab, 0x8e, 0x25, 0xdb, 0x2f, 0xcf, 0x22, 0x3d, 0x6a, 0xd1, 0x01, 0x86, 0x6e,
	0x1e, 0xca, 0x4d, 0x89, 0xca, 0x70, 0x67, 0x32, 0x43, 0x29, 0x99, 0xca, 0x6b, 0xff, 0x3e, 0x6d,
	0x20, 0x99, 0x40, 0xdf, 0x58, 0x66, 0x2b, 0xe7, 0xde, 0x09, 0x27, 0x44, 0xbe, 0xc1, 0x88, 0x6b,
	0x8d, 0x3a, 0x95, 0xdc, 0x18, 0xf6, 0xc8, 0xeb, 0x21, 0x7c, 0x3a, 0xac, 0xc9, 0xe4, 0xc8, 0x91,
	0x29, 0x0c, 0x2c, 0x33, 0xdb, 0x54, 0xe4, 0xf5, 0x00, 0x3e, 0xed, 0x3b, 0xb8, 0xca, 0xa3, 0x25,
	0x7c, 0x75, 0xfd, 0x17, 0x2a, 0xbf, 0x67, 0xc2, 0xfe, 0x43, 0xbd, 0xd0, 0x5a, 0xec, 0x58, 0x71,
	0x36, 0x14, 0xc1, 0x45, 0xa5, 0x93, 0xab, 0x0b, 0xee, 0xd7, 0xf3, 0x55, 0x18, 0xae, 0x26, 0x79,
	0x80, 0x6e, 0x7d, 0xfe, 0x98, 0xdf, 0x48, 0x71, 0x7e, 0x9d, 0xe0, 0xec, 0xfb, 0xed, 0xc7, 0xaf,
	0xf6, 0x14, 0xb5, 0xc8, 0x01, 0xbe, 0xbc, 0xe9, 0xfc, 0x63, 0xed, 0xfe, 0xbe, 0xdb, 0xee, 0xe6,
	0x5a, 0xa2, 0xd6, 0xba, 0x5f, 0xff, 0xd0, 0xdf, 0x2f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x80, 0x3e,
	0xf7, 0x74, 0xae, 0x02, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// MultiplePointsMoveClient is the client API for MultiplePointsMove service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MultiplePointsMoveClient interface {
	Move(ctx context.Context, in *MultiplePointsInfo, opts ...grpc.CallOption) (*MoveResponse, error)
	MoveAndWaitForArrival(ctx context.Context, in *MultiplePointsInfo, opts ...grpc.CallOption) (*MoveAndWaitForArrivalResponse, error)
}

type multiplePointsMoveClient struct {
	cc *grpc.ClientConn
}

func NewMultiplePointsMoveClient(cc *grpc.ClientConn) MultiplePointsMoveClient {
	return &multiplePointsMoveClient{cc}
}

func (c *multiplePointsMoveClient) Move(ctx context.Context, in *MultiplePointsInfo, opts ...grpc.CallOption) (*MoveResponse, error) {
	out := new(MoveResponse)
	err := c.cc.Invoke(ctx, "/robotMultiplePointsMove.MultiplePointsMove/Move", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *multiplePointsMoveClient) MoveAndWaitForArrival(ctx context.Context, in *MultiplePointsInfo, opts ...grpc.CallOption) (*MoveAndWaitForArrivalResponse, error) {
	out := new(MoveAndWaitForArrivalResponse)
	err := c.cc.Invoke(ctx, "/robotMultiplePointsMove.MultiplePointsMove/MoveAndWaitForArrival", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MultiplePointsMoveServer is the server API for MultiplePointsMove service.
type MultiplePointsMoveServer interface {
	Move(context.Context, *MultiplePointsInfo) (*MoveResponse, error)
	MoveAndWaitForArrival(context.Context, *MultiplePointsInfo) (*MoveAndWaitForArrivalResponse, error)
}

// UnimplementedMultiplePointsMoveServer can be embedded to have forward compatible implementations.
type UnimplementedMultiplePointsMoveServer struct {
}

func (*UnimplementedMultiplePointsMoveServer) Move(ctx context.Context, req *MultiplePointsInfo) (*MoveResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Move not implemented")
}
func (*UnimplementedMultiplePointsMoveServer) MoveAndWaitForArrival(ctx context.Context, req *MultiplePointsInfo) (*MoveAndWaitForArrivalResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MoveAndWaitForArrival not implemented")
}

func RegisterMultiplePointsMoveServer(s *grpc.Server, srv MultiplePointsMoveServer) {
	s.RegisterService(&_MultiplePointsMove_serviceDesc, srv)
}

func _MultiplePointsMove_Move_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MultiplePointsInfo)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MultiplePointsMoveServer).Move(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/robotMultiplePointsMove.MultiplePointsMove/Move",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MultiplePointsMoveServer).Move(ctx, req.(*MultiplePointsInfo))
	}
	return interceptor(ctx, in, info, handler)
}

func _MultiplePointsMove_MoveAndWaitForArrival_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MultiplePointsInfo)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MultiplePointsMoveServer).MoveAndWaitForArrival(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/robotMultiplePointsMove.MultiplePointsMove/MoveAndWaitForArrival",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MultiplePointsMoveServer).MoveAndWaitForArrival(ctx, req.(*MultiplePointsInfo))
	}
	return interceptor(ctx, in, info, handler)
}

var _MultiplePointsMove_serviceDesc = grpc.ServiceDesc{
	ServiceName: "robotMultiplePointsMove.MultiplePointsMove",
	HandlerType: (*MultiplePointsMoveServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Move",
			Handler:    _MultiplePointsMove_Move_Handler,
		},
		{
			MethodName: "MoveAndWaitForArrival",
			Handler:    _MultiplePointsMove_MoveAndWaitForArrival_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "mpm.proto",
}


text:
package auth

import(
	"github.com/wjpxxx/letgo/lib"
	shopeeConfig "github.com/wjpxxx/letgo/x/api/shopee/config"
	"github.com/wjpxxx/letgo/x/api/shopee/auth/entity"
	"github.com/wjpxxx/letgo/x/api/shopee/commonentity"
	"fmt"
)

//Auth
type Auth struct{
	Config *shopeeConfig.Config
}

//getBaseString
func (a *Auth)getBaseString(apiName string,ti int)string{
	return fmt.Sprintf("%d%s%d",a.Config.PartnerID,a.Config.GetApiPath(apiName),ti)
}
//AuthorizationURL
func (a *Auth)AuthorizationURL()string{
	ti:=lib.Time()
	baseString:=a.getBaseString("shop/auth_partner",ti)
	sign:=shopeeConfig.Sign(a.Config.PartnerKey,baseString)
	return fmt.Sprintf(
		"%s?partner_id=%d&timestamp=%d&redirect=%s&sign=%s",
		a.Config.GetApiURL("shop/auth_partner"),
		a.Config.PartnerID,
		ti,
		a.Config.RedirectURL,
		sign,
	)
}

//GetAccesstoken
func (a *Auth)GetAccesstoken(code string,shopID int64) entity.GetAccessTokenResult {
	method:="auth/token/get"
	params:=lib.InRow{
		"code":code,
		"partner_id":a.Config.PartnerID,
		"shop_id":shopID,
	}
	result:=entity.GetAccessTokenResult{}
	err:=a.Config.HttpPost(method,params,&result)
	if err!=nil{
		result.Error=err.Error()
	}
	result.ShopID=shopID
	return result
}

//RefreshAccessToken
func (a *Auth)RefreshAccessToken(shop commonentity.ShopInfo)entity.RefreshAccessTokenResult{
	method:="auth/access_token/get"
	params:=lib.InRow{
		"refresh_token":shop.RefreshToken,
		"partner_id":a.Config.PartnerID,
		"shop_id":shop.ShopID,
	}
	result:=entity.RefreshAccessTokenResult{}
	err:=a.Config.HttpPost(method,params,&result)
	if err!=nil{
		result.Error=err.Error()
	}
	return result
}

repository: TrendingTechnology/letgo

repo_name: TrendingTechnology/letgo


text:
inherit qt4x11

require ../../../meta-openembedded/meta-oe/recipes-qt/qtserialport/qtserialport.inc

SRCREV = "22e45f0b0f956c025339d72ad53dca57ef684858"