mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-07 23:30:25 +08:00
IP库加密/其他对IP库的改进
This commit is contained in:
@@ -14418,7 +14418,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "CreateIPLibraryFileRequest",
|
"name": "CreateIPLibraryFileRequest",
|
||||||
"code": "message CreateIPLibraryFileRequest {\n\tstring name = 1;\n\tstring template = 2;\n\trepeated string emptyValues = 3;\n\tint64 fileId = 4;\n\tbytes countriesJSON = 5;\n\tbytes provincesJSON = 6;\n\tbytes citiesJSON = 7;\n\tbytes townsJSON = 8;\n\tbytes providersJSON = 9;\n}",
|
"code": "message CreateIPLibraryFileRequest {\n\tstring name = 1;\n\tstring template = 2;\n\trepeated string emptyValues = 3;\n\tint64 fileId = 4;\n\tbytes countriesJSON = 5;\n\tbytes provincesJSON = 6;\n\tbytes citiesJSON = 7;\n\tbytes townsJSON = 8;\n\tbytes providersJSON = 9;\n\tstring password = 10; // 密码\n}",
|
||||||
"doc": "创建IP库文件"
|
"doc": "创建IP库文件"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -19158,7 +19158,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "IPLibraryFile",
|
"name": "IPLibraryFile",
|
||||||
"code": "message IPLibraryFile {\n\tint64 id = 1;\n\tstring name = 2;\n\tint64 fileId = 3;\n\tstring template = 4;\n\trepeated string emptyValues = 5;\n\tint64 generatedFileId = 6;\n\tint64 generatedAt = 7;\n\tbool isFinished = 8;\n\tint64 createdAt = 9;\n\trepeated string countryNames = 10;\n\trepeated Province provinces = 11;\n\trepeated City cities = 12;\n\trepeated Town towns = 13;\n\trepeated string providerNames = 14;\n\n\n\tmessage Province {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t}\n\n\n\tmessage City {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t\tstring cityName = 3;\n\t}\n\n\n\tmessage Town {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t\tstring cityName = 3;\n\t\tstring townName = 4;\n\t}\n}",
|
"code": "message IPLibraryFile {\n\tint64 id = 1;\n\tstring name = 2;\n\tint64 fileId = 3;\n\tstring template = 4;\n\trepeated string emptyValues = 5;\n\tint64 generatedFileId = 6;\n\tint64 generatedAt = 7;\n\tbool isFinished = 8;\n\tint64 createdAt = 9;\n\trepeated string countryNames = 10;\n\trepeated Province provinces = 11;\n\trepeated City cities = 12;\n\trepeated Town towns = 13;\n\trepeated string providerNames = 14;\n\tstring password = 15; // 密码\n\n\n\tmessage Province {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t}\n\n\n\tmessage City {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t\tstring cityName = 3;\n\t}\n\n\n\tmessage Town {\n\t\tstring countryName = 1;\n\t\tstring provinceName = 2;\n\t\tstring cityName = 3;\n\t\tstring townName = 4;\n\t}\n}",
|
||||||
"doc": ""
|
"doc": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,26 +7,48 @@ import (
|
|||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
_ "embed"
|
_ "embed"
|
||||||
"net"
|
"net"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed internal-ip-library.db
|
//go:embed internal-ip-library.db
|
||||||
var ipLibraryData []byte
|
var ipLibraryData []byte
|
||||||
|
|
||||||
var defaultLibrary = NewIPLibrary()
|
var defaultLibrary = NewIPLibrary()
|
||||||
|
var commonLibrary *IPLibrary
|
||||||
|
|
||||||
|
var libraryLocker = &sync.Mutex{} // 为了保持加载顺序性
|
||||||
|
|
||||||
func DefaultIPLibraryData() []byte {
|
func DefaultIPLibraryData() []byte {
|
||||||
return ipLibraryData
|
return ipLibraryData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InitDefault 加载默认的IP库
|
||||||
func InitDefault() error {
|
func InitDefault() error {
|
||||||
defaultLibrary.reader = nil
|
libraryLocker.Lock()
|
||||||
return defaultLibrary.InitFromData(ipLibraryData)
|
defer libraryLocker.Unlock()
|
||||||
|
|
||||||
|
if commonLibrary != nil {
|
||||||
|
defaultLibrary = commonLibrary
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var library = NewIPLibrary()
|
||||||
|
err := library.InitFromData(ipLibraryData, "")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
commonLibrary = library
|
||||||
|
defaultLibrary = commonLibrary
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lookup 查询IP信息
|
||||||
func Lookup(ip net.IP) *QueryResult {
|
func Lookup(ip net.IP) *QueryResult {
|
||||||
return defaultLibrary.Lookup(ip)
|
return defaultLibrary.Lookup(ip)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LookupIP 查询IP信息
|
||||||
func LookupIP(ip string) *QueryResult {
|
func LookupIP(ip string) *QueryResult {
|
||||||
return defaultLibrary.LookupIP(ip)
|
return defaultLibrary.LookupIP(ip)
|
||||||
}
|
}
|
||||||
@@ -43,10 +65,19 @@ func NewIPLibraryWithReader(reader *Reader) *IPLibrary {
|
|||||||
return &IPLibrary{reader: reader}
|
return &IPLibrary{reader: reader}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *IPLibrary) InitFromData(data []byte) error {
|
func (this *IPLibrary) InitFromData(data []byte, password string) error {
|
||||||
if len(data) == 0 || this.reader != nil {
|
if len(data) == 0 || this.reader != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(password) > 0 {
|
||||||
|
srcData, err := NewEncrypt().Decode(data, password)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
data = srcData
|
||||||
|
}
|
||||||
|
|
||||||
var reader = bytes.NewReader(data)
|
var reader = bytes.NewReader(data)
|
||||||
gzipReader, err := gzip.NewReader(reader)
|
gzipReader, err := gzip.NewReader(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -15,12 +15,21 @@ import (
|
|||||||
func TestIPLibrary_Init(t *testing.T) {
|
func TestIPLibrary_Init(t *testing.T) {
|
||||||
var lib = iplibrary.NewIPLibrary()
|
var lib = iplibrary.NewIPLibrary()
|
||||||
|
|
||||||
err := lib.InitFromData(iplibrary.DefaultIPLibraryData())
|
err := lib.InitFromData(iplibrary.DefaultIPLibraryData(), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIPLibrary_Load(t *testing.T) {
|
||||||
|
for i := 0; i < 10; i++ {
|
||||||
|
err := iplibrary.InitDefault()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestIPLibrary_Lookup(t *testing.T) {
|
func TestIPLibrary_Lookup(t *testing.T) {
|
||||||
var stat1 = &runtime.MemStats{}
|
var stat1 = &runtime.MemStats{}
|
||||||
runtime.ReadMemStats(stat1)
|
runtime.ReadMemStats(stat1)
|
||||||
@@ -29,7 +38,7 @@ func TestIPLibrary_Lookup(t *testing.T) {
|
|||||||
|
|
||||||
var before = time.Now()
|
var before = time.Now()
|
||||||
|
|
||||||
err := lib.InitFromData(iplibrary.DefaultIPLibraryData())
|
err := lib.InitFromData(iplibrary.DefaultIPLibraryData(), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -48,6 +57,7 @@ func TestIPLibrary_Lookup(t *testing.T) {
|
|||||||
"8.8.8.8",
|
"8.8.8.8",
|
||||||
"4.4.4.4",
|
"4.4.4.4",
|
||||||
"202.96.0.20",
|
"202.96.0.20",
|
||||||
|
"111.197.165.199",
|
||||||
"66.249.66.69",
|
"66.249.66.69",
|
||||||
"2222", // wrong ip
|
"2222", // wrong ip
|
||||||
"2406:8c00:0:3401:133:18:168:70", // ipv6
|
"2406:8c00:0:3401:133:18:168:70", // ipv6
|
||||||
@@ -59,7 +69,7 @@ func TestIPLibrary_Lookup(t *testing.T) {
|
|||||||
|
|
||||||
func TestIPLibrary_LookupIP(t *testing.T) {
|
func TestIPLibrary_LookupIP(t *testing.T) {
|
||||||
var lib = iplibrary.NewIPLibrary()
|
var lib = iplibrary.NewIPLibrary()
|
||||||
err := lib.InitFromData(iplibrary.DefaultIPLibraryData())
|
err := lib.InitFromData(iplibrary.DefaultIPLibraryData(), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -78,7 +88,7 @@ func TestIPLibrary_LookupIP(t *testing.T) {
|
|||||||
|
|
||||||
func BenchmarkIPLibrary_Lookup(b *testing.B) {
|
func BenchmarkIPLibrary_Lookup(b *testing.B) {
|
||||||
var lib = iplibrary.NewIPLibrary()
|
var lib = iplibrary.NewIPLibrary()
|
||||||
err := lib.InitFromData(iplibrary.DefaultIPLibraryData())
|
err := lib.InitFromData(iplibrary.DefaultIPLibraryData(), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
32
pkg/iplibrary/encrypt.go
Normal file
32
pkg/iplibrary/encrypt.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package iplibrary
|
||||||
|
|
||||||
|
import "github.com/TeaOSLab/EdgeCommon/pkg/nodeutils"
|
||||||
|
|
||||||
|
type Encrypt struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewEncrypt() *Encrypt {
|
||||||
|
return &Encrypt{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Encrypt) Encode(srcData []byte, password string) ([]byte, error) {
|
||||||
|
var method = nodeutils.AES256CFBMethod{}
|
||||||
|
err := method.Init([]byte(password), []byte(password))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return method.Encrypt(srcData)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Encrypt) Decode(encodedData []byte, password string) ([]byte, error) {
|
||||||
|
var method = nodeutils.AES256CFBMethod{}
|
||||||
|
err := method.Init([]byte(password), []byte(password))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return method.Decrypt(encodedData)
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -3,12 +3,17 @@
|
|||||||
package iplibrary
|
package iplibrary
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"encoding/binary"
|
|
||||||
"github.com/iwind/TeaGo/types"
|
"github.com/iwind/TeaGo/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ipItem struct {
|
type ipv4Item struct {
|
||||||
|
IPFrom uint32
|
||||||
|
IPTo uint32
|
||||||
|
|
||||||
|
Region *ipRegion
|
||||||
|
}
|
||||||
|
|
||||||
|
type ipv6Item struct {
|
||||||
IPFrom uint64
|
IPFrom uint64
|
||||||
IPTo uint64
|
IPTo uint64
|
||||||
|
|
||||||
@@ -16,23 +21,14 @@ type ipItem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ipRegion struct {
|
type ipRegion struct {
|
||||||
CountryId uint32
|
CountryId uint16
|
||||||
ProvinceId uint32
|
ProvinceId uint16
|
||||||
CityId uint32
|
CityId uint32
|
||||||
TownId uint32
|
TownId uint32
|
||||||
ProviderId uint32
|
ProviderId uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ipItem) AsBinary() ([]byte, error) {
|
func HashRegion(countryId uint16, provinceId uint16, cityId uint32, townId uint32, providerId uint16) string {
|
||||||
var buf = &bytes.Buffer{}
|
|
||||||
err := binary.Write(buf, binary.BigEndian, this)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return buf.Bytes(), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func HashRegion(countryId uint32, provinceId uint32, cityId uint32, townId uint32, providerId uint32) string {
|
|
||||||
var providerHash = ""
|
var providerHash = ""
|
||||||
if providerId > 0 {
|
if providerId > 0 {
|
||||||
providerHash = "_" + types.String(providerId)
|
providerHash = "_" + types.String(providerId)
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
package iplibrary
|
package iplibrary
|
||||||
|
|
||||||
type Country struct {
|
type Country struct {
|
||||||
Id uint32 `json:"id"`
|
Id uint16 `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Codes []string `json:"codes"`
|
Codes []string `json:"codes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Province struct {
|
type Province struct {
|
||||||
Id uint32 `json:"id"`
|
Id uint16 `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Codes []string `json:"codes"`
|
Codes []string `json:"codes"`
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,7 @@ type Town struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Provider struct {
|
type Provider struct {
|
||||||
Id uint32 `json:"id"`
|
Id uint16 `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Codes []string `json:"codes"`
|
Codes []string `json:"codes"`
|
||||||
}
|
}
|
||||||
@@ -43,19 +43,19 @@ type Meta struct {
|
|||||||
Providers []*Provider `json:"providers"`
|
Providers []*Provider `json:"providers"`
|
||||||
CreatedAt int64 `json:"createdAt"`
|
CreatedAt int64 `json:"createdAt"`
|
||||||
|
|
||||||
countryMap map[uint32]*Country // id => *Country
|
countryMap map[uint16]*Country // id => *Country
|
||||||
provinceMap map[uint32]*Province // id => *Province
|
provinceMap map[uint16]*Province // id => *Province
|
||||||
cityMap map[uint32]*City // id => *City
|
cityMap map[uint32]*City // id => *City
|
||||||
townMap map[uint32]*Town // id => *Town
|
townMap map[uint32]*Town // id => *Town
|
||||||
providerMap map[uint32]*Provider // id => *Provider
|
providerMap map[uint16]*Provider // id => *Provider
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Meta) Init() {
|
func (this *Meta) Init() {
|
||||||
this.countryMap = map[uint32]*Country{}
|
this.countryMap = map[uint16]*Country{}
|
||||||
this.provinceMap = map[uint32]*Province{}
|
this.provinceMap = map[uint16]*Province{}
|
||||||
this.cityMap = map[uint32]*City{}
|
this.cityMap = map[uint32]*City{}
|
||||||
this.townMap = map[uint32]*Town{}
|
this.townMap = map[uint32]*Town{}
|
||||||
this.providerMap = map[uint32]*Provider{}
|
this.providerMap = map[uint16]*Provider{}
|
||||||
|
|
||||||
for _, country := range this.Countries {
|
for _, country := range this.Countries {
|
||||||
this.countryMap[country.Id] = country
|
this.countryMap[country.Id] = country
|
||||||
@@ -74,11 +74,11 @@ func (this *Meta) Init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Meta) CountryWithId(countryId uint32) *Country {
|
func (this *Meta) CountryWithId(countryId uint16) *Country {
|
||||||
return this.countryMap[countryId]
|
return this.countryMap[countryId]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Meta) ProvinceWithId(provinceId uint32) *Province {
|
func (this *Meta) ProvinceWithId(provinceId uint16) *Province {
|
||||||
return this.provinceMap[provinceId]
|
return this.provinceMap[provinceId]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,6 +90,6 @@ func (this *Meta) TownWithId(townId uint32) *Town {
|
|||||||
return this.townMap[townId]
|
return this.townMap[townId]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Meta) ProviderWithId(providerId uint32) *Provider {
|
func (this *Meta) ProviderWithId(providerId uint16) *Provider {
|
||||||
return this.providerMap[providerId]
|
return this.providerMap[providerId]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
||||||
"github.com/iwind/TeaGo/types"
|
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -18,17 +18,17 @@ import (
|
|||||||
type Reader struct {
|
type Reader struct {
|
||||||
meta *Meta
|
meta *Meta
|
||||||
|
|
||||||
regionMap map[string]*ipRegion
|
regionMap map[string]*ipRegion // 缓存重复的区域用来节约内存
|
||||||
|
|
||||||
ipV4Items []*ipItem
|
ipV4Items []*ipv4Item
|
||||||
ipV6Items []*ipItem
|
ipV6Items []*ipv6Item
|
||||||
|
|
||||||
lastIPFrom uint64
|
lastIPFrom uint64
|
||||||
lastCountryId uint32
|
lastCountryId uint16
|
||||||
lastProvinceId uint32
|
lastProvinceId uint16
|
||||||
lastCityId uint32
|
lastCityId uint32
|
||||||
lastTownId uint32
|
lastTownId uint32
|
||||||
lastProviderId uint32
|
lastProviderId uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewReader 创建新Reader对象
|
// NewReader 创建新Reader对象
|
||||||
@@ -112,6 +112,9 @@ func (this *Reader) load(reader io.Reader) error {
|
|||||||
return from0 < from1
|
return from0 < from1
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 清理内存
|
||||||
|
this.regionMap = nil
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,12 +125,12 @@ func (this *Reader) Lookup(ip net.IP) *QueryResult {
|
|||||||
|
|
||||||
var ipLong = configutils.IP2Long(ip)
|
var ipLong = configutils.IP2Long(ip)
|
||||||
var isV4 = configutils.IsIPv4(ip)
|
var isV4 = configutils.IsIPv4(ip)
|
||||||
var resultItem *ipItem
|
var resultItem any
|
||||||
if isV4 {
|
if isV4 {
|
||||||
sort.Search(len(this.ipV4Items), func(i int) bool {
|
sort.Search(len(this.ipV4Items), func(i int) bool {
|
||||||
var item = this.ipV4Items[i]
|
var item = this.ipV4Items[i]
|
||||||
if item.IPFrom <= ipLong {
|
if item.IPFrom <= uint32(ipLong) {
|
||||||
if item.IPTo >= ipLong {
|
if item.IPTo >= uint32(ipLong) {
|
||||||
resultItem = item
|
resultItem = item
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -159,11 +162,11 @@ func (this *Reader) Meta() *Meta {
|
|||||||
return this.meta
|
return this.meta
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Reader) IPv4Items() []*ipItem {
|
func (this *Reader) IPv4Items() []*ipv4Item {
|
||||||
return this.ipV4Items
|
return this.ipV4Items
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Reader) IPv6Items() []*ipItem {
|
func (this *Reader) IPv6Items() []*ipv6Item {
|
||||||
return this.ipV6Items
|
return this.ipV6Items
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,31 +219,31 @@ func (this *Reader) parseLine(line []byte) error {
|
|||||||
var ipFrom uint64
|
var ipFrom uint64
|
||||||
var ipTo uint64
|
var ipTo uint64
|
||||||
if strings.HasPrefix(pieces[1], "+") {
|
if strings.HasPrefix(pieces[1], "+") {
|
||||||
ipFrom = this.lastIPFrom + types.Uint64(pieces[1][1:])
|
ipFrom = this.lastIPFrom + this.decodeUint64(pieces[1][1:])
|
||||||
} else {
|
} else {
|
||||||
ipFrom = types.Uint64(pieces[1])
|
ipFrom = this.decodeUint64(pieces[1])
|
||||||
}
|
}
|
||||||
if len(pieces[2]) == 0 {
|
if len(pieces[2]) == 0 {
|
||||||
ipTo = ipFrom
|
ipTo = ipFrom
|
||||||
} else {
|
} else {
|
||||||
ipTo = types.Uint64(pieces[2]) + ipFrom
|
ipTo = this.decodeUint64(pieces[2]) + ipFrom
|
||||||
}
|
}
|
||||||
this.lastIPFrom = ipFrom
|
this.lastIPFrom = ipFrom
|
||||||
|
|
||||||
// country
|
// country
|
||||||
var countryId uint32
|
var countryId uint16
|
||||||
if pieces[3] == "+" {
|
if pieces[3] == "+" {
|
||||||
countryId = this.lastCountryId
|
countryId = this.lastCountryId
|
||||||
} else {
|
} else {
|
||||||
countryId = types.Uint32(pieces[3])
|
countryId = uint16(this.decodeUint64(pieces[3]))
|
||||||
}
|
}
|
||||||
this.lastCountryId = countryId
|
this.lastCountryId = countryId
|
||||||
|
|
||||||
var provinceId uint32
|
var provinceId uint16
|
||||||
if pieces[4] == "+" {
|
if pieces[4] == "+" {
|
||||||
provinceId = this.lastProvinceId
|
provinceId = this.lastProvinceId
|
||||||
} else {
|
} else {
|
||||||
provinceId = types.Uint32(pieces[4])
|
provinceId = uint16(this.decodeUint64(pieces[4]))
|
||||||
}
|
}
|
||||||
this.lastProvinceId = provinceId
|
this.lastProvinceId = provinceId
|
||||||
|
|
||||||
@@ -249,7 +252,7 @@ func (this *Reader) parseLine(line []byte) error {
|
|||||||
if pieces[5] == "+" {
|
if pieces[5] == "+" {
|
||||||
cityId = this.lastCityId
|
cityId = this.lastCityId
|
||||||
} else {
|
} else {
|
||||||
cityId = types.Uint32(pieces[5])
|
cityId = uint32(this.decodeUint64(pieces[5]))
|
||||||
}
|
}
|
||||||
this.lastCityId = cityId
|
this.lastCityId = cityId
|
||||||
|
|
||||||
@@ -258,16 +261,16 @@ func (this *Reader) parseLine(line []byte) error {
|
|||||||
if pieces[6] == "+" {
|
if pieces[6] == "+" {
|
||||||
townId = this.lastTownId
|
townId = this.lastTownId
|
||||||
} else {
|
} else {
|
||||||
townId = types.Uint32(pieces[6])
|
townId = uint32(this.decodeUint64(pieces[6]))
|
||||||
}
|
}
|
||||||
this.lastTownId = townId
|
this.lastTownId = townId
|
||||||
|
|
||||||
// provider
|
// provider
|
||||||
var providerId uint32
|
var providerId uint16
|
||||||
if pieces[7] == "+" {
|
if pieces[7] == "+" {
|
||||||
providerId = this.lastProviderId
|
providerId = this.lastProviderId
|
||||||
} else {
|
} else {
|
||||||
providerId = types.Uint32(pieces[7])
|
providerId = uint16(this.decodeUint64(pieces[7]))
|
||||||
}
|
}
|
||||||
this.lastProviderId = providerId
|
this.lastProviderId = providerId
|
||||||
|
|
||||||
@@ -286,13 +289,13 @@ func (this *Reader) parseLine(line []byte) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if version == "4" {
|
if version == "4" {
|
||||||
this.ipV4Items = append(this.ipV4Items, &ipItem{
|
this.ipV4Items = append(this.ipV4Items, &ipv4Item{
|
||||||
IPFrom: ipFrom,
|
IPFrom: uint32(ipFrom),
|
||||||
IPTo: ipTo,
|
IPTo: uint32(ipTo),
|
||||||
Region: region,
|
Region: region,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.ipV6Items = append(this.ipV6Items, &ipItem{
|
this.ipV6Items = append(this.ipV6Items, &ipv6Item{
|
||||||
IPFrom: ipFrom,
|
IPFrom: ipFrom,
|
||||||
IPTo: ipTo,
|
IPTo: ipTo,
|
||||||
Region: region,
|
Region: region,
|
||||||
@@ -301,3 +304,12 @@ func (this *Reader) parseLine(line []byte) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Reader) decodeUint64(s string) uint64 {
|
||||||
|
if this.meta != nil && this.meta.Version == Version2 {
|
||||||
|
i, _ := strconv.ParseUint(s, 32, 64)
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
i, _ := strconv.ParseUint(s, 10, 64)
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
package iplibrary
|
package iplibrary
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
@@ -12,9 +13,10 @@ import (
|
|||||||
|
|
||||||
type FileReader struct {
|
type FileReader struct {
|
||||||
rawReader *Reader
|
rawReader *Reader
|
||||||
|
password string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFileReader(path string) (*FileReader, error) {
|
func NewFileReader(path string, password string) (*FileReader, error) {
|
||||||
fp, err := os.Open(path)
|
fp, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -23,10 +25,24 @@ func NewFileReader(path string) (*FileReader, error) {
|
|||||||
_ = fp.Close()
|
_ = fp.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return NewFileDataReader(fp)
|
return NewFileDataReader(fp, password)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFileDataReader(dataReader io.Reader) (*FileReader, error) {
|
func NewFileDataReader(dataReader io.Reader, password string) (*FileReader, error) {
|
||||||
|
if len(password) > 0 {
|
||||||
|
data, err := io.ReadAll(dataReader)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceData, err := NewEncrypt().Decode(data, password)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
dataReader = bytes.NewReader(sourceData)
|
||||||
|
}
|
||||||
|
|
||||||
gzReader, err := gzip.NewReader(dataReader)
|
gzReader, err := gzip.NewReader(dataReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("create gzip reader failed: " + err.Error())
|
return nil, errors.New("create gzip reader failed: " + err.Error())
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestNewFileReader(t *testing.T) {
|
func TestNewFileReader(t *testing.T) {
|
||||||
reader, err := iplibrary.NewFileReader("./ip")
|
reader, err := iplibrary.NewFileReader("./ip-20c1461c.db", "123456")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type QueryResult struct {
|
type QueryResult struct {
|
||||||
item *ipItem
|
item any
|
||||||
meta *Meta
|
meta *Meta
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,18 +17,16 @@ func (this *QueryResult) IsOk() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) CountryId() int64 {
|
func (this *QueryResult) CountryId() int64 {
|
||||||
if this.item != nil {
|
return int64(this.realCountryId())
|
||||||
return int64(this.item.Region.CountryId)
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) CountryName() string {
|
func (this *QueryResult) CountryName() string {
|
||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if this.item.Region.CountryId > 0 {
|
var countryId = this.realCountryId()
|
||||||
var country = this.meta.CountryWithId(this.item.Region.CountryId)
|
if countryId > 0 {
|
||||||
|
var country = this.meta.CountryWithId(countryId)
|
||||||
if country != nil {
|
if country != nil {
|
||||||
return country.Name
|
return country.Name
|
||||||
}
|
}
|
||||||
@@ -40,8 +38,9 @@ func (this *QueryResult) CountryCodes() []string {
|
|||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if this.item.Region.CountryId > 0 {
|
var countryId = this.realCountryId()
|
||||||
var country = this.meta.CountryWithId(this.item.Region.CountryId)
|
if countryId > 0 {
|
||||||
|
var country = this.meta.CountryWithId(countryId)
|
||||||
if country != nil {
|
if country != nil {
|
||||||
return country.Codes
|
return country.Codes
|
||||||
}
|
}
|
||||||
@@ -50,18 +49,16 @@ func (this *QueryResult) CountryCodes() []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) ProvinceId() int64 {
|
func (this *QueryResult) ProvinceId() int64 {
|
||||||
if this.item != nil {
|
return int64(this.realProvinceId())
|
||||||
return int64(this.item.Region.ProvinceId)
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) ProvinceName() string {
|
func (this *QueryResult) ProvinceName() string {
|
||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if this.item.Region.ProvinceId > 0 {
|
var provinceId = this.realProvinceId()
|
||||||
var province = this.meta.ProvinceWithId(this.item.Region.ProvinceId)
|
if provinceId > 0 {
|
||||||
|
var province = this.meta.ProvinceWithId(provinceId)
|
||||||
if province != nil {
|
if province != nil {
|
||||||
return province.Name
|
return province.Name
|
||||||
}
|
}
|
||||||
@@ -73,8 +70,9 @@ func (this *QueryResult) ProvinceCodes() []string {
|
|||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if this.item.Region.ProvinceId > 0 {
|
var provinceId = this.realProvinceId()
|
||||||
var province = this.meta.ProvinceWithId(this.item.Region.ProvinceId)
|
if provinceId > 0 {
|
||||||
|
var province = this.meta.ProvinceWithId(provinceId)
|
||||||
if province != nil {
|
if province != nil {
|
||||||
return province.Codes
|
return province.Codes
|
||||||
}
|
}
|
||||||
@@ -83,18 +81,16 @@ func (this *QueryResult) ProvinceCodes() []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) CityId() int64 {
|
func (this *QueryResult) CityId() int64 {
|
||||||
if this.item != nil {
|
return int64(this.realCityId())
|
||||||
return int64(this.item.Region.CityId)
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) CityName() string {
|
func (this *QueryResult) CityName() string {
|
||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if this.item.Region.CityId > 0 {
|
var cityId = this.realCityId()
|
||||||
var city = this.meta.CityWithId(this.item.Region.CityId)
|
if cityId > 0 {
|
||||||
|
var city = this.meta.CityWithId(cityId)
|
||||||
if city != nil {
|
if city != nil {
|
||||||
return city.Name
|
return city.Name
|
||||||
}
|
}
|
||||||
@@ -103,18 +99,16 @@ func (this *QueryResult) CityName() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) TownId() int64 {
|
func (this *QueryResult) TownId() int64 {
|
||||||
if this.item != nil {
|
return int64(this.realTownId())
|
||||||
return int64(this.item.Region.TownId)
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) TownName() string {
|
func (this *QueryResult) TownName() string {
|
||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if this.item.Region.TownId > 0 {
|
var townId = this.realTownId()
|
||||||
var town = this.meta.TownWithId(this.item.Region.TownId)
|
if townId > 0 {
|
||||||
|
var town = this.meta.TownWithId(townId)
|
||||||
if town != nil {
|
if town != nil {
|
||||||
return town.Name
|
return town.Name
|
||||||
}
|
}
|
||||||
@@ -123,18 +117,16 @@ func (this *QueryResult) TownName() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) ProviderId() int64 {
|
func (this *QueryResult) ProviderId() int64 {
|
||||||
if this.item != nil {
|
return int64(this.realProviderId())
|
||||||
return int64(this.item.Region.ProviderId)
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *QueryResult) ProviderName() string {
|
func (this *QueryResult) ProviderName() string {
|
||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if this.item.Region.ProviderId > 0 {
|
var providerId = this.realProviderId()
|
||||||
var provider = this.meta.ProviderWithId(this.item.Region.ProviderId)
|
if providerId > 0 {
|
||||||
|
var provider = this.meta.ProviderWithId(providerId)
|
||||||
if provider != nil {
|
if provider != nil {
|
||||||
return provider.Name
|
return provider.Name
|
||||||
}
|
}
|
||||||
@@ -146,8 +138,9 @@ func (this *QueryResult) ProviderCodes() []string {
|
|||||||
if this.item == nil {
|
if this.item == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if this.item.Region.ProviderId > 0 {
|
var providerId = this.realProviderId()
|
||||||
var provider = this.meta.ProviderWithId(this.item.Region.ProviderId)
|
if providerId > 0 {
|
||||||
|
var provider = this.meta.ProviderWithId(providerId)
|
||||||
if provider != nil {
|
if provider != nil {
|
||||||
return provider.Codes
|
return provider.Codes
|
||||||
}
|
}
|
||||||
@@ -189,3 +182,68 @@ func (this *QueryResult) Summary() string {
|
|||||||
|
|
||||||
return strings.Join(pieces, " ")
|
return strings.Join(pieces, " ")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *QueryResult) realCountryId() uint16 {
|
||||||
|
if this.item != nil {
|
||||||
|
switch item := this.item.(type) {
|
||||||
|
case *ipv4Item:
|
||||||
|
return item.Region.CountryId
|
||||||
|
case *ipv6Item:
|
||||||
|
return item.Region.CountryId
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *QueryResult) realProvinceId() uint16 {
|
||||||
|
if this.item != nil {
|
||||||
|
switch item := this.item.(type) {
|
||||||
|
case *ipv4Item:
|
||||||
|
return item.Region.ProvinceId
|
||||||
|
case *ipv6Item:
|
||||||
|
return item.Region.ProvinceId
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *QueryResult) realCityId() uint32 {
|
||||||
|
if this.item != nil {
|
||||||
|
switch item := this.item.(type) {
|
||||||
|
case *ipv4Item:
|
||||||
|
return item.Region.CityId
|
||||||
|
case *ipv6Item:
|
||||||
|
return item.Region.CityId
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *QueryResult) realTownId() uint32 {
|
||||||
|
if this.item != nil {
|
||||||
|
switch item := this.item.(type) {
|
||||||
|
case *ipv4Item:
|
||||||
|
return item.Region.TownId
|
||||||
|
case *ipv6Item:
|
||||||
|
return item.Region.TownId
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *QueryResult) realProviderId() uint16 {
|
||||||
|
if this.item != nil {
|
||||||
|
switch item := this.item.(type) {
|
||||||
|
case *ipv4Item:
|
||||||
|
return item.Region.ProviderId
|
||||||
|
case *ipv6Item:
|
||||||
|
return item.Region.ProviderId
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ func (this *Updater) Loop() error {
|
|||||||
func (this *Updater) loadFile(fp *os.File) error {
|
func (this *Updater) loadFile(fp *os.File) error {
|
||||||
this.source.LogInfo("load ip library from '" + fp.Name() + "' ...")
|
this.source.LogInfo("load ip library from '" + fp.Name() + "' ...")
|
||||||
|
|
||||||
fileReader, err := NewFileDataReader(fp)
|
fileReader, err := NewFileDataReader(fp, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("load ip library from reader failed: " + err.Error())
|
return errors.New("load ip library from reader failed: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,5 @@ type Version = int
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
Version1 Version = 1
|
Version1 Version = 1
|
||||||
|
Version2 Version = 2 // 主要变更为数字使用32进制
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
|
||||||
"github.com/iwind/TeaGo/types"
|
|
||||||
"hash"
|
"hash"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -54,7 +54,7 @@ func NewWriter(writer io.Writer, meta *Meta) *Writer {
|
|||||||
if meta == nil {
|
if meta == nil {
|
||||||
meta = &Meta{}
|
meta = &Meta{}
|
||||||
}
|
}
|
||||||
meta.Version = Version1
|
meta.Version = Version2
|
||||||
meta.CreatedAt = time.Now().Unix()
|
meta.CreatedAt = time.Now().Unix()
|
||||||
|
|
||||||
var libWriter = &Writer{
|
var libWriter = &Writer{
|
||||||
@@ -111,9 +111,9 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
}
|
}
|
||||||
|
|
||||||
if this.lastIPFrom > 0 && fromIPLong > this.lastIPFrom {
|
if this.lastIPFrom > 0 && fromIPLong > this.lastIPFrom {
|
||||||
pieces = append(pieces, "+"+types.String(fromIPLong-this.lastIPFrom))
|
pieces = append(pieces, "+"+this.formatUint64(fromIPLong-this.lastIPFrom))
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(fromIPLong))
|
pieces = append(pieces, this.formatUint64(fromIPLong))
|
||||||
}
|
}
|
||||||
this.lastIPFrom = fromIPLong
|
this.lastIPFrom = fromIPLong
|
||||||
if ipFrom == ipTo {
|
if ipFrom == ipTo {
|
||||||
@@ -121,7 +121,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
} else {
|
} else {
|
||||||
// 2
|
// 2
|
||||||
pieces = append(pieces, types.String(toIPLong-fromIPLong))
|
pieces = append(pieces, this.formatUint64(toIPLong-fromIPLong))
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3
|
// 3
|
||||||
@@ -129,7 +129,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
if countryId == this.lastCountryId {
|
if countryId == this.lastCountryId {
|
||||||
pieces = append(pieces, "+")
|
pieces = append(pieces, "+")
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(countryId))
|
pieces = append(pieces, this.formatUint64(uint64(countryId)))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
@@ -141,7 +141,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
if provinceId == this.lastProvinceId {
|
if provinceId == this.lastProvinceId {
|
||||||
pieces = append(pieces, "+")
|
pieces = append(pieces, "+")
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(provinceId))
|
pieces = append(pieces, this.formatUint64(uint64(provinceId)))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
@@ -153,7 +153,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
if cityId == this.lastCityId {
|
if cityId == this.lastCityId {
|
||||||
pieces = append(pieces, "+")
|
pieces = append(pieces, "+")
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(cityId))
|
pieces = append(pieces, this.formatUint64(uint64(cityId)))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
@@ -165,7 +165,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
if townId == this.lastTownId {
|
if townId == this.lastTownId {
|
||||||
pieces = append(pieces, "+")
|
pieces = append(pieces, "+")
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(townId))
|
pieces = append(pieces, this.formatUint64(uint64(townId)))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
@@ -177,7 +177,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
if providerId == this.lastProviderId {
|
if providerId == this.lastProviderId {
|
||||||
pieces = append(pieces, "+")
|
pieces = append(pieces, "+")
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, types.String(providerId))
|
pieces = append(pieces, this.formatUint64(uint64(providerId)))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pieces = append(pieces, "")
|
pieces = append(pieces, "")
|
||||||
@@ -196,3 +196,7 @@ func (this *Writer) Write(ipFrom string, ipTo string, countryId int64, provinceI
|
|||||||
func (this *Writer) Sum() string {
|
func (this *Writer) Sum() string {
|
||||||
return this.writer.Sum()
|
return this.writer.Sum()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Writer) formatUint64(i uint64) string {
|
||||||
|
return strconv.FormatUint(i, 32)
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,11 +10,12 @@ import (
|
|||||||
type FileWriter struct {
|
type FileWriter struct {
|
||||||
fp *os.File
|
fp *os.File
|
||||||
gzWriter *gzip.Writer
|
gzWriter *gzip.Writer
|
||||||
|
password string
|
||||||
|
|
||||||
rawWriter *Writer
|
rawWriter *Writer
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFileWriter(path string, meta *Meta) (*FileWriter, error) {
|
func NewFileWriter(path string, meta *Meta, password string) (*FileWriter, error) {
|
||||||
fp, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
|
fp, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -29,6 +30,7 @@ func NewFileWriter(path string, meta *Meta) (*FileWriter, error) {
|
|||||||
fp: fp,
|
fp: fp,
|
||||||
gzWriter: gzWriter,
|
gzWriter: gzWriter,
|
||||||
rawWriter: NewWriter(gzWriter, meta),
|
rawWriter: NewWriter(gzWriter, meta),
|
||||||
|
password: password,
|
||||||
}
|
}
|
||||||
return writer, nil
|
return writer, nil
|
||||||
}
|
}
|
||||||
@@ -54,5 +56,25 @@ func (this *FileWriter) Close() error {
|
|||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
return err2
|
return err2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 加密内容
|
||||||
|
if len(this.password) > 0 {
|
||||||
|
var filePath = this.fp.Name()
|
||||||
|
data, err := os.ReadFile(filePath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(data) > 0 {
|
||||||
|
encodedData, err := NewEncrypt().Encode(data, this.password)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = os.WriteFile(filePath, encodedData, 0666)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestNewFileWriter(t *testing.T) {
|
func TestNewFileWriter(t *testing.T) {
|
||||||
writer, err := iplibrary.NewFileWriter("./internal-ip-library.db", &iplibrary.Meta{
|
writer, err := iplibrary.NewFileWriter("./internal-ip-library-test.db", &iplibrary.Meta{
|
||||||
Author: "GoEdge",
|
Author: "GoEdge",
|
||||||
})
|
}, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,7 @@ func TestNewFileWriter(t *testing.T) {
|
|||||||
return types.String(rands.Int(0, 255))
|
return types.String(rands.Int(0, 255))
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < 1_000_000; i++ {
|
for i := 0; i < 1; i++ {
|
||||||
err = writer.Write(n()+"."+n()+"."+n()+"."+n(), n()+"."+n()+"."+n()+"."+n(), int64(i)+100, 201, 301, 401, 501)
|
err = writer.Write(n()+"."+n()+"."+n()+"."+n(), n()+"."+n()+"."+n()+"."+n(), int64(i)+100, 201, 301, 401, 501)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ type AES256CFBMethod struct {
|
|||||||
|
|
||||||
func (this *AES256CFBMethod) Init(key, iv []byte) error {
|
func (this *AES256CFBMethod) Init(key, iv []byte) error {
|
||||||
// 判断key是否为32长度
|
// 判断key是否为32长度
|
||||||
l := len(key)
|
var l = len(key)
|
||||||
if l > 32 {
|
if l > 32 {
|
||||||
key = key[:32]
|
key = key[:32]
|
||||||
} else if l < 32 {
|
} else if l < 32 {
|
||||||
@@ -27,7 +27,7 @@ func (this *AES256CFBMethod) Init(key, iv []byte) error {
|
|||||||
this.block = block
|
this.block = block
|
||||||
|
|
||||||
// 判断iv长度
|
// 判断iv长度
|
||||||
l2 := len(iv)
|
var l2 = len(iv)
|
||||||
if l2 > aes.BlockSize {
|
if l2 > aes.BlockSize {
|
||||||
iv = iv[:aes.BlockSize]
|
iv = iv[:aes.BlockSize]
|
||||||
} else if l2 < aes.BlockSize {
|
} else if l2 < aes.BlockSize {
|
||||||
@@ -49,7 +49,7 @@ func (this *AES256CFBMethod) Encrypt(src []byte) (dst []byte, err error) {
|
|||||||
|
|
||||||
dst = make([]byte, len(src))
|
dst = make([]byte, len(src))
|
||||||
|
|
||||||
encrypter := cipher.NewCFBEncrypter(this.block, this.iv)
|
var encrypter = cipher.NewCFBEncrypter(this.block, this.iv)
|
||||||
encrypter.XORKeyStream(dst, src)
|
encrypter.XORKeyStream(dst, src)
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -65,7 +65,7 @@ func (this *AES256CFBMethod) Decrypt(dst []byte) (src []byte, err error) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
src = make([]byte, len(dst))
|
src = make([]byte, len(dst))
|
||||||
decrypter := cipher.NewCFBDecrypter(this.block, this.iv)
|
var decrypter = cipher.NewCFBDecrypter(this.block, this.iv)
|
||||||
decrypter.XORKeyStream(src, dst)
|
decrypter.XORKeyStream(src, dst)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ type IPLibraryFile struct {
|
|||||||
Cities []*IPLibraryFile_City `protobuf:"bytes,12,rep,name=cities,proto3" json:"cities,omitempty"`
|
Cities []*IPLibraryFile_City `protobuf:"bytes,12,rep,name=cities,proto3" json:"cities,omitempty"`
|
||||||
Towns []*IPLibraryFile_Town `protobuf:"bytes,13,rep,name=towns,proto3" json:"towns,omitempty"`
|
Towns []*IPLibraryFile_Town `protobuf:"bytes,13,rep,name=towns,proto3" json:"towns,omitempty"`
|
||||||
ProviderNames []string `protobuf:"bytes,14,rep,name=providerNames,proto3" json:"providerNames,omitempty"`
|
ProviderNames []string `protobuf:"bytes,14,rep,name=providerNames,proto3" json:"providerNames,omitempty"`
|
||||||
|
Password string `protobuf:"bytes,15,opt,name=password,proto3" json:"password,omitempty"` // 密码
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *IPLibraryFile) Reset() {
|
func (x *IPLibraryFile) Reset() {
|
||||||
@@ -176,6 +177,13 @@ func (x *IPLibraryFile) GetProviderNames() []string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *IPLibraryFile) GetPassword() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Password
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
type IPLibraryFile_Province struct {
|
type IPLibraryFile_Province struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@@ -370,7 +378,7 @@ var File_models_model_ip_library_file_proto protoreflect.FileDescriptor
|
|||||||
var file_models_model_ip_library_file_proto_rawDesc = []byte{
|
var file_models_model_ip_library_file_proto_rawDesc = []byte{
|
||||||
0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69,
|
0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69,
|
||||||
0x70, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70,
|
0x70, 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70,
|
||||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xb8, 0x06, 0x0a, 0x0d, 0x49, 0x50, 0x4c,
|
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xd4, 0x06, 0x0a, 0x0d, 0x49, 0x50, 0x4c,
|
||||||
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
|
||||||
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
|
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
|
||||||
@@ -402,28 +410,29 @@ var file_models_model_ip_library_file_proto_rawDesc = []byte{
|
|||||||
0x6f, 0x77, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x77, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72,
|
0x6f, 0x77, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x77, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72,
|
||||||
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28,
|
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28,
|
||||||
0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73,
|
0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73,
|
||||||
0x1a, 0x50, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b,
|
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01,
|
||||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x50, 0x0a, 0x08,
|
||||||
0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22,
|
0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e,
|
||||||
0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61,
|
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72,
|
||||||
0x6d, 0x65, 0x1a, 0x68, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f,
|
0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x68,
|
||||||
0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c,
|
0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72,
|
||||||
0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
|
0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75,
|
||||||
0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
|
0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76,
|
||||||
0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
|
0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
|
||||||
0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x84, 0x01, 0x0a,
|
0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
|
||||||
0x04, 0x54, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
|
0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||||
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e,
|
0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x84, 0x01, 0x0a, 0x04, 0x54, 0x6f, 0x77,
|
||||||
0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69,
|
0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e,
|
||||||
0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63,
|
0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e,
|
||||||
0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63,
|
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69,
|
||||||
0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e,
|
0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e,
|
||||||
0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e,
|
0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e,
|
||||||
0x61, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18,
|
||||||
0x74, 0x6f, 0x33,
|
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42,
|
||||||
|
0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -311,6 +311,7 @@ type CreateIPLibraryFileRequest struct {
|
|||||||
CitiesJSON []byte `protobuf:"bytes,7,opt,name=citiesJSON,proto3" json:"citiesJSON,omitempty"`
|
CitiesJSON []byte `protobuf:"bytes,7,opt,name=citiesJSON,proto3" json:"citiesJSON,omitempty"`
|
||||||
TownsJSON []byte `protobuf:"bytes,8,opt,name=townsJSON,proto3" json:"townsJSON,omitempty"`
|
TownsJSON []byte `protobuf:"bytes,8,opt,name=townsJSON,proto3" json:"townsJSON,omitempty"`
|
||||||
ProvidersJSON []byte `protobuf:"bytes,9,opt,name=providersJSON,proto3" json:"providersJSON,omitempty"`
|
ProvidersJSON []byte `protobuf:"bytes,9,opt,name=providersJSON,proto3" json:"providersJSON,omitempty"`
|
||||||
|
Password string `protobuf:"bytes,10,opt,name=password,proto3" json:"password,omitempty"` // 密码
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *CreateIPLibraryFileRequest) Reset() {
|
func (x *CreateIPLibraryFileRequest) Reset() {
|
||||||
@@ -408,6 +409,13 @@ func (x *CreateIPLibraryFileRequest) GetProvidersJSON() []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *CreateIPLibraryFileRequest) GetPassword() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Password
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
type CreateIPLibraryFileResponse struct {
|
type CreateIPLibraryFileResponse struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@@ -1444,7 +1452,7 @@ var file_service_ip_library_file_proto_rawDesc = []byte{
|
|||||||
0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
|
0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
||||||
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xb6, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
0x79, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xd2, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||||
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
|
0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70,
|
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70,
|
||||||
@@ -1463,227 +1471,229 @@ var file_service_ip_library_file_proto_rawDesc = []byte{
|
|||||||
0x77, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74,
|
0x77, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74,
|
||||||
0x6f, 0x77, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76,
|
0x6f, 0x77, 0x6e, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76,
|
||||||
0x69, 0x64, 0x65, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
0x69, 0x64, 0x65, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||||
0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x47,
|
0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1a,
|
||||||
0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a,
|
0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x47, 0x0a, 0x1b, 0x43, 0x72,
|
||||||
0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b,
|
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c,
|
0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75,
|
0x65, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e,
|
||||||
0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x88, 0x02,
|
|
||||||
0x0a, 0x29, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
|
|
||||||
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
|
||||||
0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x6d,
|
|
||||||
0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
|
|
||||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
|
|
||||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c,
|
|
||||||
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70,
|
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e,
|
|
||||||
0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e,
|
|
||||||
0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x71, 0x0a, 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
|
|
||||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
|
||||||
0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f,
|
|
||||||
0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x69, 0x6d,
|
|
||||||
0x69, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20,
|
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43,
|
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43,
|
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x54, 0x0a, 0x28, 0x43, 0x68, 0x65, 0x63,
|
|
||||||
0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69,
|
|
||||||
0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xb0,
|
|
||||||
0x02, 0x0a, 0x29, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
|
|
||||||
0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
|
||||||
0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10,
|
|
||||||
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73,
|
|
||||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63,
|
|
||||||
0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73,
|
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f,
|
|
||||||
0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72,
|
|
||||||
0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x97, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x73, 0x73,
|
|
||||||
0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63,
|
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
|
||||||
0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a,
|
|
||||||
0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
|
||||||
0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d,
|
|
||||||
0x65, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76,
|
|
||||||
0x69, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
|
|
||||||
0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52,
|
|
||||||
0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
|
|
||||||
0x73, 0x22, 0x51, 0x0a, 0x25, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
|
||||||
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
|
||||||
0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
|
||||||
0x6c, 0x65, 0x49, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x26, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69,
|
|
||||||
0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
|
||||||
0x5c, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
|
||||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63,
|
|
||||||
0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
|
||||||
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
|
||||||
0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0d,
|
|
||||||
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xa5, 0x01,
|
|
||||||
0x0a, 0x0b, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a,
|
|
||||||
0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
|
|
||||||
0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
|
||||||
0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18,
|
|
||||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e,
|
|
||||||
0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18,
|
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
|
||||||
0x34, 0x0a, 0x0d, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
|
||||||
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69,
|
|
||||||
0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43,
|
|
||||||
0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x24, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f,
|
|
||||||
0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a,
|
|
||||||
0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xc4, 0x02, 0x0a, 0x25, 0x43, 0x68, 0x65, 0x63,
|
|
||||||
0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
|
||||||
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
|
||||||
0x65, 0x12, 0x59, 0x0a, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e,
|
|
||||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65,
|
|
||||||
0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
|
||||||
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
|
||||||
0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x52, 0x0c,
|
|
||||||
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x1a, 0xbf, 0x01, 0x0a,
|
|
||||||
0x0b, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b,
|
|
||||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
||||||
0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22,
|
|
||||||
0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61,
|
|
||||||
0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a,
|
|
||||||
0x0a, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
|
|
||||||
0x52, 0x08, 0x74, 0x6f, 0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x69,
|
|
||||||
0x6d, 0x69, 0x6c, 0x61, 0x72, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
|
|
||||||
0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x77, 0x6e,
|
|
||||||
0x52, 0x0c, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x22, 0x54,
|
|
||||||
0x0a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
|
|
||||||
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
|
||||||
0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
|
||||||
0x6c, 0x65, 0x49, 0x64, 0x22, 0x8d, 0x02, 0x0a, 0x29, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72,
|
|
||||||
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
|
||||||
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
|
||||||
0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f,
|
|
||||||
0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70,
|
|
||||||
0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
|
|
||||||
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
|
||||||
0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73,
|
|
||||||
0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x10, 0x6d, 0x69, 0x73,
|
|
||||||
0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x75, 0x0a,
|
|
||||||
0x0f, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
|
|
||||||
0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
|
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
|
|
||||||
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50,
|
|
||||||
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
|
|
||||||
0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
|
|
||||||
0x65, 0x72, 0x52, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69,
|
|
||||||
0x64, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
|
|
||||||
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69,
|
|
||||||
0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x4e,
|
|
||||||
0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69,
|
|
||||||
0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x46,
|
|
||||||
0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f,
|
|
||||||
0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18,
|
|
||||||
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x32, 0x93, 0x0a, 0x0a, 0x14, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
|
||||||
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
|
|
||||||
0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
|
|
||||||
0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73,
|
|
||||||
0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e,
|
|
||||||
0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
|
||||||
0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e,
|
|
||||||
0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49,
|
|
||||||
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73,
|
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
|
|
||||||
0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
|
||||||
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
|
|
||||||
0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49,
|
|
||||||
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
|
|
||||||
0x6c, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
|
||||||
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
|
||||||
0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
|
||||||
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
|
|
||||||
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x50,
|
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
|
||||||
0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c,
|
|
||||||
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e,
|
|
||||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
|
||||||
0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e,
|
|
||||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
|
||||||
0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x21,
|
|
||||||
0x63, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69,
|
|
||||||
0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49,
|
|
||||||
0x64, 0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e,
|
|
||||||
0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
||||||
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||||
0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
|
0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
||||||
0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72,
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80,
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x29, 0x43, 0x68,
|
||||||
0x01, 0x0a, 0x21, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
|
0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68,
|
||||||
0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52,
|
||||||
0x6c, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50,
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69,
|
||||||
0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69,
|
0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||||
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e,
|
||||||
0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f,
|
0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
||||||
|
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
|
0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x52,
|
||||||
|
0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65,
|
||||||
|
0x73, 0x1a, 0x71, 0x0a, 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e,
|
||||||
|
0x74, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61,
|
||||||
|
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72,
|
||||||
|
0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72,
|
||||||
|
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
|
0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
|
0x72, 0x79, 0x52, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
|
0x72, 0x69, 0x65, 0x73, 0x22, 0x54, 0x0a, 0x28, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f,
|
||||||
|
0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
||||||
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x29, 0x43,
|
||||||
|
0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74,
|
||||||
|
0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
||||||
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73,
|
||||||
|
0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
|
||||||
|
0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f,
|
||||||
0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
||||||
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
0x65, 0x12, 0x77, 0x0a, 0x1e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
|
||||||
|
0x65, 0x52, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e,
|
||||||
|
0x63, 0x65, 0x73, 0x1a, 0x97, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50,
|
||||||
|
0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
|
0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f,
|
||||||
|
0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f,
|
||||||
|
0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a,
|
||||||
|
0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65,
|
||||||
|
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67,
|
||||||
|
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x10, 0x73, 0x69, 0x6d,
|
||||||
|
0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x51, 0x0a,
|
||||||
|
0x25, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68,
|
||||||
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72,
|
||||||
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
|
0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
||||||
|
0x22, 0xae, 0x02, 0x0a, 0x26, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
||||||
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x65, 0x49, 0x64, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69,
|
0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0d, 0x6d,
|
||||||
0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a,
|
0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74,
|
||||||
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57,
|
0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
||||||
|
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
|
||||||
|
0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6d, 0x69, 0x73, 0x73,
|
||||||
|
0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xa5, 0x01, 0x0a, 0x0b, 0x4d, 0x69,
|
||||||
|
0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75,
|
||||||
|
0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
|
||||||
|
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70,
|
||||||
|
0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
||||||
|
0x1a, 0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0d, 0x73,
|
||||||
|
0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03,
|
||||||
|
0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69,
|
||||||
|
0x74, 0x79, 0x52, 0x0d, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x43, 0x69, 0x74, 0x69, 0x65,
|
||||||
|
0x73, 0x22, 0x50, 0x0a, 0x24, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57,
|
||||||
0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
||||||
0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x63, 0x68,
|
0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c,
|
||||||
0x65, 0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69,
|
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x28, 0x2e, 0x70, 0x62,
|
0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49,
|
0x65, 0x49, 0x64, 0x22, 0xc4, 0x02, 0x0a, 0x25, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x77,
|
||||||
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65,
|
0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
|
0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a,
|
||||||
0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x18, 0x01, 0x20,
|
||||||
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f,
|
||||||
0x12, 0x80, 0x01, 0x0a, 0x21, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
|
0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
||||||
|
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
|
||||||
|
0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x52, 0x0c, 0x6d, 0x69, 0x73, 0x73,
|
||||||
|
0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x1a, 0xbf, 0x01, 0x0a, 0x0b, 0x4d, 0x69, 0x73,
|
||||||
|
0x73, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e,
|
||||||
|
0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
|
||||||
|
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72,
|
||||||
|
0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
|
0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a,
|
||||||
|
0x0a, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
||||||
|
0x52, 0x08, 0x63, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f,
|
||||||
|
0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f,
|
||||||
|
0x77, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61,
|
||||||
|
0x72, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70,
|
||||||
|
0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x77, 0x6e, 0x52, 0x0c, 0x73, 0x69,
|
||||||
|
0x6d, 0x69, 0x6c, 0x61, 0x72, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x22, 0x54, 0x0a, 0x28, 0x43, 0x68,
|
||||||
|
0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68,
|
||||||
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72,
|
||||||
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
|
0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
||||||
|
0x22, 0x8d, 0x02, 0x0a, 0x29, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
|
||||||
0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
||||||
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63,
|
0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69,
|
||||||
0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50,
|
0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
|
||||||
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71,
|
0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50,
|
0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68,
|
||||||
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69,
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52,
|
||||||
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50,
|
||||||
0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49,
|
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
|
||||||
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x70,
|
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x75, 0x0a, 0x0f, 0x4d, 0x69, 0x73,
|
||||||
0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c,
|
||||||
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e,
|
0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x55,
|
0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x12, 0x3e, 0x0a, 0x10, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x26, 0x2e,
|
0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e,
|
||||||
0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x10,
|
||||||
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65,
|
0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75,
|
0x22, 0x48, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69,
|
||||||
0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49,
|
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x70,
|
0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62,
|
||||||
0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70,
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x22, 0x55, 0x70,
|
||||||
0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04,
|
0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x1a, 0x44, 0x65,
|
||||||
|
0x6c, 0x65, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x70, 0x4c, 0x69,
|
||||||
|
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x03, 0x52, 0x0f, 0x69, 0x70, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
||||||
|
0x49, 0x64, 0x32, 0x93, 0x0a, 0x0a, 0x14, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
||||||
|
0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66,
|
||||||
|
0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50,
|
||||||
|
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x70,
|
||||||
|
0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
||||||
|
0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
|
||||||
|
0x41, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
|
0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66, 0x69,
|
||||||
|
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
||||||
|
0x69, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
|
||||||
|
0x6c, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66,
|
||||||
|
0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
|
||||||
|
0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a,
|
||||||
|
0x11, 0x66, 0x69, 0x6e, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
||||||
|
0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x50, 0x4c, 0x69,
|
||||||
|
0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
||||||
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||||
|
0x56, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
||||||
|
0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||||
|
0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||||
|
0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52,
|
||||||
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x21, 0x63, 0x68, 0x65, 0x63,
|
||||||
|
0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50,
|
||||||
|
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x2e,
|
||||||
|
0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65,
|
||||||
|
0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
||||||
|
0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x62,
|
||||||
|
0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57,
|
||||||
|
0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
||||||
|
0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x21, 0x63,
|
||||||
|
0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74,
|
||||||
|
0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64,
|
||||||
|
0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69,
|
||||||
|
0x6e, 0x63, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
||||||
|
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d,
|
||||||
|
0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63,
|
||||||
|
0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
||||||
|
0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a,
|
||||||
|
0x1e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68,
|
||||||
|
0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12,
|
||||||
|
0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73,
|
||||||
|
0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x2e,
|
||||||
|
0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49,
|
||||||
|
0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65,
|
||||||
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54,
|
||||||
|
0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
||||||
|
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65,
|
||||||
|
0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
|
0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x77, 0x6e,
|
||||||
|
0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
||||||
|
0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a,
|
||||||
|
0x21, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57,
|
||||||
|
0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65,
|
||||||
|
0x49, 0x64, 0x12, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f,
|
||||||
|
0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72,
|
||||||
|
0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x1a, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69,
|
||||||
|
0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
|
||||||
|
0x79, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||||
|
0x49, 0x0a, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65,
|
||||||
|
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
|
||||||
|
0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e,
|
||||||
|
0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70,
|
||||||
|
0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55,
|
||||||
|
0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69,
|
||||||
|
0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
|
0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
|
||||||
|
0x73, 0x12, 0x45, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62,
|
||||||
|
0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65,
|
||||||
|
0x6c, 0x65, 0x74, 0x65, 0x49, 0x50, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x69, 0x6c,
|
||||||
|
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50,
|
||||||
|
0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62,
|
||||||
|
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ message IPLibraryFile {
|
|||||||
repeated City cities = 12;
|
repeated City cities = 12;
|
||||||
repeated Town towns = 13;
|
repeated Town towns = 13;
|
||||||
repeated string providerNames = 14;
|
repeated string providerNames = 14;
|
||||||
|
string password = 15; // 密码
|
||||||
|
|
||||||
message Province {
|
message Province {
|
||||||
string countryName = 1;
|
string countryName = 1;
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ message CreateIPLibraryFileRequest {
|
|||||||
bytes citiesJSON = 7;
|
bytes citiesJSON = 7;
|
||||||
bytes townsJSON = 8;
|
bytes townsJSON = 8;
|
||||||
bytes providersJSON = 9;
|
bytes providersJSON = 9;
|
||||||
|
string password = 10; // 密码
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateIPLibraryFileResponse {
|
message CreateIPLibraryFileResponse {
|
||||||
|
|||||||
Reference in New Issue
Block a user