diff --git a/protoc-gen-gokit-base/Makefile b/protoc-gen-gokit-base/Makefile index 4de7ca0..5ee0edf 100644 --- a/protoc-gen-gokit-base/Makefile +++ b/protoc-gen-gokit-base/Makefile @@ -10,10 +10,10 @@ GENERATED_OUT_PATH=./generate/gokit-base-cmd all: build-generated-code gobindata: - go-bindata -o template.go template/... + go-bindata -pkg template -o ./template/template.go template_files/... $(PLUGIN): gobindata - go build + go build ./cmd/protoc-gen-gokit-base code-generation: $(PLUGIN) mkdir ./generate diff --git a/protoc-gen-gokit-base/main.go b/protoc-gen-gokit-base/cmd/protoc-gen-gokit-base/main.go similarity index 94% rename from protoc-gen-gokit-base/main.go rename to protoc-gen-gokit-base/cmd/protoc-gen-gokit-base/main.go index a0aa72a..5061874 100644 --- a/protoc-gen-gokit-base/main.go +++ b/protoc-gen-gokit-base/cmd/protoc-gen-gokit-base/main.go @@ -13,6 +13,7 @@ import ( "strings" "text/template" + templateFiles "github.com/TuneLab/gob/protoc-gen-gokit-base/template" "github.com/gengo/grpc-gateway/protoc-gen-grpc-gateway/descriptor" _ "github.com/gengo/grpc-gateway/protoc-gen-grpc-gateway/generator" "github.com/golang/glog" @@ -84,15 +85,15 @@ func main() { glog.V(1).Info("Building Output") var codeGenFiles []*plugin.CodeGeneratorResponse_File - for _, file := range AssetNames() { + for _, file := range templateFiles.AssetNames() { //logf("%v\n", paths) curResponseFile := plugin.CodeGeneratorResponse_File{} // Remove "template/" so that generated files do not include that directory - d := strings.TrimPrefix(file, "template/") + d := strings.TrimPrefix(file, "template_files/") curResponseFile.Name = &d - bytesOfFile, _ := Asset(file) + bytesOfFile, _ := templateFiles.Asset(file) stringFile := string(bytesOfFile) if path.Base(file) == "main.go" { headerTemplate, _ = template.New("main.go").Parse(stringFile) @@ -126,15 +127,6 @@ type generator struct { func New(reg *descriptor.Registry) *generator { var imports []descriptor.GoPackage for _, pkgpath := range []string{ - //"io", - //"net/http", - //"github.com/gengo/grpc-gateway/runtime", - //"github.com/gengo/grpc-gateway/utilities", - //"github.com/golang/protobuf/proto", - //"golang.org/x/net/context", - //"google.golang.org/grpc", - //"google.golang.org/grpc/codes", - //"google.golang.org/grpc/grpclog", "fmt", "log", "math/rand", @@ -150,7 +142,6 @@ func New(reg *descriptor.Registry) *generator { "github.com/TuneLab/gob/protoc-gen-gokit-base/generate/controller", "github.com/TuneLab/gob/protoc-gen-gokit-base/generate/pb", "github.com/TuneLab/gob/protoc-gen-gokit-base/generate/server", - "google.golang.org/grpc", } { pkg := descriptor.GoPackage{ diff --git a/protoc-gen-gokit-base/template/template.go b/protoc-gen-gokit-base/template/template.go new file mode 100644 index 0000000..5ccecb2 --- /dev/null +++ b/protoc-gen-gokit-base/template/template.go @@ -0,0 +1,527 @@ +// Code generated by go-bindata. +// sources: +// template_files/controller/controller.go +// template_files/entityhelper/entity_helper.go +// template_files/entityhelper/exchange_rate.go +// template_files/gokit-base-cmd/grpc_binding.go +// template_files/gokit-base-cmd/main.go +// template_files/gokit-base-cmd/pure_service.go +// template_files/mv-shared/mysql/mysql.go +// template_files/pb/compile.sh +// template_files/pb/exchange_rate.pb.go +// template_files/pb/exchange_rate.proto +// template_files/pb/service.pb.go +// template_files/pb/service.proto +// template_files/server/service.go +// DO NOT EDIT! + +package template + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" + "time" +) + +func bindataRead(data []byte, name string) ([]byte, error) { + gz, err := gzip.NewReader(bytes.NewBuffer(data)) + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + + var buf bytes.Buffer + _, err = io.Copy(&buf, gz) + clErr := gz.Close() + + if err != nil { + return nil, fmt.Errorf("Read %q: %v", name, err) + } + if clErr != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +type asset struct { + bytes []byte + info os.FileInfo +} + +type bindataFileInfo struct { + name string + size int64 + mode os.FileMode + modTime time.Time +} + +func (fi bindataFileInfo) Name() string { + return fi.name +} +func (fi bindataFileInfo) Size() int64 { + return fi.size +} +func (fi bindataFileInfo) Mode() os.FileMode { + return fi.mode +} +func (fi bindataFileInfo) ModTime() time.Time { + return fi.modTime +} +func (fi bindataFileInfo) IsDir() bool { + return false +} +func (fi bindataFileInfo) Sys() interface{} { + return nil +} + +var _template_filesControllerControllerGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x56\x4d\x6f\xe3\x36\x10\x3d\x4b\xbf\x62\x56\x40\x02\x29\x75\xe4\xb4\x5d\xf4\x60\xc0\x08\x76\xf3\xd1\x1a\x75\x93\xc2\x71\x0e\xc5\x62\x91\xd0\x32\x65\xab\x91\x48\x85\xa2\xd2\x06\x86\xff\x7b\x67\x44\x7d\xd9\x96\x93\x6c\xb1\xed\xfa\x12\x91\x33\xe4\xbc\x79\xf3\x66\x98\x94\x05\x0f\x6c\xc1\x21\x90\x42\x2b\x19\xc7\x5c\xd9\x76\x94\xa4\x52\x69\x70\x6d\xcb\x09\x13\xed\xe0\x9f\x4c\xab\x48\x2c\x32\xc7\xc6\xef\x45\xa4\x97\xf9\xcc\x0f\x64\xd2\x9f\xe6\x82\x8f\xd9\xac\xbf\x90\xb3\x7e\xaa\xa4\x96\xc1\xf1\x82\x8b\xe3\x85\x7c\x88\xf4\xf1\x8c\x65\xbc\x8f\x4b\xae\x98\xe6\x7d\x2e\x74\xa4\x9f\x97\x3c\x4e\xb9\x72\xfe\xf5\x2d\xe9\xcc\xb1\x3d\xdb\xd6\xcf\x29\x87\xb3\x1a\x31\x20\xbc\x3c\xd0\xb0\xb2\xad\x8b\x22\xcc\x2f\x45\x18\x38\x6a\x07\xf5\xdb\x26\x7b\x6d\xdb\x4f\x4c\x41\xcc\x32\x3d\x96\x6c\xce\xe7\x60\x52\x2c\xef\xbe\x4e\xb9\xb8\xf8\x3b\x58\x32\xb1\xe0\x13\x9e\xe5\xb1\x6e\xc5\xf8\x88\x90\xa0\xf8\x99\x33\xd0\xfe\xdd\xff\x99\x49\x31\x70\x08\xb6\x73\x6f\x5b\xd3\x28\xe1\x99\x66\x49\x0a\x91\xd0\x3f\xbd\x87\x2e\x5f\x5d\xf9\xd0\x81\x09\xa6\x99\x15\xd6\x84\xa5\x9f\x4c\x80\xcf\x61\x2c\x99\xfe\xf1\x87\xea\x00\x51\x91\xa1\x33\x26\x11\xe6\x22\x00\x37\x80\xa3\x86\x0d\x0f\x7e\xe6\xba\x9d\xac\xeb\xbd\xc0\x04\x25\x14\x85\x10\x6c\x6e\x0e\x87\x20\xa2\x98\x6c\xd6\xb6\x05\x0e\xf7\xde\xb5\x5a\xdb\x16\x62\xb2\x14\xd7\xb9\x12\x5b\x77\xd6\x68\x2f\xa5\x4a\x98\x3e\xcb\x95\xe2\x22\x78\x3e\x93\x73\xee\x62\x9a\x25\x97\x5e\xc5\xe9\xaa\xbe\xa6\xd4\x9e\x3f\x95\xb7\x29\x65\x83\x6b\x6f\x6f\xea\x75\xd1\x90\x22\xa4\x81\xfe\xb8\x8a\x3f\xc2\x51\x3a\xf3\x3b\x6c\x13\xfe\x98\x23\xf7\x1e\xb8\x7b\x1d\xb2\x54\x8a\x8c\xf7\x80\x2b\x25\x31\x40\x81\xeb\xd1\xbf\x54\x32\xa9\x52\x40\x4e\x3a\x72\xda\xf6\xf2\xcc\xc1\xa9\x7c\xfd\x58\xe3\x83\x5a\xb7\xfe\x5a\x72\xc5\x6f\x90\xa1\xc1\x10\xee\x83\xd2\x70\x17\xa0\x33\x8c\xae\xc0\x3d\xed\xc1\xa9\x87\xc2\x61\x6a\x91\x91\xcb\xa7\xcf\xa8\x34\xae\x42\x16\xf0\xd5\x9a\x0a\xb8\x0d\xa4\x57\xee\x35\x51\x7a\xa6\x6c\x28\x03\xda\x3f\xc7\xb4\xe1\xdd\x10\x1c\xa7\xa8\x7f\x1d\x7e\x08\xf5\xe7\x77\xe0\xc0\x87\xab\x73\x98\x93\xeb\x10\x4e\xcd\x82\xc7\x5c\x63\x23\x8d\x6e\xe0\xea\x76\x3c\xc6\x26\x37\x98\x86\xc0\xb0\x6e\x62\xee\xd2\xaa\x57\x87\x40\x3e\xd6\xc0\x63\x6c\xa5\x57\xa3\x6c\x5e\x0c\xd7\x93\xf3\x8b\x09\x7c\xfc\xc3\x84\x3f\xbf\xb8\x39\x83\xf1\xe8\xb7\xd1\x14\xde\x3b\xa5\xfe\xa8\x3f\x8a\x8a\x11\x21\x81\xbf\xd3\x0f\xfe\x65\x24\xe6\xed\x6a\x67\x6e\x15\xb5\x07\x06\x66\xc8\x10\x9a\x57\x90\x42\xf7\xbc\x6b\x1a\xa2\x94\x25\x2e\xd1\x2b\xd1\xfe\x05\x09\x23\x74\x9d\x0e\xf5\xc0\x31\x1c\x3c\x39\x05\x12\xcf\x40\xa3\xa1\x13\x62\x31\x0a\x6b\xd9\xd6\xb6\x15\x4a\x05\x77\x48\x0d\xc1\x55\x74\x07\x14\x29\xf8\x66\xf4\x64\x45\x58\xaa\x8e\xdf\x96\x0a\x35\xe9\x8e\x14\xc9\xd3\xaa\x03\x0c\xab\x10\xae\xf2\x27\x86\x73\xcb\x9a\x29\xce\x1e\xf0\x63\xdd\x20\xd2\xf2\x2b\xe2\x69\x29\xbc\x40\x53\x5e\xfe\x16\x2c\x78\x67\x83\x7d\x08\x27\xfe\x09\x1c\x1e\x56\xe8\xca\x8d\x2f\x2f\xc1\xad\x60\xb3\x98\xe3\x35\x80\x00\xe6\x45\x2a\x40\x19\x52\x28\x38\xc8\x80\x89\x39\x19\x0f\x32\xa7\xb7\x43\x68\x0f\xb6\x1b\xb2\x52\x6d\x07\xd6\xaf\x0e\xad\x03\xd0\x06\x80\xff\x8a\x99\x36\x1b\x9b\xb9\x63\x91\x4c\xd0\x91\xd0\xa4\x0e\x9c\x35\x6e\x89\xe2\x08\xbe\x3f\x29\x7e\xe8\x57\x31\xd3\xf2\xaa\xc9\x6a\xf9\xd5\x33\xfe\xf0\xe5\xe9\x4b\x99\xb5\x49\x18\xec\xd6\x09\x3d\x1a\xa4\x03\x7c\x3e\x77\x46\x9c\x45\x53\x67\x50\x3f\xbe\xd5\x1c\x22\xcb\x64\xc3\x52\xe9\xd4\xad\x3e\xea\x8c\x3d\xe8\xd7\xd6\x56\x8a\x9e\xe7\xd1\x08\xed\x11\xed\x6f\x7a\x99\x70\xff\x89\x2b\xdd\xf9\x32\x95\xb6\xfd\x2f\x53\xed\xf0\xcd\x5f\xa6\x7e\x9f\x44\x28\xa4\x36\xca\xc9\x52\x1e\x44\x61\x14\x18\x31\xe9\xa5\x99\x1a\xf5\xbb\xb2\x2b\xd5\xf6\x8c\xee\x7a\xb8\xf7\xaa\xa2\xa0\x66\xf5\x8a\x22\xa0\xad\x87\x2d\x35\x80\xd1\x42\xa5\x81\xb5\x67\x06\xda\xd6\xa4\xdf\xe8\x26\xb4\x99\x41\x65\x35\xc9\x34\x23\x8d\x86\x63\xf9\xa8\xed\x57\xf5\x56\xe5\xfe\x5f\x55\x57\xa8\xc9\xf2\x21\x91\xb9\xd0\x83\x96\xc5\xec\x14\xa7\x8a\x19\x3f\xd8\xea\x85\xc6\x07\x5b\xa0\xba\xea\x0d\xaa\xbf\xd1\x4c\xe7\x59\x2d\x74\xb3\xdc\xd4\x76\xb5\xd7\x25\xe7\x9a\xc6\x4d\x27\x62\xce\xec\x0c\x80\x8c\x5c\x3d\x45\x01\x37\x3b\x77\xd7\xbf\xbe\x0e\xeb\x77\xfc\x8f\xb2\x06\x45\x8b\x4d\x48\x66\xe7\x45\x40\x6d\x97\x2f\x80\xf3\x4f\x00\x00\x00\xff\xff\x59\xab\xbc\xbc\x6f\x0d\x00\x00") + +func template_filesControllerControllerGoBytes() ([]byte, error) { + return bindataRead( + _template_filesControllerControllerGo, + "template_files/controller/controller.go", + ) +} + +func template_filesControllerControllerGo() (*asset, error) { + bytes, err := template_filesControllerControllerGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/controller/controller.go", size: 3439, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesEntityhelperEntity_helperGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x54\x8f\xc1\x4e\xc3\x30\x0c\x86\xcf\xf5\x53\x98\x9d\xba\x89\x2e\x77\xa4\x9e\x10\x82\x03\x70\xe2\x05\xd2\xe0\xa5\xd1\xda\x24\xb8\x0e\xa8\x42\x7b\x77\x92\x76\x6c\x70\xf4\x9f\xef\xfb\xed\x44\x6d\x8e\xda\x12\x92\x17\x27\x73\x4f\x43\x24\x06\x70\x63\x0c\x2c\x58\x43\xb5\xb1\x4e\xfa\xd4\xed\x4d\x18\xd5\x5b\xf2\xf4\xac\x3b\x65\x43\xa7\x22\x07\x09\xa6\xb1\xe4\x1b\x1b\x8e\x4e\x9a\x4e\x4f\xa4\xf2\x48\xac\x85\xd4\xf8\xd9\x4c\xbd\x66\x7a\x57\xe3\x3c\x7d\x0c\x1b\xd8\x02\xc8\x1c\x09\x1f\x96\x3d\x4f\xcb\x1e\x9c\x84\x93\x11\xfc\x86\x6a\xb7\x60\xfb\xfb\xc1\xe5\x43\xe0\x04\x70\x48\xde\x60\x6d\x70\xf7\x57\xd8\xe2\x23\xc9\x4b\x21\x57\xb0\xde\x62\xfd\xcf\xbc\x45\x62\x0e\x99\xcb\x95\xee\x80\xe6\x1c\x63\xdb\xa2\x77\x43\x49\x2b\x73\x05\xf1\xae\xc5\xd5\x7e\xa5\xaf\xdf\xc6\x8c\x64\xb3\xbc\xde\x5c\xa5\x8a\x49\x12\xfb\x32\x2f\x66\x8e\x4e\xa5\xeb\xd2\x8f\x6b\x2d\x94\xf8\xcc\x9a\xcb\x4d\xd9\xca\x5f\xfa\x09\x00\x00\xff\xff\xc1\x82\x11\x06\x6a\x01\x00\x00") + +func template_filesEntityhelperEntity_helperGoBytes() ([]byte, error) { + return bindataRead( + _template_filesEntityhelperEntity_helperGo, + "template_files/entityhelper/entity_helper.go", + ) +} + +func template_filesEntityhelperEntity_helperGo() (*asset, error) { + bytes, err := template_filesEntityhelperEntity_helperGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/entityhelper/entity_helper.go", size: 362, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesEntityhelperExchange_rateGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x9c\x54\xdf\x4f\xdb\x3a\x14\x7e\x4e\xfe\x8a\x73\x23\x5d\x94\x42\x9a\xde\x67\x24\x1e\x50\x6e\x19\x48\xed\x26\x5a\xa6\x3d\x4c\x13\x38\xc9\x49\x6a\x91\xda\xc1\x76\x60\x11\xe2\x7f\xdf\xb1\xe3\x14\x3a\xb5\x7b\x18\x12\x8a\xcf\xef\xe3\xef\xfb\xdc\x96\x15\x8f\xac\x46\x40\x61\xb8\xe9\x37\xd8\xb4\xa8\xc2\x90\x6f\x5b\xa9\x0c\xc4\x61\x10\x95\xcc\xb0\x9c\x69\x9c\xe9\xa7\x26\x22\xbb\xda\x9a\x28\xa4\x6f\xcd\xcd\xa6\xcb\xd3\x42\x6e\x67\x77\x9d\xc0\x05\xcb\x67\xb5\xcc\x67\xad\x92\x46\x16\xd3\x1a\xc5\xb4\x96\x8f\xdc\x4c\x5d\x2d\x99\xa8\x98\xc1\xd9\xf6\x79\xaa\x37\x4c\x61\x39\xdb\xf6\xbe\xe1\xdf\x35\x6a\xf3\x28\x9c\x84\x61\xd5\x89\x02\xe2\x02\x4e\xe7\x6e\xff\x6b\xb7\xff\x04\xae\xb8\x28\xe7\x3f\x8b\x0d\x13\x35\xae\x28\x5d\xc7\x2f\x1b\x54\x78\xab\x8d\x02\xfa\xe7\xa2\x4e\x80\xa9\x5a\xc3\xf7\x1f\x5c\x18\x54\x15\x2b\xf0\xf5\x2d\x01\x85\x1a\x4d\xc6\x8a\x0d\x42\x2e\x65\x33\x81\xf8\xb4\xcd\xd3\x8f\x9d\xdc\x1c\x8e\x3a\x01\x54\x4a\xd2\xa8\x57\x02\x83\x10\x6a\x10\xce\x2f\x20\x42\x9f\x7a\x6f\x97\xd4\x16\xa8\xa7\x35\xcd\xa4\x10\xe1\x96\xae\x5b\x1a\x6d\xaa\xf8\x61\x3d\x5f\xcc\xb3\xbb\x30\x80\xdf\xfe\x6e\xae\x3e\x7f\x5d\x2c\x62\x5e\x26\xf0\xdf\x04\x2e\xd7\x40\xa7\xa3\x59\x45\xa7\x14\x8a\xa2\xbf\x2f\x64\x89\x63\xc1\xbe\xf3\x68\xad\x5d\x6f\x2c\x71\xe7\xa3\x99\xa5\xcb\x8c\x22\x97\x5a\x1e\x4e\xcd\x2e\xd7\x77\xf1\xb8\x95\x42\x4a\x2a\x77\x25\x84\x87\x1a\x0e\x3e\xf0\xe7\xf2\xad\x2c\x79\xc5\x0f\xd5\x8f\x91\xfd\xfa\xab\xd5\x97\x25\xfc\xab\x1f\x12\x70\x24\x90\x24\x02\x5e\xc1\x3b\xdb\xff\x10\x29\x11\x91\x14\x0c\x44\x5c\x80\xfb\x9c\x41\x04\xdf\xae\xe7\xab\x39\x7d\xcf\xde\xb3\xc3\xe0\x8d\xea\x49\x04\x96\xb0\x93\x23\xcc\xdb\x5e\x2b\xd4\x5d\x63\xf4\x39\xe9\xe7\xa0\x40\x7a\x12\xd3\xd0\xec\x99\x29\xd8\x56\x02\x9c\xdc\xd3\x25\x6b\x57\xf2\x85\xb6\xb0\xba\x8d\x95\x7c\xd1\x70\x6a\xfd\xe4\xd4\x24\xb6\x3d\x2d\xee\xf4\x15\x04\xf4\x38\x55\x7f\x74\x27\x1a\x66\x73\x94\x93\x99\xed\x99\xae\x0b\x26\xe2\x13\x57\x95\xde\x10\x94\xfe\x98\x79\x6d\x64\x4e\x2f\xde\xb9\x72\xfc\x7a\xe3\xff\x8f\x46\x36\x32\xe9\xed\xa5\x27\x60\x42\xd3\x14\x9a\x4e\x09\x70\x01\xb7\xea\x70\xdb\x32\xcf\x1a\x4e\x4e\xe7\xb2\xeb\x14\xe9\x27\x34\x4b\x7b\xf7\x21\x10\x4f\x1c\x3f\x36\x4a\xcc\x08\xde\xb8\xfb\xf9\x6e\x64\xee\x7a\x05\x25\x56\xa8\x60\x6c\x98\x66\x8d\xd4\x18\x5b\x7a\xed\xcc\xf1\x01\xda\x11\x03\xb2\xb7\x1d\xaa\xde\xc2\x18\xbf\xef\x60\xa9\x1e\xde\x79\x62\x39\x70\xda\x28\x1d\xb7\x7b\xcf\xde\xc2\x57\x49\x05\xf7\x09\xf0\x1d\xd2\xca\x42\x0c\x7e\xd6\x3e\x09\x43\x52\x7a\xf8\xa7\xa1\x1f\xd0\xd1\xa9\x97\x08\x71\xcd\xda\x16\x45\x19\x7f\x70\x26\x03\x70\x36\xd5\x2e\xb4\x4b\x21\xc3\x87\x88\xb6\xc9\xa8\x46\x87\x8d\xf2\x37\x0e\xdf\xc2\x5f\x01\x00\x00\xff\xff\x56\xdb\xec\x94\xb3\x05\x00\x00") + +func template_filesEntityhelperExchange_rateGoBytes() ([]byte, error) { + return bindataRead( + _template_filesEntityhelperExchange_rateGo, + "template_files/entityhelper/exchange_rate.go", + ) +} + +func template_filesEntityhelperExchange_rateGo() (*asset, error) { + bytes, err := template_filesEntityhelperExchange_rateGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/entityhelper/exchange_rate.go", size: 1459, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesGokitBaseCmdGrpc_bindingGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x91\x31\x0f\xd3\x30\x10\x85\xe7\xfa\x57\x58\x99\x12\xd4\xc4\xbf\x80\x85\x0a\xb1\x30\xa0\x16\xc1\x6c\xbb\x87\x6b\xb5\xb1\xcd\xf9\x8c\x52\x21\xfe\x3b\x76\x93\x56\x54\x6a\x43\x60\xe9\x92\xc8\xd6\xbb\x7b\xef\x7d\x0e\x52\x1f\xa5\x01\xde\x4b\xeb\x18\xb3\x7d\xf0\x48\xbc\x66\xab\xca\x58\x3a\x24\xd5\x69\xdf\x8b\xcf\xc9\xc1\x47\xa9\x84\xf1\x4a\x04\xf4\xe4\x75\x6b\xc0\xb5\xc6\x1f\x2d\xb5\x4a\x46\x10\xf9\x08\x28\x09\x44\x50\xd5\x7f\xcf\x46\xc0\x1f\x80\x97\x79\x7f\x92\xce\x74\x1e\x8d\x18\x84\x03\x12\xda\x3b\x82\x81\x2a\xd6\x30\x46\xe7\x00\xdc\x60\xd0\xef\xac\xdb\x5b\x67\x78\x24\x4c\x9a\xf8\x4f\xb6\x1a\x37\x74\x9b\x84\x08\x4e\x9f\xdf\x0f\xfa\x90\xf7\xc0\x2e\x5f\x5b\x0d\xec\x17\x63\xdf\x92\xd3\xbc\x56\x7f\xce\x37\xfc\xaa\xdb\xe6\x14\x1f\x80\xca\xaf\xd6\x34\xf0\xc9\xb5\xdb\x8c\xff\x35\xb7\x8e\xbf\x09\xaa\x7b\xa0\xdf\xc2\xf7\x04\x91\x1a\x5e\x3f\x15\xc4\xe0\x5d\x84\x35\x07\x44\x8f\x4d\x89\x5b\x3c\xde\xde\x5c\xbe\x66\x68\x5f\xe4\x29\x5d\xbc\xd7\xbc\x22\x94\x2e\x96\xe7\xa8\xf2\xa1\xe4\xad\x9a\xbf\x8d\xe0\x98\xa2\xed\x81\x0e\x7e\x5f\xe6\x1e\x24\x29\x6b\x10\x28\xa1\xe3\xea\x19\xaa\x47\x0d\x6a\xeb\x9a\x45\x08\x33\xae\xfc\x0a\xb4\x18\xe1\xa4\x7f\x8e\xf0\x26\x78\x39\xc2\x29\xc9\x3f\x23\xbc\x22\x99\x43\xb8\x23\x49\x29\xce\x52\x1b\x25\xf7\xa0\xae\x77\x2f\x61\x33\x9a\x2f\xc2\x31\xd5\x9b\x23\xf0\x29\x7f\x67\xfb\x17\xc1\x7d\xfb\xf1\xe6\x25\xdd\x8b\xf5\xa2\xe6\x97\x5a\x63\xef\xdf\x01\x00\x00\xff\xff\x9a\x98\xd5\x09\x6e\x05\x00\x00") + +func template_filesGokitBaseCmdGrpc_bindingGoBytes() ([]byte, error) { + return bindataRead( + _template_filesGokitBaseCmdGrpc_bindingGo, + "template_files/gokit-base-cmd/grpc_binding.go", + ) +} + +func template_filesGokitBaseCmdGrpc_bindingGo() (*asset, error) { + bytes, err := template_filesGokitBaseCmdGrpc_bindingGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/gokit-base-cmd/grpc_binding.go", size: 1390, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesGokitBaseCmdMainGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xa4\x55\xdf\x6f\xe3\xb6\x0f\x7f\x8e\xff\x0a\x9e\xf1\xbd\xef\x1c\xa0\x91\x6f\xaf\xdd\xfa\xd0\xcb\x75\x5d\x87\x2e\x39\x34\xd9\xd3\x36\x14\x8a\xcd\xb8\x42\x65\xc9\x90\xe4\xb4\x45\xe6\xff\x7d\xa4\xe4\xa4\xdd\x75\xdd\xb0\xad\x40\x63\x9b\x22\x3f\xfc\xf1\x21\xa9\xb2\x84\xb9\xad\x11\x1a\x34\xe8\x64\xc0\x1a\x36\x4f\xd0\x39\x1b\x6c\x35\x23\xd9\xac\xb1\xf7\x2a\xcc\x36\xd2\x63\x46\xaa\xde\xf6\xae\xc2\x53\xd8\xef\xc5\x25\x86\x85\x6c\x71\x18\x58\xfe\x69\x09\x8b\xe5\x1a\x2e\x3e\x5d\xad\xdf\x65\x59\x27\xab\x7b\xd9\x20\xb4\x52\x99\x4c\xb5\x9d\x75\x01\x8a\x6c\xb2\xdf\x3b\x69\x48\xfc\x3f\x05\xa7\x67\x20\xae\xe2\x81\x1f\x86\xfd\x5e\x6d\x49\x28\x56\x41\x9a\x5a\xba\x9a\x25\xa4\xf3\x1b\x85\xa1\x4c\xd8\x42\xfe\xde\xff\x62\x72\x96\xa2\xa9\x8f\x8f\xec\x6f\x00\x8d\x0d\xff\x02\x74\x9a\x51\x3a\xcf\x21\x97\x65\xbe\x6d\x43\x1e\x5f\xb4\x6d\xd2\x4b\x2b\xc3\x5d\x49\x9e\xeb\xf4\x69\x70\x54\xb0\xfe\xf0\x2c\xbd\x6a\x8c\xd4\xe9\xd3\x07\x57\x59\xb3\x1b\x3f\x9e\x7c\x25\xf5\x78\x12\x54\x8b\x79\xc6\xaf\x84\x7d\xfb\x01\xf2\x46\x85\xbb\x7e\x23\x2a\xdb\x96\x8d\x9d\x51\xe1\x4b\xfe\x3f\x3a\x7e\xf3\xb8\xd4\xb8\x43\xed\x13\xd6\x4b\xb5\x75\x6f\xf0\x5a\x6e\x48\x7d\x53\xfe\x29\xa9\xe5\x81\xf7\x92\x62\x0c\xce\x6a\x8d\xee\x95\xb3\x7f\x80\xd2\x6d\xfe\x8b\xb5\x47\xb7\x63\xff\x09\xc2\xda\x46\xa3\x68\xac\x26\x92\x85\x75\x4d\xd9\xb8\xae\xca\x89\x1f\x22\x69\xdb\x9b\x2a\xf6\x57\x31\x85\x7d\xd4\x87\x15\x06\xe8\x3b\xa0\x72\x34\xca\x34\xb0\xb5\x0e\xd0\x39\xeb\x3c\x10\x55\x60\xc3\x1d\x3a\xa8\x31\x48\xa5\x7d\x36\xd9\x49\x17\x35\x49\x96\x6a\x27\xae\xe3\x83\x9a\x2a\x9b\x30\xda\xb5\x6d\x20\x58\x58\x85\xda\xf6\x81\x44\xf7\xa3\x36\x35\x5a\x24\x4b\x2c\xf0\xe1\x87\xd5\x72\x71\x1d\xc5\x85\xf5\x22\xa9\x4e\x49\x77\x54\x3d\x3b\x40\x93\x6a\x31\xda\x4f\x13\xfa\x5a\xde\x23\x75\xa8\x6b\xa5\x66\xb8\x14\x62\xd7\x07\xa0\x28\x5b\xa0\x06\xb5\x63\x74\x09\x4d\x50\x6e\xdf\x69\xd9\xf8\xe2\xc3\x14\xfe\xf2\x8f\xb0\xb7\xac\x08\xd2\x21\xdc\x11\xaa\x4e\x13\x7d\x69\x81\xca\xfd\x95\x7f\x05\xbb\xec\x03\xf9\x2d\x8e\x39\x51\x16\x5a\x6d\xce\x6b\xd9\x05\x4a\xeb\x10\xf5\x94\x81\x1d\xd6\xca\x61\x15\x28\xd8\xa7\x70\xc7\x35\xee\x3d\xff\xfa\x68\xc2\xc8\x5c\xb1\x9e\x6a\x38\x24\x46\xce\xb5\x86\xad\x0c\x94\xe3\x48\x44\x63\xc1\x1a\xca\x51\x79\xa8\x28\x38\x83\x3a\x9b\xd0\x51\xc5\x55\x6d\xa9\x24\x05\x4b\x93\xf2\x34\x41\xc4\x42\xd1\xd0\x84\x54\x16\x74\x7d\x17\xc6\x6a\x49\xef\x53\xb9\xc8\x29\x3d\x21\x02\x8d\xb0\x2c\xdb\x60\x4a\xb6\x86\x02\x1f\x05\xcc\x83\xd3\xb3\x39\xd5\x9f\x82\xe0\xee\x89\x8d\x33\x49\xee\xbf\x9d\x25\x70\x46\x2f\x48\x65\x28\x5e\xba\x8f\x04\x11\xb5\x60\xb7\xaf\x1d\x71\x28\x31\x73\x8e\xa4\x72\x8a\x7a\xa5\xc6\x2d\x1e\xba\x4b\xcc\x49\x54\x4c\x05\xb5\x49\x91\xc7\x5a\xe4\x27\xe4\x8e\x21\x46\x17\x0b\x1b\x90\xac\x65\x80\xe3\x5e\x01\xaa\x8f\x47\xac\x13\x75\x2c\x21\xa6\xb0\x2e\xbe\x9e\x42\x6f\x34\xfa\x54\x3d\xce\x8c\xac\xbc\x6d\x11\x3a\x4b\xf1\x53\x0e\x80\x8f\x58\xf5\x41\x59\x93\x4d\x9e\xed\x78\xcf\x88\x85\x7d\xa0\x38\x7e\x32\xea\x71\x21\x8d\x2d\xa6\xa3\xfb\xef\xad\xbd\xe7\xb1\x79\x1e\xff\x6c\x52\x51\xa9\x98\x92\xff\x3f\x0b\xc5\xfc\xf8\xba\x1f\xd9\xfd\xc8\xec\x73\x30\xb5\x8d\x8b\x3e\xce\x94\xdf\x55\x90\xa6\x58\xcc\x7b\xe7\xd0\x54\x4f\x17\x8f\x29\xda\x15\x89\x55\x85\x69\xc2\x58\xef\x8c\x3a\xde\xe1\x1b\x6a\x7b\x0e\x62\x38\xb6\xd2\x9a\xb2\xf1\xbc\x95\x4f\xa1\xb9\xf9\x3c\xcf\x26\xb4\xe1\x71\x27\x63\x98\x34\x7b\x74\x19\xa1\xd9\x15\xf9\x25\x9d\xdd\x7e\x5e\xde\xac\xf3\xe9\x37\xe9\xfc\xdd\x19\xe4\x79\x64\x9a\xb7\xc7\x67\x17\x4e\xe0\x96\x8d\xc6\xad\x2c\xce\x83\x55\x05\x6b\x72\x3d\xbe\xe8\x8d\x68\x72\x5e\xd7\x71\xea\xe9\x1e\x10\xab\x74\x79\x14\xf9\xe9\xfb\x9a\x78\x1c\x11\xa3\x25\x99\x72\x67\x92\xe2\xcf\xbf\xb2\x5c\xac\x62\x15\x96\x1d\x93\x41\x25\x1b\xd1\x92\x94\xd5\xa2\x12\x0f\x5c\x94\x14\xd1\x5c\x08\x11\x27\xad\xf7\xe8\x41\x11\x9c\x7d\x30\x27\xa9\x35\xe9\x3a\x89\x1c\xe1\x63\x88\xee\x34\x1d\x50\x17\x31\x12\x5d\x40\xe2\x5a\xd1\x88\x98\x22\x0f\x55\x37\x06\xc6\x71\xf3\xb6\x89\x95\x22\x45\x2a\x84\x51\x3a\xe5\x75\xec\x7a\x7a\xc6\x6f\x87\xa1\x77\x86\x5f\x87\x88\xde\x6d\xc4\x0d\x36\x8c\xe9\xde\xe0\xe7\x10\xf6\x31\xa7\xe4\xf5\xa3\x32\x35\xed\x84\x3d\xf1\x3b\x44\xef\x07\x4f\xcf\x8a\xa9\x32\x85\x36\x7c\x3e\xc4\x71\xcb\xb2\x61\x5c\xe9\x2f\xc6\x30\xed\x01\x0e\xf8\x8b\xfd\xc0\xbb\x36\xde\xaf\x64\x9a\x2e\x5a\x6a\xee\xa0\xb6\x4f\x45\x75\x02\xe3\x05\x2b\x56\x57\x97\x57\x8b\xf5\x1f\xbe\xd7\x17\x37\x3f\x92\x49\xca\x35\xf2\x79\xc1\x1e\x88\xce\xf7\x3e\x4e\x25\x8d\xe4\x90\xfd\x1e\x00\x00\xff\xff\xea\x88\xdd\x78\x11\x09\x00\x00") + +func template_filesGokitBaseCmdMainGoBytes() ([]byte, error) { + return bindataRead( + _template_filesGokitBaseCmdMainGo, + "template_files/gokit-base-cmd/main.go", + ) +} + +func template_filesGokitBaseCmdMainGo() (*asset, error) { + bytes, err := template_filesGokitBaseCmdMainGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/gokit-base-cmd/main.go", size: 2321, mode: os.FileMode(436), modTime: time.Unix(1466729927, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesGokitBaseCmdPure_serviceGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xa4\x51\xcd\x6e\xf2\x30\x10\x3c\xc7\x4f\xb1\xe2\xf0\x29\x41\x40\xee\x48\x1c\x3e\xa1\xb6\xaa\xc4\xa1\x82\xde\x2b\xc7\x5a\x82\x05\xd8\x66\xb3\x46\x45\x88\x77\x6f\x4c\x9a\x00\x15\x3f\x02\x4e\x30\xb3\xeb\x99\x9d\x89\x93\x6a\x2e\x73\x84\xa5\xd4\x46\x08\xbd\x74\x96\x18\x62\x11\xb5\x72\xcd\x33\x9f\xf5\x94\x5d\xa6\x9f\xde\xe0\x48\x66\x69\x6e\xb3\xd4\x91\x65\xab\xba\x39\x9a\x6e\x6e\xe7\x9a\xbb\x99\x2c\x30\x2d\x21\x92\x64\x4c\x95\x35\x4c\x76\xb1\x40\x6a\x3d\xac\xe1\xb2\x96\x48\x84\xe0\x8d\x43\x70\x9e\x70\xe8\x89\xd0\xa8\xcd\xcb\xb7\x9a\x49\x93\xe3\x04\x69\xad\x15\x42\xc1\xe4\x15\xc3\x56\x44\xed\x83\x6d\x6f\xd8\xfc\x15\x3b\x21\xa6\xde\x28\x88\xdd\x35\x9d\x04\x6a\x62\x5c\xba\xbf\x21\x87\x9f\x98\x70\x05\x6d\x97\xf5\xce\xcc\xc6\xb8\xf2\x58\x70\x02\xf1\xc5\x85\xc2\x59\x53\x60\x07\x90\xc8\x52\x12\x4e\x24\x2c\xf6\x10\xfa\x03\x70\x47\x47\x9e\x7b\x1f\xcc\x13\x11\xe9\x29\x94\xaf\x60\x30\x00\xa3\x17\x41\x23\xda\x43\xf8\x77\xdd\x75\xbb\x13\xd1\x2e\x18\xb2\x27\x03\xb5\xef\x43\x65\x94\x67\xae\x91\xf8\x6c\x19\xbf\xb3\xcb\x65\x34\x0b\x0f\x96\x71\x64\x7e\x47\x19\x7f\x5c\x9f\x2c\x63\xc2\x92\x7d\xd1\xe4\xaf\xe0\x69\xe4\x9a\xbb\x23\xe5\x41\xf5\x46\xb0\x53\xed\x30\x8b\x2a\xaa\x0f\x61\x5a\x5d\x59\x31\x5f\xaf\xff\xdf\x47\x9d\x72\xe3\xb9\xc0\x1f\xda\xe4\x4d\xdc\x00\x4e\xc3\x56\xcc\x1d\x51\x6b\xbd\x1b\x41\x8f\x75\x2f\x7e\xb2\x9f\x00\x00\x00\xff\xff\x65\x56\x37\x6f\xab\x04\x00\x00") + +func template_filesGokitBaseCmdPure_serviceGoBytes() ([]byte, error) { + return bindataRead( + _template_filesGokitBaseCmdPure_serviceGo, + "template_files/gokit-base-cmd/pure_service.go", + ) +} + +func template_filesGokitBaseCmdPure_serviceGo() (*asset, error) { + bytes, err := template_filesGokitBaseCmdPure_serviceGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/gokit-base-cmd/pure_service.go", size: 1195, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesMvSharedMysqlMysqlGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd4\x57\x7b\x4f\xdb\x48\x10\xff\x3b\xfe\x14\x73\x96\x40\x4e\x1b\x4c\xe8\x83\x3b\xe5\x14\xf5\x52\x92\x1e\xa9\x08\xa1\xb1\x73\x77\x55\x55\x45\x1b\x7b\x0d\x56\x13\xdb\xec\xae\x03\x08\xf1\xdd\x6f\x66\xd7\x71\x0c\x35\xaf\xaa\x3a\xe9\x40\x4a\x3c\xbb\x3b\xaf\xdf\xcc\x6f\xbc\xc9\x58\xf0\x8d\x9d\x72\x58\x5e\xc9\xf3\x85\x65\xc5\xcb\x2c\x15\x0a\x1c\xab\x61\x87\x4c\xb1\x39\x93\x7c\x17\x37\x6c\x94\xa3\xa5\xa2\xaf\x54\xd2\xa7\x54\x22\x48\x93\x55\xf1\x18\x27\xa7\xb8\x6a\x35\x66\x60\x9f\xc6\xea\x2c\x9f\xbb\x41\xba\xdc\x3d\x4d\x77\x50\x75\x27\x14\xf1\x8a\x8b\x5d\xed\xc0\xb6\x9a\x96\x85\x8a\x52\xbb\x18\xf5\xfe\x99\x8d\x3e\x7b\x9f\x8e\x66\x93\x81\x3f\xf9\x3c\xeb\xf9\xfe\x60\x74\xe2\x7b\xd0\x85\xb7\xb8\xab\x77\xfa\x3d\x7f\xe0\x0f\x47\x83\xd9\x87\xf1\x64\xd4\xf3\x01\xff\xba\x60\xbf\x6a\xb7\xf7\x77\xda\x7b\x3b\xed\x57\xb0\xf7\xb6\xd3\x7e\xd3\x69\xbf\xc5\x50\x0e\x7a\x07\x87\x03\xb4\xe5\xcd\x7c\xff\x08\x15\xa6\xc7\x7d\x00\xa3\xf1\x7a\xbf\xdd\xbe\x7b\x60\x34\xf4\x3c\x58\x1f\xd0\xfb\xfd\xc1\x87\xde\xf4\xc8\x9f\x9d\x8c\x27\x3e\x54\xff\xd0\xc0\xeb\xf6\x3e\x05\xaf\xae\x32\x0e\x23\x96\x4d\xd2\x0b\x88\xf2\x24\x70\x5e\x60\x5a\x2e\x4a\xb2\x09\x4e\x9c\x28\x2e\x22\x16\xf0\xeb\x9b\x16\x70\x21\x52\xd1\x34\x0a\x1f\x65\x9a\xf4\x79\x90\x86\xdc\x28\x7d\xf9\x3a\xbf\x52\x1c\x35\xbe\x7c\xad\xd3\x31\x4a\x07\x8b\x98\x27\x0a\x10\xdf\x3c\x50\x70\x6d\x35\x0e\x53\xc4\x0d\xc0\x00\x6e\x35\x4e\xa8\x52\x00\x68\xc0\x6a\x4c\x25\x17\xd5\x2d\x26\x65\x45\xec\xcf\x8f\xd9\x92\x97\x62\x38\xd7\x49\xe9\xc8\xfb\xef\xad\x1b\xcb\xa2\xa0\xc0\x09\xe0\x85\xf1\xd9\x44\xdf\xa9\xe4\x4e\x93\xbc\xc6\x11\x04\xf0\x4b\x17\x92\x78\x01\xdb\xdb\x10\xb8\xa8\x5e\x88\xb8\xdb\xd8\xdd\x05\x7f\xdc\x1f\x77\x60\xc2\xcf\xf3\x58\x70\x09\x0c\xe6\x5c\x61\x52\x70\x91\x8a\x6f\x4c\xa4\x79\x12\xb6\x4c\x7f\x01\x96\x3e\xe1\x81\x8a\xb1\x03\x60\xc1\x23\x05\x67\x2c\x39\xc5\x98\x5a\x30\xcf\x15\xc4\x52\xe6\xa8\x7f\x81\x2d\x04\xe7\x39\x17\x31\x0a\x71\x02\x01\x17\x8a\xd1\x77\x9a\x84\xb1\xd6\x45\xb7\x14\x86\x5b\x44\x59\x88\xa0\x83\xb2\x1a\x37\xb5\x19\xfd\xc9\xd5\x54\x2c\x30\x25\x83\x02\xc5\x2e\xb8\xca\x05\xda\x75\x35\x7a\x2f\xc1\xee\xd8\xf8\x19\xb8\x1a\x3d\x14\xff\x50\x41\xe6\x98\x25\x0d\xfd\xfa\x44\xd1\xfc\xee\x50\xa5\xcc\xc1\xe3\x58\x87\x26\x6d\x36\x77\xed\xfb\x5c\x1f\x60\xe2\xe8\xdb\x29\x30\x5f\x57\x9a\xa2\x58\x31\x41\x92\x59\x31\x70\xeb\x64\x36\x10\x93\xac\x35\x30\x43\xd2\x1f\x67\x3c\x71\x6c\x43\xa8\x16\x20\x2f\x5d\x2f\xc3\x9c\x54\xe4\xd8\x5b\x72\x4b\xbe\x0b\xce\x98\x90\x5c\x75\x73\x15\xfd\xb6\x9d\xd1\xb3\x1f\x2f\x79\xd7\x17\x39\xc7\xf3\x81\xbb\x86\x82\x9e\x4d\x6b\x34\x9b\x04\xdb\x06\x90\xc2\x5f\x99\xcd\x31\xbf\x30\xc9\xe8\x1c\xcc\x63\x35\x87\x33\x82\xa7\x83\xc4\xdc\x7b\xf5\xab\xdb\xc6\xff\x3d\x5b\x67\xc2\x57\x6c\x41\xeb\xa9\x24\xa7\x3c\x59\x39\xb6\xa1\xf5\xe1\xd8\xf3\xed\xe6\xef\xe6\x00\x76\x93\x6d\xeb\x4c\xb5\x9d\xae\x5e\xa5\x80\xac\x86\x9e\x46\x9d\x82\x7e\x0f\x5a\x24\xce\xd6\x58\x24\x03\x2d\x98\x11\x72\x45\xd5\x7a\x2a\x8d\x1d\x3a\xd5\x34\x2e\x72\x2a\x3e\xc5\xfe\x48\xc8\x53\x6f\x30\xa9\x71\xa0\xd5\x6f\x85\x4c\xdd\xf3\x04\x7b\x27\x3d\xcf\xab\x0b\x98\xd4\xab\xf6\xc2\x79\x42\xe4\x7d\x82\xc5\xfe\xfb\x1a\x7b\x85\x7a\xd5\x62\x51\xe6\x6d\x53\x47\x3a\x44\xed\xdd\xc1\x91\x40\xf8\xb7\x50\xa6\x96\x26\x59\xa3\x87\x32\x11\x84\x64\x4a\x56\xef\x63\x90\x7a\x1f\xbf\x49\x36\x5d\xd4\x01\xe3\x0c\x57\x70\x96\x11\x17\xd7\xfd\xf3\x09\xd9\x7c\x45\x43\x72\x43\x8b\x16\x9c\x7b\x4a\x14\x6c\x6c\x01\x13\xa7\x12\xee\x4c\xc3\x65\x94\x14\xa3\xf6\xbe\x49\x89\x19\x52\x3a\x32\x5f\x28\x8d\xf9\xad\x43\xd7\x06\x3d\xc3\x1c\xdc\xd4\x8d\x6f\x88\x68\x70\xc4\xe5\xca\x20\x2b\x50\x41\xd1\xf4\xbe\x86\x4a\xaa\xa5\x2a\x0d\xe0\xc4\x39\x11\x1c\x09\xc5\x1d\x8a\xfd\x21\x2b\x45\x4c\x86\x9d\x03\x8a\x15\xc9\xa9\x51\x80\xcc\x98\x80\x88\xc5\x0b\x1e\xc2\x96\x84\x1d\xd8\x5a\xd9\x06\x0f\xed\xab\x68\x4c\x81\x78\x95\xbe\x29\x10\x57\x1b\x70\x08\x2a\xd7\x75\x7f\xd0\xfd\x23\x6e\x1b\x21\x8f\xb0\xa1\xc9\x77\x39\x5e\xad\x46\x94\x16\x4b\xc7\xfc\x52\x99\xd7\x42\x03\x6b\x28\xae\xca\xf8\xb0\x56\x0e\x9d\xa0\x61\x7c\x3b\x2c\x7c\x67\x14\x57\x04\x17\xc1\xa7\x49\x2e\x1d\xdc\x36\x61\xd1\x10\xb2\x93\x54\x1b\xb7\x9b\x34\xf4\x22\xb6\x90\x5c\x3b\x78\x42\x32\x32\x60\xc9\xc3\x19\x69\x24\xcb\x16\xe9\x02\xcb\x70\x78\x86\x4e\x69\x53\x67\x51\x00\x5e\xc4\xdd\x35\xa9\xa2\x27\x87\xe8\xf4\x13\x32\x79\x3c\x11\xd2\x7a\x42\x47\xdc\xb1\x53\xa5\xd8\x30\x41\x6e\xaa\x2a\xbf\xf0\xfa\xb6\xe0\x25\xc1\xb0\xe7\xd8\x52\xc2\x92\x65\x5f\xcc\xd2\x6d\x3e\xa9\x4b\x73\x1f\xf0\x2f\xcd\x3d\x66\xff\x4d\x75\xbe\x47\x05\xbb\x8c\x26\x12\xab\xb1\xca\xbe\x5b\xd2\x14\xae\x21\xa1\xee\x9e\xa8\x05\x2b\xda\x14\xf8\xc2\xe7\xeb\x60\x08\x9b\xa8\x52\x95\x88\xb0\xa1\xa2\x91\xf5\x72\x15\x05\x84\xf6\x9d\x4d\x1b\xda\x47\xb9\x43\x12\xda\x2d\xd0\xd1\xf3\x04\x5d\xdc\x7a\x21\x0e\x8f\x71\x6c\xfb\x30\x3c\xf6\xc7\x04\xac\xb3\x85\xf7\xb4\xbf\x7a\x47\xd3\x81\x47\x8f\x76\x81\x52\xab\x2c\xec\xc7\x34\x4e\x74\x1c\x76\xcb\x6e\xde\x59\x36\x81\xe0\x3a\x51\xe2\xce\x6b\x9b\x44\xba\xfc\xe8\xdb\xa0\xae\x8f\xee\x27\x84\xf5\x16\x3b\xe5\xfa\x3d\xae\x2e\xdd\xc1\x25\x0f\x1c\x53\xe2\x0d\xa5\x6f\x80\xaf\xbb\x86\x46\x57\x58\x37\xbb\x6a\x78\xdf\x30\x56\x43\x3d\xb8\xaa\x46\xaa\x3e\x71\x7e\xd5\xfa\x24\xda\xdf\x14\x29\xc5\x21\xe8\xea\x3f\x30\x5c\xda\xcf\x1f\x2b\x9b\x78\xe2\x70\x1d\x0d\x06\xe6\x1e\x31\xa9\x4c\xe3\x0e\xc3\xfb\x32\xab\xf7\x5a\xd5\x7c\x74\x02\x54\xc9\x43\x01\x54\x79\x33\xcd\xf0\x87\x0e\xff\x61\xde\x5c\x9c\x71\xc1\xab\x2f\x32\xbd\xd0\xab\x79\x9b\x55\x19\xa6\x9b\xa6\x9e\x58\x3f\x89\x45\x2f\x6d\x5c\x78\x9c\x33\x64\x74\x86\xbd\xb0\x31\xba\x89\xff\xfa\x1e\x5d\xf6\x10\xdf\xa6\x27\xf4\x8b\x8d\x4a\xe1\x0d\x7c\xfa\xfa\xfb\x70\x30\x21\xf9\x51\xaa\xad\x91\xac\x21\xd7\x77\x44\x9a\xfd\xe7\x34\x9a\x3d\x95\x44\xf7\xd2\xe6\xd9\xaf\x62\xab\x72\x25\x29\xdb\x55\xfb\x7e\xce\x25\xaa\xae\xed\xfe\xd7\x00\x17\xa0\x98\x9f\x27\xff\x06\x00\x00\xff\xff\x44\x59\x27\x62\xbf\x10\x00\x00") + +func template_filesMvSharedMysqlMysqlGoBytes() ([]byte, error) { + return bindataRead( + _template_filesMvSharedMysqlMysqlGo, + "template_files/mv-shared/mysql/mysql.go", + ) +} + +func template_filesMvSharedMysqlMysqlGo() (*asset, error) { + bytes, err := template_filesMvSharedMysqlMysqlGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/mv-shared/mysql/mysql.go", size: 4287, mode: os.FileMode(436), modTime: time.Unix(1465624400, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesPbCompileSh = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x90\x41\x4f\xeb\x30\x0c\xc7\xef\xfd\x14\x7e\xda\x3b\xae\xf5\xe1\xdd\xf6\xb4\x03\xa7\xb1\x03\x02\x09\xb8\x21\x4d\x69\xe6\xa5\x11\x69\x5c\x25\xce\x98\x84\xf8\xee\xb8\x59\x85\x84\xe0\x52\xc7\xae\xfd\xf3\xdf\xff\xd5\x1f\x2c\x39\x61\xef\x23\x52\x3c\x43\x1e\x9a\x66\x05\xfb\x98\xc5\x84\x00\x53\x62\xe1\x7f\x70\x4a\x3c\x42\xe6\x92\x2c\xe9\x4f\xe8\x13\xbd\x81\x5f\x5a\x4c\x11\xb6\x1c\x4f\xf5\x31\x9a\x57\x82\xe0\x7b\x61\x0e\x73\xa7\xf3\x02\x36\x70\x24\x18\x44\xa6\xbc\x41\xd4\xca\x50\xfa\xce\xf2\x88\x8e\xd9\x05\xc2\xba\xa3\x2f\xa7\xb9\xbf\xc3\x99\xe2\x28\x76\x79\x80\xff\x9a\xce\x64\xef\x4a\x22\xcd\x2a\x7c\x09\xcb\xf6\x66\xa5\x53\xcf\xd3\xd1\x08\x5d\xb5\x5a\xd8\x31\xe8\x2d\x47\x1f\x5d\x86\xb3\x37\x55\x05\x83\x23\x81\xb6\xc0\xb7\xed\xc1\x44\xf7\xb5\x1d\xdf\xeb\x6b\x7d\xa5\xb4\x2a\xa1\x75\xfc\x51\xf9\x8f\x44\x60\x42\xe6\x19\xf5\xdb\x19\x69\xb2\xf5\xa3\x03\x28\x89\x08\x47\x93\x85\x12\xd2\xc5\x8c\x53\xa0\xdc\x34\x8b\xb4\x76\x5f\xad\x0e\x6c\x4d\x40\x1f\x6d\x28\x47\xd2\x62\x07\x2f\xcd\x1c\x96\xf8\x77\x77\xff\x70\xf3\x74\x8b\x39\xd9\x5a\x50\xec\x81\x8b\x6c\xef\x16\xbf\xcc\xe4\xd1\xc4\xc8\x62\xc4\x73\xcc\x5d\x85\x6f\x7f\xfa\xaa\x7d\xeb\x29\x14\xa7\x56\x6d\x67\x79\x9b\xca\xa7\x8b\x1d\xf4\x6e\x3a\x24\xf5\xec\x3a\x0b\x99\xd2\xd9\xdb\x25\x6b\x3e\x03\x00\x00\xff\xff\x60\xc2\x90\x87\x11\x02\x00\x00") + +func template_filesPbCompileShBytes() ([]byte, error) { + return bindataRead( + _template_filesPbCompileSh, + "template_files/pb/compile.sh", + ) +} + +func template_filesPbCompileSh() (*asset, error) { + bytes, err := template_filesPbCompileShBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/pb/compile.sh", size: 529, mode: os.FileMode(509), modTime: time.Unix(1466636259, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesPbExchange_ratePbGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x59\x5b\x6f\xdb\xc8\x15\x7e\x16\x7f\xc5\xac\x9e\xec\x40\x96\x28\x92\xba\x05\xc8\xc3\xc2\x4e\x0a\x3f\xb8\x09\x12\xa3\x40\xb1\x58\x64\x87\xe4\x50\x62\x57\xbc\x94\x1c\x3a\x66\x0d\xff\xf7\x9e\x39\x87\xe4\x90\x94\x64\xc9\x76\xdc\x02\x45\xfd\x30\x26\x67\xce\xf9\xce\xf5\x9b\x19\x49\x93\x09\xbb\x4c\x7c\xc1\xd6\x22\x16\x19\x97\xc2\x67\x6e\xc9\xd2\x2c\x91\x89\x77\x01\x73\x17\xeb\x64\x6c\x80\x4c\x9e\x14\x99\x27\xde\x33\x71\xef\x6d\x78\xbc\x16\xdf\x95\xec\x18\xe5\xd4\xf2\xd5\x67\xf6\xd7\xcf\xb7\xec\xe3\xd5\xf5\xed\x2f\x86\x31\x79\x67\x7c\xe1\xde\x9f\x7c\x2d\x58\xea\xb2\x30\x67\xbc\x05\x4f\xd8\xc9\x96\xb9\x45\x10\x88\x8c\xa5\x24\x39\x36\x8c\x6b\xa9\x64\xb5\x64\x90\x25\x11\x93\x1b\x91\x0b\x16\x84\x5b\x91\xbf\x37\x06\xfb\xcc\x0f\x72\x91\xdd\x85\x5e\xfd\xaa\x60\x36\x3c\xaf\x14\x65\x92\x5e\x6c\xc5\x9d\xd8\xb2\x48\xe4\x39\xd8\x51\x28\x1f\x2b\x94\xaf\x00\xf2\x31\x96\xa1\x0c\x45\xbe\x67\xb6\xec\xce\xfd\x45\x48\xf5\xef\xab\xf8\x67\x21\x72\x79\x60\x2d\x4f\x93\x38\x17\xdd\xc5\xcb\x24\xbe\x13\x99\xdc\xab\xd8\xac\xd5\x8a\xdf\x24\x97\x45\xde\xc8\xd6\xaf\xf5\xf2\x97\x30\x5e\x37\x8b\xf4\x52\x2d\xbd\x9b\x18\x69\x93\x74\xc3\x08\xa3\x34\xc9\x24\x65\x9b\x0d\xd7\xa1\xdc\x14\xee\xd8\x4b\xa2\xc9\x3a\xd9\x82\xf1\x09\x2e\x40\x09\xe8\x61\x58\xcb\x07\x91\x64\x43\x18\x9a\x89\x88\xcb\x0d\x1b\xaa\x71\x68\xa8\x4a\x7f\x15\x50\x34\x11\x7b\x82\x91\x00\x24\x3a\x61\x79\x91\xa6\x19\xe4\x97\x89\x2c\x4b\xb2\x9c\x85\x81\x4a\x7f\xc9\x78\x26\x58\x9c\x48\x96\xc0\x5b\xf6\x23\x84\x7a\x14\xb9\xf0\xc7\xc6\x1d\xcf\xd8\x77\xf6\x81\xbc\x1b\xdf\xf0\x2c\xdf\xf0\x6d\x33\x0b\xe6\xc7\x1f\x15\x50\xd0\x4c\x29\xfb\xe3\xeb\x38\x40\x17\x6e\x37\xd0\x26\xd8\x55\x10\x4f\x0a\x9d\x71\x21\xc3\x48\x30\x9e\x43\x23\xc8\x30\x89\x95\x47\x22\xce\x0b\x30\x2e\x37\x5c\xc2\xd0\x6d\x2b\xd0\x50\x30\x30\xa9\xf4\xb9\x0c\xdd\xad\x60\x3f\x20\x43\xca\xe9\x2a\x63\x75\x2a\x43\xec\x49\x57\x40\xa6\x6b\x6b\x3e\xe3\x6b\x1e\xc6\xb9\x44\x62\xfc\x5a\x4d\x73\xb4\x8c\xf1\xb3\xda\xe6\x36\x8c\x05\x0c\x7f\x8a\x6d\x09\xed\xc7\xe3\x9c\x95\x40\x23\x50\x48\x4b\x96\x60\x8a\x14\x42\xd7\x60\x2c\x84\x8f\x39\x75\x21\x59\xa9\xaf\x3c\x1e\x1b\x1e\x54\x58\xb6\x32\xf6\x45\x8d\x15\xc5\xae\xf3\xbf\x89\x2c\x07\xe3\x16\x53\x60\x5b\xc1\x55\x9a\xd3\x75\xc6\x7d\xb1\x1b\x90\x61\xc8\x32\x15\x6c\x1f\x03\x58\x2e\xb3\xc2\x93\xec\xc1\x18\x40\x53\x15\x5b\x28\xed\x6f\xbf\xbf\xdb\x65\x05\xfb\xa3\xee\x9d\xf7\x43\xb7\x94\x22\x1f\x4d\x47\x99\x48\x47\x31\x8f\xc4\x87\x4a\x73\xf4\x8f\x3c\x89\x3f\x64\xf4\x32\x64\xea\xed\xfd\xb0\x5e\x4b\xa2\x50\x8a\x28\x95\xe5\xf0\x0f\xe3\xd1\x30\x82\x22\xf6\xd8\x59\xc4\x76\x4d\x81\x53\xe7\xd0\x70\xb9\x90\x67\xe7\x6c\xcf\xdf\x03\x7b\x17\x41\x4e\xf6\xe9\x3d\x3c\xb2\xc7\x63\xc8\xdf\x64\x06\x65\x05\xe8\x1c\x1f\xba\xc8\x99\x90\x45\x16\x57\xf9\xbe\x54\x7d\xe2\xc9\x5b\x71\x2f\x2b\xa5\xe8\xbc\xc1\x3f\x80\x8e\x35\xba\xa1\x4d\x67\xc7\xfd\x87\x23\xca\x57\x22\xf7\xb2\x30\x95\x49\x06\xaa\x67\xbf\xfd\xae\xf2\x3c\x82\x72\x84\xb1\x3c\xd7\xce\xa9\x4e\xd6\x92\x66\x25\xf0\x60\xaa\xd8\x8f\x05\xaf\x76\x2c\xaa\x07\x58\xd8\x5f\x67\x68\x04\x20\x72\xc4\x7e\xf9\xc0\xe2\x70\xab\x5e\x07\x95\xe1\x68\x5c\xe9\x1a\x83\x47\xa3\x9e\x04\x19\x55\xce\xfd\xfd\x55\xb6\xba\xeb\xda\x6f\x65\x02\x1c\x9e\x3b\xf0\xbf\xd5\x54\x40\x7a\x98\x85\xae\x4a\x52\x49\x5d\x15\xfa\x75\x0f\x85\x7e\xa7\x7d\x06\x97\x45\xa6\x76\xa3\x12\xcf\xb0\xba\x8e\x3b\x0d\x6a\x69\x28\xaf\x52\xf8\xee\x81\x06\xb5\xa9\xd7\xc2\xa8\xed\x74\xc5\x3a\x26\x55\x4c\x8d\xfb\xc1\x36\xe1\xd2\xb6\xda\x26\x83\xf0\x5e\xf8\xb6\x35\xb2\xb5\x51\xb5\xf1\xd4\xc8\xea\xb9\x0b\x78\xd5\x06\x3c\x18\x83\xa3\xe1\xfc\x16\x9c\xbf\x03\x77\x99\x09\xdc\xe7\x9e\x86\x9b\xb5\x52\x42\x0a\x4d\xe8\xf4\xda\x05\xbd\x49\xfc\x30\x08\x2b\xd4\x83\xa0\x73\x0d\x1a\x55\x0a\x35\x6a\xfd\x7e\x3a\xfb\xcb\x17\x71\xbf\x3c\xc2\xfc\xf2\x0d\x79\x5f\xbe\x9c\xf5\xe5\x2b\x39\x3f\x45\xce\x4f\x26\xbb\xf4\xeb\x5e\x5b\x5a\x34\x84\xd3\x62\xc2\xae\xe3\xb4\x90\xac\xee\x76\xa6\xb4\xab\x95\x9b\x02\xa4\xe1\x10\xba\xfe\xf6\x99\x39\xd6\x74\xc1\x6c\xb6\x15\x52\xc2\x8d\xad\x91\x56\xdc\x30\x06\x9f\xe0\x9a\x56\xd3\xb0\x4e\xe9\x9e\x23\xa2\xe9\x0c\x75\xad\xfb\x5e\x63\x10\x03\x83\x16\x44\xdd\x30\x5d\xb1\x4e\x33\xa2\x7f\x9f\x0b\xf9\x6a\xd7\x6f\x93\xa3\x8e\xb7\xb6\x0e\x99\xf4\xdc\x96\x49\xdf\xe9\xb6\xc8\xae\xcb\xb7\x70\x1a\x2b\xbe\x32\xb8\x29\xfc\xd8\x84\xde\x06\xef\x4e\x3c\x82\x43\x1b\x4f\xea\xfa\x76\xcb\xd4\x1e\x51\xe9\xfc\x1d\xfe\x2e\x6e\x6e\x2e\xae\xae\x58\x90\x64\x70\x0f\xaa\xf6\x8b\x43\xfe\xda\x27\x6e\x13\x87\xa8\xd7\x6d\x97\xe7\x52\xb0\xab\x7d\x98\x8a\x7d\x2b\x6f\x41\xc9\xbe\x8d\x17\x50\xb3\x0f\xf1\x2a\x8a\x5a\x48\xd1\xc3\xfc\xa4\x7b\x7c\x9f\xa0\xdf\xa0\x92\xec\x8e\x6f\x0b\x75\xc1\x85\xd3\xf2\x89\x74\xff\xd7\xa8\xf8\x2c\x1f\xff\xc3\x9c\x7b\x96\x6f\x3f\x85\x59\x64\xb7\x09\xb2\x43\x6a\x68\x91\xaa\xcc\xf8\xe1\x36\xab\x0d\xe3\x9d\xe2\x89\xbb\x84\x73\xe2\x5d\xe2\x28\xab\xc9\xfa\x8b\x69\x4d\xea\x27\xf0\xba\xb6\xf3\xa6\xc4\xae\x8d\xbc\x86\xd9\x35\xc6\xab\xa8\x6d\xef\xa7\x76\xf7\x83\x7f\x8b\xd9\xfb\x78\xfa\xc6\x44\x6d\xd1\xee\x89\x0b\xdc\x4f\x62\xde\x69\x37\xda\x93\x09\x75\xea\x8d\xfb\x54\x96\x0c\x7e\x8d\x92\x22\x96\xc7\x01\x5b\x97\x64\x8e\x2a\x35\x24\xbd\x9d\x44\xbd\x6e\x13\x3c\x97\x79\x5d\xed\xc3\xc4\xeb\x5b\x79\x0b\xde\xf5\x6d\xbc\x80\x76\x7d\x88\x57\xb1\xce\x39\xc2\xba\x9d\x03\xf5\xff\xb4\xfb\xdf\xa3\x5d\xf5\x5d\xd5\x71\xd0\xd6\x67\x53\xfa\x5e\xaa\xf1\x13\xdf\x9e\xc7\xe5\x97\x1d\xa3\x3d\xf5\x13\xd8\xfc\x96\xc7\xe8\x8e\x91\xd7\xf0\xf9\xa7\x1c\xa3\x33\xfd\xc5\x55\x18\x87\x2a\xaf\x40\x5a\x0a\xeb\xab\x58\x87\x39\x7c\x82\xbb\x05\xb6\x9f\x1d\xf8\xd6\xec\x2c\x0e\xb7\xe7\x23\x36\x4c\xdd\xf1\xbe\xf5\xe1\xf9\xa9\x60\xe5\x93\x50\xe5\x49\x40\xbd\x8f\x0e\x07\x00\xbb\x52\xcf\x03\xae\x52\x7e\x0c\x99\xc4\x4e\x82\xee\xed\xce\x07\x90\xbb\x52\xcf\x03\x7e\xda\xe7\x9e\x18\x40\xf7\xdb\x81\x75\x4d\x7d\x82\x3e\x3a\x1b\xee\xf9\x51\x68\x38\xea\xf7\x98\x22\x01\xfe\x9c\xd0\x9b\x07\x8a\x52\x97\xd2\x07\x2e\xdb\x36\x19\x6e\x93\xea\x0b\x7a\xce\xd6\xff\x0a\xd3\x54\xf8\xec\x53\x47\xe9\x0b\xfd\xee\x64\xde\x4f\x83\x11\x33\xef\x97\xae\x1a\xcd\x25\x8e\x66\x6b\x5c\xa9\x71\x2e\x50\x86\x56\x2d\x35\x06\xa8\xe5\x39\x6a\x5c\xd9\x6a\x74\x7c\x1c\x51\xd2\xc3\x19\xdb\x1c\xa1\x01\x04\x5a\xce\x50\x14\x47\x8e\x6a\xae\x53\x09\x29\x50\x9c\x9f\xce\xf1\x19\xc7\x19\xce\xcc\xa6\x38\xa2\x13\x4b\x94\xf4\x3c\x44\x40\x19\xee\xa2\x01\x93\xe3\x02\x8a\x4e\x71\xe4\x38\x43\xf3\x3e\x8a\xba\xe8\x97\x83\x10\x2b\xf2\x1a\x23\xb0\x10\xda\xc1\x19\x0b\x23\x5b\x90\x3c\x49\xfa\x68\x60\x89\x40\x2b\x4a\x02\x79\xe4\x6a\x21\x41\x86\xf1\x79\x86\xde\x99\x28\xe9\xa3\x4c\x80\x06\x4c\x4c\xc8\x8c\x70\xd0\xc0\x74\xd6\x8a\xc0\x43\x05\x17\x95\x83\x05\x8a\xa2\x47\x0b\xf4\x71\x41\xe1\xaf\xb4\x31\x13\x25\x67\xb8\xea\x23\x34\x47\xad\x15\x56\xc8\xc6\xf9\x39\x46\x63\x39\x68\x60\x8e\x42\x4b\x2c\x51\x40\xbe\x58\x3a\x45\x96\xaf\xcb\x4b\xa0\x16\xfa\x18\xa0\x13\x26\x9a\x24\x17\x57\x0b\x8d\xe3\x61\x04\x4b\x0f\x0d\xb8\x08\x2a\xa8\xa4\x94\x77\x14\xb5\xd1\x6b\x0b\x67\x16\x96\x4e\x85\x45\x0e\xcd\x75\xb5\x16\xad\x6a\x91\x3c\x99\xe7\x82\x6a\x80\xca\x3e\xc2\x05\x4b\x5d\x28\x9b\xc2\x0c\x74\x23\x52\xc6\x67\xb8\xba\x70\x74\x3b\x3a\x54\x58\x94\x5f\x52\x85\x28\x99\x01\x75\x11\x75\x34\x42\xbb\x28\xea\x04\xad\x8e\xa6\x24\xe0\x8c\x6d\xeb\x34\x12\x7b\x7c\x94\xb1\xb0\x2a\x73\x6c\x84\xf9\x5c\x77\x14\x64\x42\x19\x58\x50\x4b\x59\xda\x3b\xaa\x01\x09\x91\x31\x7b\xa1\xbb\x9e\x92\x40\xf1\x51\xc1\x17\x98\x77\xaa\xe5\x14\x9f\x5d\x94\x14\x36\x1a\xa8\x40\x51\x74\xba\xd4\x85\xa2\xd6\xa4\x99\xd9\x52\x17\x93\xa8\x47\x23\x35\x37\xc5\xe7\x53\x1c\x38\xba\x58\x64\x8f\x8a\x3c\xe7\xba\x80\xd4\x09\x8b\x85\x4e\x48\xb5\x55\xa0\x47\x44\x31\x87\x22\xc0\xe7\x19\x79\x4d\xbd\x4f\xe6\x29\xd5\x54\x2d\x22\x9a\x87\x2f\x53\x6a\x3b\x14\x32\x91\x44\x2b\x0a\xb3\xa6\x4c\xe3\x23\x45\xe3\x20\xf4\x9c\x1c\x42\x19\xdb\xad\x40\x9b\xe2\x07\xc4\x03\x5a\x10\x44\x13\xca\x26\xb5\x9a\xdb\x12\xc5\x84\x70\x04\x72\x2c\xfd\x4c\x2c\x11\xa6\x8e\x8c\xf6\x05\xaa\x1f\xe0\x60\x9b\xd2\x66\x40\xb9\x73\x35\x7d\x68\xb3\x13\x04\x67\xe9\xe6\xa3\x7e\xb3\x6a\x2a\x35\x19\x27\x17\x89\x25\xc1\xac\x4a\x32\x1a\x30\x75\x1e\x29\x40\xde\xf2\xd7\xc4\x19\xa2\x12\xed\x36\x01\x8e\x62\xde\x6a\xe2\x99\x6e\x81\x25\xed\x05\x14\xdf\x8a\x98\x4c\x1d\x42\xbb\x3c\xc2\xad\x7c\x9d\xf1\xca\x97\x95\xf6\x91\x52\x47\x5b\xba\x68\xb1\x81\x7a\x69\xca\xb5\xbb\x40\x61\x65\x80\x07\xba\xc7\x05\x2e\xbb\x7e\x45\x13\x56\xef\xa9\x54\x76\xda\x1e\x9c\x16\xad\xa8\x89\xa7\x0b\x9d\x46\x4a\xa9\x5f\xe3\x28\x03\x0e\xed\x85\x44\x28\x3a\x58\x5c\x1d\x4d\xe0\xe9\x90\xe9\x60\x31\x51\x9e\xb6\x0d\xe2\x33\x1d\x53\x24\xef\xe0\xf3\x7c\x55\x45\xaf\x0c\x04\xad\xa0\x28\x5d\xc4\x5e\xcf\x6f\xa5\x85\xce\x3b\x3a\xd1\xd0\xa4\xef\xeb\xae\xa3\xd6\xa0\xd4\xd1\x1e\xdc\x1c\xba\x68\x00\xe1\x68\xb4\xa9\xd4\x14\x13\x19\xc6\xd4\x2d\x88\x1f\x76\x57\xf9\xd1\xf8\x77\x00\x00\x00\xff\xff\xdf\xad\x86\x1e\x0d\x23\x00\x00") + +func template_filesPbExchange_ratePbGoBytes() ([]byte, error) { + return bindataRead( + _template_filesPbExchange_ratePbGo, + "template_files/pb/exchange_rate.pb.go", + ) +} + +func template_filesPbExchange_ratePbGo() (*asset, error) { + bytes, err := template_filesPbExchange_ratePbGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/pb/exchange_rate.pb.go", size: 8973, mode: os.FileMode(436), modTime: time.Unix(1466636261, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesPbExchange_rateProto = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x54\x3d\x0f\xda\x30\x10\xdd\xf3\x2b\x4e\xec\x28\x82\xa4\x74\x40\x4c\x80\x2a\x06\x84\x04\x5d\x3a\x21\x93\x5c\x88\xd5\xc4\x76\xed\x33\x25\xaa\xfa\xdf\xeb\x7c\x12\x0a\xa1\x15\xaa\x9a\x25\xf2\xbb\x97\xe7\x77\xcf\xe7\x98\x42\x10\xbb\xc2\x02\x46\x4a\x4b\x92\xc1\x68\xee\x79\x8a\x45\x5f\xd9\x19\x41\x9d\xdc\x22\x47\x63\xca\xc5\xfa\x1a\xa5\x4c\x9c\x71\xcf\x08\xd7\x82\x38\x71\x34\xf0\xc3\x03\xd0\xa8\xd0\x61\xf1\x23\xa3\x80\x3d\x1a\x9b\x91\x71\xf2\x93\xb9\xf7\xf3\x85\x58\x51\x49\x71\x41\xb3\x10\x78\x5c\xf3\x01\x0c\x69\x2e\xce\x10\x59\xad\x51\x44\xc5\x31\x92\x31\xba\xda\xb4\xac\x25\x99\x64\x04\xda\x09\x38\x24\xe8\xb1\xe3\x1a\x0a\xfb\x02\xba\x76\xb8\x80\x0f\x3d\x34\x97\x31\x4f\x78\x05\xcf\x2a\x77\xbe\xff\xd4\xe0\x27\xa4\xf2\xb5\xc7\x6f\x16\x0d\x55\x46\x7d\xdf\x87\x8d\x50\x96\x3a\x6f\x40\x85\xc2\xa6\xb2\xb5\x8e\x76\x42\xd8\x1c\x76\x10\x4e\x27\x1f\x21\x80\x0c\x89\x50\xdf\xd8\x65\x27\x37\x27\x89\x96\xf9\xb1\xab\x35\xcd\x97\x4a\x3b\x4b\xff\x6c\x13\x92\xfd\x2d\xa6\xed\x16\x9f\x53\xac\x23\x93\x02\xbe\xa7\x3c\x4a\x1d\x11\x0c\xcb\x55\x86\x40\xae\x86\x4d\x12\x55\xd4\xcd\x37\x5f\xdc\x33\xde\x6e\xc7\xab\x15\x24\x52\xe7\x8c\x1e\xd2\x0f\x06\x8f\xbb\x4b\xd3\x28\x29\x0c\x76\x71\x1e\x58\x8e\x70\x61\x99\x45\x60\xc6\x4d\xc2\x8b\x23\xf8\x8b\xe0\xde\x52\x1b\x48\xe8\x2d\xad\xb8\x37\x98\xa5\xc8\xb2\x15\xbe\xcb\xd3\x5d\x9e\x26\x86\xb2\x13\xb7\x6a\x55\xee\xa6\x3b\x1c\x0c\x73\x29\xc5\x05\x35\xf5\x47\xf3\x55\x32\xc3\x7d\x3e\x71\xfd\xbb\x85\x16\x61\xb9\xb4\x82\xea\xbb\xf4\x27\x5b\xbd\x33\xfe\xaf\xbe\x3a\x56\xf5\xff\x69\x2f\xf8\xaf\x00\x00\x00\xff\xff\x77\x1c\x45\x45\xec\x04\x00\x00") + +func template_filesPbExchange_rateProtoBytes() ([]byte, error) { + return bindataRead( + _template_filesPbExchange_rateProto, + "template_files/pb/exchange_rate.proto", + ) +} + +func template_filesPbExchange_rateProto() (*asset, error) { + bytes, err := template_filesPbExchange_rateProtoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/pb/exchange_rate.proto", size: 1260, mode: os.FileMode(436), modTime: time.Unix(1465850767, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesPbServicePbGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd4\x5a\xe9\x73\xda\x48\x16\xff\x8c\xfe\x8a\x1e\x3e\xa4\x20\x45\x00\x71\x09\xd8\xf2\x87\xa9\x1c\xbb\xae\xd9\x1c\x15\x67\xf7\x4b\x2a\x95\x69\x89\x16\xd6\x0e\x48\x8c\x24\x1c\x7b\x5d\xfe\xdf\xf7\x1d\x2d\xba\x25\x0e\x1f\xc1\x63\xef\x54\xa5\x47\x74\xbf\xf7\x7e\xef\xee\x27\x70\xa7\x23\x5e\x27\x33\x25\xe6\x2a\x56\xa9\xcc\xd5\x4c\xf8\x57\x62\x95\x26\x79\x12\xbc\x82\xbd\x57\xf3\xa4\xed\x00\x4d\x96\xac\xd3\x40\x4d\x45\xa6\xd2\x8b\x28\x50\x6d\xa2\xc0\x83\x37\x1f\xc5\x87\x8f\x5f\xc4\xdb\x37\xa7\x5f\x7e\x71\x9c\x95\x0c\xfe\x90\x73\x25\x56\xbe\xe3\x44\xcb\x55\x92\xe6\x2c\x4b\xd4\xe7\x51\x7e\xbe\xf6\xdb\x41\xb2\xec\xcc\x93\x85\x8c\xe7\x1d\x3a\xf0\xd7\x21\x3f\xd4\x0b\xfa\x70\x99\x8b\x3a\x2c\x9b\x8d\xa5\xcc\xcf\x45\x1d\xd7\xcd\xd6\xf7\x8a\xbc\x64\xbe\x50\x1d\xb9\x8a\xea\x1b\xd4\x86\x53\x0b\x92\x38\x57\x97\x20\x8c\xf1\xda\x49\x3a\xef\x5c\x76\x62\x95\x77\xf4\x49\xdd\xa9\xcd\xd3\x55\x80\x04\x28\xa0\x6d\xd1\xe1\x7e\xdd\x69\x3a\x68\xe1\x67\x15\xaa\x54\xc5\x81\x12\x2c\x3b\x13\x60\x4f\xb6\x5e\xad\x52\x95\x65\x42\xa5\x69\x92\x66\x22\x0a\x45\x7e\xae\xae\x84\x4c\x95\x88\x93\x5c\x24\xf0\x29\xfd\x11\x65\x4a\xac\x33\x35\x6b\x3b\x17\x32\x05\xad\x4f\xd8\x1b\xed\xf7\x32\xcd\xce\xe5\x62\xb3\x0b\xe6\xb6\xdf\xa2\xa0\x70\xb3\x85\xf6\xb6\x4f\xe3\xd0\x71\xf2\xab\x95\x12\x67\xec\xf7\xb3\x5c\xe6\x6b\x40\x8b\xf3\x7e\xcf\x71\xc0\x8e\x8c\x4c\x2d\x9d\x7e\x7f\xf7\xeb\xe9\x3f\x2b\x0c\x27\xa2\x5b\xa5\xfa\xf8\x9b\x10\x5b\x54\x2e\xda\x8c\x2a\x94\x69\x63\xb9\x54\xa4\xd3\xea\x2b\x41\x7f\xcb\xf2\x34\x8a\xe7\xd7\x4e\xad\x3b\x15\x75\xc4\xab\xb7\x9c\x9a\x0b\xcf\x1f\x7f\x83\xa7\x9b\x1d\x22\x2e\xe4\x62\x5d\xc8\x60\xee\x6f\x24\x0a\x64\xb0\x80\xa9\xe8\x82\x0c\x14\x30\x05\xc5\x5c\x94\xe2\x84\xeb\x38\x10\x8d\xcb\xb2\xa8\xa6\x38\x23\xfe\x46\x53\xb0\x20\x01\x32\x52\x95\xaf\xd3\x58\xbb\xf7\x6d\xbc\x5e\x7e\x00\x95\x1b\xdb\x56\xb4\xd8\x77\x8d\xcb\x66\x13\x00\x58\x7e\x45\x3a\x72\xbf\x51\x59\x90\x46\xab\x3c\x49\x01\xa5\xf1\xf5\x9b\x7f\x95\x03\xeb\x57\x54\xb9\x29\xae\x85\x46\x0b\xa3\x85\x32\x94\xae\x26\xb8\xee\xde\x88\x9b\x22\x6c\x24\xf3\xb3\xfa\x73\xad\x20\x52\xa0\xee\x3a\xc8\x51\xdd\x77\xeb\xc5\x42\xf8\x49\xb2\x10\xbf\x17\x65\x30\xad\x83\xd3\x80\xbd\xe5\xb6\x92\x55\xde\x42\x65\x4f\x42\x20\xab\x8b\xff\x64\x49\x3c\xad\xe3\x73\x2b\x59\x46\xb9\x5a\xae\xf2\xab\xfa\xef\xc6\x3f\x4b\xf1\xb2\x84\xd3\x84\x94\xcd\x54\x0e\x9a\xef\xf8\xef\x5a\xbc\x5c\x42\x18\x4a\x0c\xd7\xa8\xf0\x3e\x59\x55\x67\x97\x64\x95\xdc\xfe\x3a\x59\x42\xfd\xe7\x5f\xa0\xb4\x34\xd3\xb2\xb9\x11\x5c\x15\xfb\x09\x59\xde\x43\x05\x41\xbb\xd8\xd2\xf4\x7a\x1f\xd7\xb1\xe3\x92\xad\xa0\x84\x94\x15\x18\x5d\x09\xe5\xba\x38\x18\xa3\x8c\x68\x5a\x0a\xb2\xe6\x64\xe5\xb7\x4b\x9c\x45\xec\x34\xcd\x6d\xd1\x63\x6d\xee\x13\x3e\xe6\xd8\x1d\xbf\x42\xda\xb1\x03\x58\xc8\xbd\x67\x04\x0b\xb6\x9f\x0a\xa1\x6b\x42\xf8\x09\xf4\xdb\x2a\x2c\xdb\xab\x16\xc1\x5d\x5c\x6a\x91\x97\xfd\x59\x92\x73\x2c\x67\x96\x84\xde\xd1\x93\x25\x9e\x9f\x72\x63\xaf\xea\xc6\xe7\x51\x07\xb6\x2e\x77\x0f\xd9\xae\x1a\x28\x4b\x3a\x6e\xd0\xee\x99\xff\x65\xa6\x9f\x0a\x5b\x9f\xc2\x46\x72\xa3\x38\x42\xdf\x40\xa4\x58\xf1\xcf\x6a\x1e\x65\xb9\x4a\xbf\x40\x4c\x1b\xd5\xb6\xd9\x88\xa3\x45\xb3\x25\xea\x18\x16\xfb\xa0\xde\xbc\x85\x5d\x6b\xbd\x83\x9f\x4f\xf6\x0a\xb0\x53\xd5\xe2\xb6\xb6\x6f\x61\xdd\x46\xb6\xf7\xb7\x99\xf1\xd2\x6e\xd4\xb7\xf2\xae\xb5\x63\x90\xa9\xee\xd1\x64\x82\xd3\xc0\x91\x87\x3d\x3d\x65\x42\x4e\xd1\xff\xf5\x2e\x4e\x96\xed\xd7\x8b\x48\xc5\x39\x1c\xc4\x04\xfa\xe5\x3c\x02\xa1\x99\x90\xc0\xb3\x5c\x41\xec\x5f\xe5\x11\x0c\x5c\x32\x83\x69\x3b\x8f\x92\x18\x75\x50\x71\xb6\x06\xb8\xfc\x5c\xe6\xb0\x00\xb1\x19\xd8\x31\x5b\x50\x0c\x6c\x22\xbf\xcc\x23\x7f\xa1\xc4\x0f\x18\x90\x51\x4d\x42\x14\xc5\x60\x1e\xe5\x48\xe6\x2b\x2c\x03\x0d\x36\x13\x72\x2e\x23\x98\x24\xdb\x7a\xa0\xc4\xf1\x93\xd4\x3c\x03\xbb\xc1\x07\x9f\x98\xf7\x34\xfb\xb7\x4a\x33\x50\xa7\x4f\x4a\xb3\x0d\xe2\xd7\x4f\xa7\x22\x4c\x52\xf1\x7a\x9d\xa2\xdf\xae\xde\x5e\x06\xe7\x30\x45\x2b\xed\xe3\xe2\x85\x41\x77\x9b\x3d\x54\x5a\x16\xe4\xb8\x4a\x43\x09\x5c\x90\xd7\x00\x81\xe1\xa0\x7a\x90\xa0\x3f\x78\x22\x58\x83\x0b\x95\x66\x15\x68\x3c\x41\x83\xdb\xb4\x58\xa7\x56\x08\xfe\x0c\x87\x7f\x57\x39\xfe\xaf\x11\xe4\x97\xd5\x60\xe0\x18\x28\x5e\xee\x20\xd6\xd9\xd9\x12\xd0\xd7\x32\xd1\x6e\xb7\x39\x5e\x72\xb1\xf8\xb8\xc2\x50\x40\xd1\xee\x66\xe3\xc4\x6c\x71\x8a\x34\xb5\xfa\x80\x76\x01\x21\x14\x12\x4c\x58\x26\x6b\x32\x51\x24\xb1\xda\x28\x8c\x91\x95\x31\xe5\x8f\x90\x44\x47\xe6\x69\xeb\xca\xe6\x68\x61\x77\x33\x47\x13\xdf\xd7\x9c\x0d\xdb\x4e\x73\xc0\x58\xca\x28\x6e\xe3\x22\x09\xf9\x93\x8e\xb0\xbe\x33\xf6\xeb\x57\xea\x3d\x07\x55\x2a\x77\x99\x8a\x16\xd8\x08\x36\xc0\x2a\x75\x6a\xb8\xb1\x1f\xd5\xea\x39\x07\x31\xed\xfe\xb2\x41\x2c\x6e\xc9\xe0\x60\xde\x9a\x6b\x33\x08\xc4\xcb\x6a\x85\x17\x2d\xfb\x83\xfa\x71\x30\xfd\x1b\x3b\x98\x9b\xb7\x54\x8c\x79\xf3\x79\x71\x50\xc5\xeb\x20\xb8\x31\x57\x2d\xe0\x1c\xa4\x86\x77\xa0\xe7\x51\x46\x68\x5f\xb2\xce\xc5\xf4\x44\xc4\xea\x47\xe3\x00\x07\x24\x07\xb0\x20\x21\x21\x9d\xc6\x17\xc9\x1f\xa4\x32\x5c\x1e\x1d\xb8\x16\xf6\xb8\xb1\xb3\x43\x64\x1d\xad\x02\xcd\xd7\xa0\x7e\xd0\x0e\x02\x36\x02\x6c\x00\x0c\xe8\xfc\x08\xf3\x0b\xe8\x13\x2d\x50\xbb\xc2\xfd\xf0\x91\x94\x76\x6a\x37\x9b\x90\x90\x04\x38\x78\xa8\xe3\x9f\xb0\xe0\x0f\x38\xbe\xc2\x71\x0c\xc7\x6b\x91\x4f\xea\xf8\xc7\x6e\x5e\x15\x8f\x56\x26\xac\x07\x3a\x71\x33\xe5\x3c\x9d\xdf\x1e\xaf\xf9\x56\x3c\x56\x9a\x0b\x1f\xe8\x2f\x94\xf1\x28\xde\x82\x8b\xe9\x8c\x6e\xa3\xe3\xcc\x43\x5a\xd6\x63\xcd\x43\xd5\x48\x1d\xe8\xe0\xcf\x61\xde\x39\xa8\x6e\xb9\xef\x3d\xca\x3c\xb3\x85\x5f\xf9\x52\xea\x61\xf3\xca\x96\xd4\xd2\xeb\xfd\xfe\x79\x84\x0a\xb3\x78\xed\x39\x98\x3f\x8d\x4c\xcf\x13\xfc\xb1\x25\xb2\xf4\xe2\x70\xc6\x51\xcd\x65\x9b\x97\x2a\x7d\xd6\x78\xf1\x7d\x0f\xd7\x77\xed\x2b\x7c\x57\x25\xf1\x46\xc3\xbd\x2c\x3b\xb2\xe9\xfb\x3f\x64\x3c\x5b\xa0\xc2\xa0\xe0\x26\xe9\xaf\x6f\xa0\x40\x77\x35\x96\x99\x0a\x04\x62\x34\x2c\xd2\x26\x7b\xa8\xc5\xec\x81\xc2\xf7\x66\x6e\x0e\xff\x8a\x65\x7a\xc5\xe6\x9d\x9a\x33\xf0\x70\x09\xc8\xb4\x1c\xc8\xd8\x43\xe3\x06\xc7\x67\xd3\x2a\x80\x14\xd4\x01\x59\xcd\xbf\xdd\xa5\x75\x00\x97\xad\xe0\xc9\x16\x35\x78\xa0\xdd\x38\x1c\xa3\xf6\x9e\xe1\x0c\x6d\x6f\x32\x4a\x1c\x26\xa8\xd9\x8b\x6d\x07\x84\x09\x82\xf1\xa7\x29\x7d\x53\x01\x88\x2d\xd8\xc2\x6f\xa4\xdf\xab\xfc\x3c\x99\x4d\x1f\x30\x31\x11\xec\x39\x47\x11\x91\x29\x3c\x3b\x83\x97\xaa\x3f\x45\x29\x6e\xfb\xe2\x70\x14\x8f\x00\x5a\x7b\x4f\x03\xe3\x40\x36\xed\x8e\x6e\x85\xa6\x70\x28\xfe\x0b\x93\x96\xd0\xb6\xdd\x33\xbf\x75\xfb\xf9\x3f\xc8\xef\x4a\x1b\x7d\x36\xf9\x6d\xcd\xc0\x4f\x90\xdf\x9b\xc1\xf4\x19\xe5\x77\xc9\x23\xdb\xf9\x5d\x09\xe4\xf1\xf3\x5b\x7f\x6b\xf6\x3c\x53\xba\x7c\x33\x3f\x69\x16\x9b\x17\x8a\xbf\x28\x71\x8b\x97\x81\x27\xce\x55\xdb\x6e\x4e\xcf\x72\x50\x8e\x9f\x91\x38\x29\x3d\xd3\x7c\xb4\x67\xba\x27\xcd\xc6\xe2\x35\xed\x2f\xca\x45\x7e\xd1\x7a\xe2\x4c\x34\x36\x73\x1e\xda\xc1\x78\x48\x16\xd2\x17\xf8\x77\x98\x84\x37\x5f\x9f\x9b\xad\xeb\xcd\x5f\x5f\xe0\xdf\x25\x4c\xe9\x07\x8d\x3d\x92\xd0\x6d\x3a\x99\xf1\x17\x91\x29\xbc\x0a\x1c\xb6\x93\x7f\x23\x71\x6a\x1c\x98\x6c\x2a\xbe\x7e\x23\x78\xfe\xac\xd1\x6b\xf8\x4f\x93\x68\x15\xf6\x0c\x72\xb5\x02\x9d\x22\xff\x90\x31\x1e\x85\xdc\xb4\x6e\xc5\xb4\x2e\xd7\x07\x60\x56\x46\xab\x03\x98\xa6\x2f\xde\x11\xa6\x7c\xc3\x1d\x90\x5c\x64\xf9\x1d\xe5\xda\x7d\xaa\x90\x8a\xff\xce\xf2\x54\xc9\x25\x04\xae\x88\x1c\x6f\x50\xe4\x6e\x38\xb0\x72\x26\x73\x39\xdd\xfa\x5d\xd0\xa9\xfe\x1c\x28\xca\xbf\x8a\xbd\x03\xfa\x46\xbd\xf4\x37\x5b\xf5\x56\x55\x0a\xfe\xc0\x49\xb9\x5d\xd9\x87\x34\xe6\xdf\x27\xf9\xcb\x87\x7e\x7f\x28\xf0\x13\xbd\x27\x4b\x31\xff\x6f\xb4\x5a\xa9\x99\x78\x57\x62\xa2\xdf\x44\x9d\x5a\xf7\xd2\x0d\x5b\xa2\x7b\x39\xf6\x71\xed\x8e\x69\xed\x5a\xeb\x04\xd7\x91\x22\x1a\x3e\xed\xe1\x1a\x12\xd7\x64\x80\xeb\x90\x76\x82\x19\xae\x03\xa2\x0c\x25\x3d\xe3\x9f\x09\x01\x40\xd7\x30\x04\x7d\x5c\x19\xb2\x4b\x90\x63\x62\x70\x47\xb8\x7a\x44\xd9\xa7\x75\x44\x22\x5c\x5a\x15\x01\x0c\x3c\x5c\x7d\x82\x91\xac\x8a\x47\x00\x13\x26\x22\xb6\xc1\x90\x9e\xfb\xe6\x79\x40\xcf\x33\xd2\xd4\x25\xb6\x01\x89\xe8\xd3\x4e\x68\xd9\x2a\x49\x89\x09\x3d\xfb\xc4\xdb\x1f\x11\x40\xcf\xa5\x2d\xd2\xd7\xa3\x03\x8f\x74\x19\xd0\x4e\x38\x30\x1a\xc9\xd0\xa8\x22\x09\x38\x24\x07\x76\x49\xc5\xbe\xe5\x46\x45\x4a\x78\x0c\x20\xe9\x78\x4c\x5b\x63\x32\x76\x4c\x6c\x3d\x82\x51\xcc\x40\xa2\x3d\x12\xda\x27\xfa\x21\x3d\xfb\x04\xe6\x92\x5a\x93\xbe\x59\xd9\x99\xc1\x80\x00\x98\x61\x42\x76\xb8\x1c\x34\xda\x19\xb1\xc7\x27\xc6\xd7\x4c\xd9\x23\x55\x42\x72\x48\x9f\xe0\x7d\xda\x0f\x49\x21\x8f\xe8\x83\xae\x4e\x0d\xb2\x60\x68\xcc\x67\xdd\x19\x7f\xc6\x96\x31\x30\x6b\x44\xcf\x93\xb1\x11\xe4\x29\xa3\x96\x67\x39\x4a\xb1\x93\x7b\x04\x10\xfa\x46\x3b\x6d\x41\x40\xf8\x0c\x1c\x98\x08\x75\x2d\xdd\x7b\x9c\x14\x04\x39\x22\xc7\xce\x88\x7e\x44\xa2\xbb\xa4\x6e\xdf\x25\x00\xf6\x26\x3b\xc1\x25\x86\x9e\x34\xa1\x0e\x69\xc7\x63\x57\x10\xd8\x70\x64\xec\xeb\x05\x26\xa4\x9c\x69\x5c\x01\x8a\x68\xfc\x90\x00\x3c\xd6\x8e\x8f\x87\xc6\x02\xc9\xf9\xd3\xd3\xe1\xc2\xd5\x37\x0e\x74\x3d\x03\xc0\xb6\xba\x56\x76\x49\x5f\xab\x48\x75\xe0\x19\x17\xcd\x5c\x93\x1b\x7d\x22\x0d\xb8\x64\xd8\x2d\x04\xd6\xe3\xd4\x9c\x18\x55\x5c\x12\xc7\xc5\xc8\x35\x3f\x20\x4a\x97\x83\x3c\xe4\xd2\xa0\x03\xcf\x6a\x18\xdc\x3c\x66\x24\x88\x4b\x6f\x12\x9a\x44\xe4\x48\xf8\x5c\x5c\x24\x6e\x38\x31\x5c\xec\x8f\x99\xae\x03\x02\xf0\x7a\xba\x34\xcc\xb3\x6b\x42\x17\x92\xa6\x63\xcf\x68\xca\x5d\x88\x73\xaf\xc7\xc0\x24\x9a\x73\x52\x71\x47\xea\x73\x0c\xe8\x78\x68\x55\x60\xc0\x91\x20\x98\x7e\xcf\x24\x9f\x67\x55\x03\x0b\x62\xef\x73\x7b\xe8\xb2\xab\x69\xc7\x1f\x68\x45\xc9\x82\xb1\x31\x9f\x93\x92\xb3\x78\xc2\xcf\x64\x38\x37\x0c\x16\x31\xe3\x95\x23\x64\x47\x65\x60\x52\x59\x71\xf0\x03\x02\x08\x58\x10\x1d\xfb\xdc\x0c\x3c\x93\x2d\x33\xdf\x38\x61\xc4\xbd\x28\x34\xce\x51\x9c\x3f\x56\xee\x71\x6c\xb8\xf1\x81\x27\x8c\x8b\x46\xbe\x71\x11\x67\x08\xbb\x65\xe4\x1a\x77\x71\x4b\x1f\x91\xa0\x1e\xbb\x88\xf6\x47\x24\x4e\xb1\x2a\x9e\x45\xe9\x13\x00\x8b\x76\xd9\xcb\x7c\x13\x04\x26\x98\x0c\xd9\x1b\x1b\x6b\x46\x56\x01\x72\x7d\x74\xad\x3b\x83\x7b\xf3\x58\x5a\x00\xdc\x5b\x7c\xab\xc3\x70\x24\x38\xa4\xec\xba\x3e\x5f\x3e\xdc\x1e\xa4\x39\x65\x7d\x47\x56\x61\xf2\xe5\xc3\xb1\xe9\x72\xab\x98\x70\x58\x08\x9f\xeb\x73\x40\x82\x86\xca\x68\xcd\xad\x82\xeb\x93\x3b\x28\x27\x02\xe7\x12\x5f\x3b\xb3\xae\xc9\xba\x61\x68\xd5\x41\xc8\xb5\xc7\x4d\xaa\x5b\x5d\xd9\x9b\xbc\xf2\xed\xc6\x8d\x9d\x73\x89\xaf\x1a\x49\x3b\x7c\x57\x6f\x78\x61\x08\xf9\x5f\x00\x00\x00\xff\xff\xe1\x13\x8c\x8d\x45\x2e\x00\x00") + +func template_filesPbServicePbGoBytes() ([]byte, error) { + return bindataRead( + _template_filesPbServicePbGo, + "template_files/pb/service.pb.go", + ) +} + +func template_filesPbServicePbGo() (*asset, error) { + bytes, err := template_filesPbServicePbGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/pb/service.pb.go", size: 11845, mode: os.FileMode(436), modTime: time.Unix(1466636261, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesPbServiceProto = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x53\xdd\xce\xd2\x40\x10\xbd\xef\x53\x4c\x7a\x55\x6e\xa8\xc6\x3b\x1b\x2f\x0c\x51\x63\x34\xd1\xc0\x03\x98\xa5\x19\x4a\x63\xbb\xb3\xee\xce\x12\x08\xe1\xdd\x9d\xfd\x29\x8a\xd4\x2f\x5f\xc8\xc7\x05\x0b\x33\x67\xce\x9c\x73\xba\x75\x27\xcd\xea\x08\xef\xa0\x34\x96\x98\xde\x94\x4d\x51\x18\xd5\xfe\x54\x1d\x82\xd9\x36\x45\x3f\x1a\xb2\x0c\x25\x1e\xdb\xbd\xd2\x1d\xfe\xb0\x8a\x71\x19\xb1\x01\x3a\xb5\x3b\xa2\x6e\xc0\x5a\x99\xbe\x56\x5a\x13\x2b\xee\x49\xbb\x3f\x38\x87\xf6\xd0\xb7\x08\x2b\x6f\x2d\xea\xf6\xf4\x21\xd3\x6d\x72\xfd\x5c\x14\x00\x75\x5d\xc3\x1a\xd9\x5b\x0d\x0a\x8c\xb2\xdc\xb7\x5e\x59\x98\x56\x43\x58\x0d\x3b\xb2\xd2\x6d\x33\x8f\x4c\x59\xd3\xc2\x44\xb7\x16\xc4\x27\xe4\x70\x54\x33\xb5\x35\xfe\xf2\xe8\x78\x01\x36\x6e\x71\x30\x0f\x72\x46\xb4\xe3\x42\x44\x81\x7c\xc8\x04\x2f\x50\x25\x8b\x4b\xb1\xb8\xdc\x33\x9b\x85\x64\x96\x00\x00\x1d\xf2\x5b\x28\xeb\x19\xb2\x32\x22\x2e\x8d\x1c\x97\xc9\xe2\x8a\xf4\x01\x25\x34\x25\x36\x47\xf2\x9a\xa1\xd7\x40\x1a\xaf\xa6\x80\x49\x9a\xc4\x7b\x14\xab\x11\x17\x23\xc8\x09\xcc\x58\xce\x8c\xd5\x4c\xed\x69\xcb\x57\xd0\x4b\x58\xce\x64\x73\x96\x25\x0d\x10\x3b\xe0\xe4\x62\x78\x07\xb4\x4b\xff\xd2\xc3\xcf\x86\x36\xb1\x57\xa5\xe3\x5e\xf6\x54\x7f\x54\x69\x9a\x9f\x13\xf7\xbd\xd7\xdd\x55\x0f\xda\x2c\x27\x54\xab\xf0\x75\x2f\x25\x55\x1f\x15\x12\xa6\x6f\x64\x88\x90\x02\xb5\x1f\x21\xbf\x0c\x49\x69\x1c\xfb\xf8\xfe\xf3\x57\x61\x78\x15\x80\xdf\xbe\xc8\xaf\xd7\x4d\x80\x8f\xe8\x5c\xb8\x0e\x37\x59\xc5\x81\x2d\xd1\x00\x3b\x3f\x0c\xff\xc5\x26\xd9\x11\x7c\xbb\x2f\x3f\x9b\x7f\xe7\xfe\x8a\x00\xce\x77\xf5\x67\xb2\xfd\x0e\x00\x00\xff\xff\x7e\x50\xc0\x06\x66\x04\x00\x00") + +func template_filesPbServiceProtoBytes() ([]byte, error) { + return bindataRead( + _template_filesPbServiceProto, + "template_files/pb/service.proto", + ) +} + +func template_filesPbServiceProto() (*asset, error) { + bytes, err := template_filesPbServiceProtoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/pb/service.proto", size: 1126, mode: os.FileMode(436), modTime: time.Unix(1465850767, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _template_filesServerServiceGo = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x74\x8f\x41\x6a\xc3\x30\x10\x45\xd7\xd1\x29\x44\x56\x76\xa9\xa3\x43\x84\xd2\x4d\x17\x25\xe9\x05\x24\xf1\xab\x88\x10\x8d\x32\x1a\x95\x86\xd2\xbb\x57\x21\x8d\xc1\x26\x5e\xd9\x7f\xfe\xbc\x79\x28\x5b\x7f\xb4\x01\xba\x80\xbf\xc0\x4a\xc5\x53\x26\x16\xdd\xa9\xd5\x3a\x44\x39\x54\xb7\xf1\x74\x32\x1f\x35\xe1\xcd\x3a\x13\xc8\x99\xcc\x24\xe4\x87\x80\x34\x04\x3a\x46\x19\x9c\x2d\x30\x2d\x82\xad\xc0\x64\xb7\x56\xbd\x52\x72\xc9\xd0\xdb\xca\x8c\xe4\x2f\x2f\xdf\xfe\x60\x53\xc0\xbe\x49\xa2\x87\x8e\x49\xc0\x9f\xb6\xfd\xfd\xa8\xd5\xbd\xdc\x35\xfa\x15\x72\xfd\x74\x8c\xb3\x7e\xca\x6e\xf3\xa0\xdb\xe1\x5c\x51\xa4\xd7\xdd\xe2\x42\xc9\x94\x0a\x9e\x35\x98\x89\xfb\xa9\x61\x4b\xa9\xbd\x53\x1e\x1a\xfe\xbb\x65\xc3\xb8\x30\x37\xec\xc5\x4a\x2d\xe3\xd1\x5b\x9c\xde\xb9\xcf\xe6\xe8\x7b\x4c\x61\x04\xaf\x61\x8a\xdd\x26\x33\xe8\x57\xfd\x05\x00\x00\xff\xff\x6b\xc8\x68\x20\xb7\x01\x00\x00") + +func template_filesServerServiceGoBytes() ([]byte, error) { + return bindataRead( + _template_filesServerServiceGo, + "template_files/server/service.go", + ) +} + +func template_filesServerServiceGo() (*asset, error) { + bytes, err := template_filesServerServiceGoBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "template_files/server/service.go", size: 439, mode: os.FileMode(436), modTime: time.Unix(1466709031, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +// Asset loads and returns the asset for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func Asset(name string) ([]byte, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) + } + return a.bytes, nil + } + return nil, fmt.Errorf("Asset %s not found", name) +} + +// MustAsset is like Asset but panics when Asset would return an error. +// It simplifies safe initialization of global variables. +func MustAsset(name string) []byte { + a, err := Asset(name) + if err != nil { + panic("asset: Asset(" + name + "): " + err.Error()) + } + + return a +} + +// AssetInfo loads and returns the asset info for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func AssetInfo(name string) (os.FileInfo, error) { + cannonicalName := strings.Replace(name, "\\", "/", -1) + if f, ok := _bindata[cannonicalName]; ok { + a, err := f() + if err != nil { + return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) + } + return a.info, nil + } + return nil, fmt.Errorf("AssetInfo %s not found", name) +} + +// AssetNames returns the names of the assets. +func AssetNames() []string { + names := make([]string, 0, len(_bindata)) + for name := range _bindata { + names = append(names, name) + } + return names +} + +// _bindata is a table, holding each asset generator, mapped to its name. +var _bindata = map[string]func() (*asset, error){ + "template_files/controller/controller.go": template_filesControllerControllerGo, + "template_files/entityhelper/entity_helper.go": template_filesEntityhelperEntity_helperGo, + "template_files/entityhelper/exchange_rate.go": template_filesEntityhelperExchange_rateGo, + "template_files/gokit-base-cmd/grpc_binding.go": template_filesGokitBaseCmdGrpc_bindingGo, + "template_files/gokit-base-cmd/main.go": template_filesGokitBaseCmdMainGo, + "template_files/gokit-base-cmd/pure_service.go": template_filesGokitBaseCmdPure_serviceGo, + "template_files/mv-shared/mysql/mysql.go": template_filesMvSharedMysqlMysqlGo, + "template_files/pb/compile.sh": template_filesPbCompileSh, + "template_files/pb/exchange_rate.pb.go": template_filesPbExchange_ratePbGo, + "template_files/pb/exchange_rate.proto": template_filesPbExchange_rateProto, + "template_files/pb/service.pb.go": template_filesPbServicePbGo, + "template_files/pb/service.proto": template_filesPbServiceProto, + "template_files/server/service.go": template_filesServerServiceGo, +} + +// AssetDir returns the file names below a certain +// directory embedded in the file by go-bindata. +// For example if you run go-bindata on data/... and data contains the +// following hierarchy: +// data/ +// foo.txt +// img/ +// a.png +// b.png +// then AssetDir("data") would return []string{"foo.txt", "img"} +// AssetDir("data/img") would return []string{"a.png", "b.png"} +// AssetDir("foo.txt") and AssetDir("notexist") would return an error +// AssetDir("") will return []string{"data"}. +func AssetDir(name string) ([]string, error) { + node := _bintree + if len(name) != 0 { + cannonicalName := strings.Replace(name, "\\", "/", -1) + pathList := strings.Split(cannonicalName, "/") + for _, p := range pathList { + node = node.Children[p] + if node == nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + } + } + if node.Func != nil { + return nil, fmt.Errorf("Asset %s not found", name) + } + rv := make([]string, 0, len(node.Children)) + for childName := range node.Children { + rv = append(rv, childName) + } + return rv, nil +} + +type bintree struct { + Func func() (*asset, error) + Children map[string]*bintree +} +var _bintree = &bintree{nil, map[string]*bintree{ + "template_files": &bintree{nil, map[string]*bintree{ + "controller": &bintree{nil, map[string]*bintree{ + "controller.go": &bintree{template_filesControllerControllerGo, map[string]*bintree{}}, + }}, + "entityhelper": &bintree{nil, map[string]*bintree{ + "entity_helper.go": &bintree{template_filesEntityhelperEntity_helperGo, map[string]*bintree{}}, + "exchange_rate.go": &bintree{template_filesEntityhelperExchange_rateGo, map[string]*bintree{}}, + }}, + "gokit-base-cmd": &bintree{nil, map[string]*bintree{ + "grpc_binding.go": &bintree{template_filesGokitBaseCmdGrpc_bindingGo, map[string]*bintree{}}, + "main.go": &bintree{template_filesGokitBaseCmdMainGo, map[string]*bintree{}}, + "pure_service.go": &bintree{template_filesGokitBaseCmdPure_serviceGo, map[string]*bintree{}}, + }}, + "mv-shared": &bintree{nil, map[string]*bintree{ + "mysql": &bintree{nil, map[string]*bintree{ + "mysql.go": &bintree{template_filesMvSharedMysqlMysqlGo, map[string]*bintree{}}, + }}, + }}, + "pb": &bintree{nil, map[string]*bintree{ + "compile.sh": &bintree{template_filesPbCompileSh, map[string]*bintree{}}, + "exchange_rate.pb.go": &bintree{template_filesPbExchange_ratePbGo, map[string]*bintree{}}, + "exchange_rate.proto": &bintree{template_filesPbExchange_rateProto, map[string]*bintree{}}, + "service.pb.go": &bintree{template_filesPbServicePbGo, map[string]*bintree{}}, + "service.proto": &bintree{template_filesPbServiceProto, map[string]*bintree{}}, + }}, + "server": &bintree{nil, map[string]*bintree{ + "service.go": &bintree{template_filesServerServiceGo, map[string]*bintree{}}, + }}, + }}, +}} + +// RestoreAsset restores an asset under the given directory +func RestoreAsset(dir, name string) error { + data, err := Asset(name) + if err != nil { + return err + } + info, err := AssetInfo(name) + if err != nil { + return err + } + err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) + if err != nil { + return err + } + err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) + if err != nil { + return err + } + err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) + if err != nil { + return err + } + return nil +} + +// RestoreAssets restores an asset under the given directory recursively +func RestoreAssets(dir, name string) error { + children, err := AssetDir(name) + // File + if err != nil { + return RestoreAsset(dir, name) + } + // Dir + for _, child := range children { + err = RestoreAssets(dir, filepath.Join(name, child)) + if err != nil { + return err + } + } + return nil +} + +func _filePath(dir, name string) string { + cannonicalName := strings.Replace(name, "\\", "/", -1) + return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) +} + diff --git a/protoc-gen-gokit-base/template/controller/controller.go b/protoc-gen-gokit-base/template_files/controller/controller.go similarity index 100% rename from protoc-gen-gokit-base/template/controller/controller.go rename to protoc-gen-gokit-base/template_files/controller/controller.go diff --git a/protoc-gen-gokit-base/template/entityhelper/entity_helper.go b/protoc-gen-gokit-base/template_files/entityhelper/entity_helper.go similarity index 100% rename from protoc-gen-gokit-base/template/entityhelper/entity_helper.go rename to protoc-gen-gokit-base/template_files/entityhelper/entity_helper.go diff --git a/protoc-gen-gokit-base/template/entityhelper/exchange_rate.go b/protoc-gen-gokit-base/template_files/entityhelper/exchange_rate.go similarity index 100% rename from protoc-gen-gokit-base/template/entityhelper/exchange_rate.go rename to protoc-gen-gokit-base/template_files/entityhelper/exchange_rate.go diff --git a/protoc-gen-gokit-base/template/gokit-base-cmd/grpc_binding.go b/protoc-gen-gokit-base/template_files/gokit-base-cmd/grpc_binding.go similarity index 100% rename from protoc-gen-gokit-base/template/gokit-base-cmd/grpc_binding.go rename to protoc-gen-gokit-base/template_files/gokit-base-cmd/grpc_binding.go diff --git a/protoc-gen-gokit-base/template/gokit-base-cmd/main.go b/protoc-gen-gokit-base/template_files/gokit-base-cmd/main.go similarity index 100% rename from protoc-gen-gokit-base/template/gokit-base-cmd/main.go rename to protoc-gen-gokit-base/template_files/gokit-base-cmd/main.go diff --git a/protoc-gen-gokit-base/template/gokit-base-cmd/pure_service.go b/protoc-gen-gokit-base/template_files/gokit-base-cmd/pure_service.go similarity index 100% rename from protoc-gen-gokit-base/template/gokit-base-cmd/pure_service.go rename to protoc-gen-gokit-base/template_files/gokit-base-cmd/pure_service.go diff --git a/protoc-gen-gokit-base/template/mv-shared/mysql/mysql.go b/protoc-gen-gokit-base/template_files/mv-shared/mysql/mysql.go similarity index 100% rename from protoc-gen-gokit-base/template/mv-shared/mysql/mysql.go rename to protoc-gen-gokit-base/template_files/mv-shared/mysql/mysql.go diff --git a/protoc-gen-gokit-base/template/pb/compile.sh b/protoc-gen-gokit-base/template_files/pb/compile.sh similarity index 100% rename from protoc-gen-gokit-base/template/pb/compile.sh rename to protoc-gen-gokit-base/template_files/pb/compile.sh diff --git a/protoc-gen-gokit-base/template/pb/exchange_rate.pb.go b/protoc-gen-gokit-base/template_files/pb/exchange_rate.pb.go similarity index 100% rename from protoc-gen-gokit-base/template/pb/exchange_rate.pb.go rename to protoc-gen-gokit-base/template_files/pb/exchange_rate.pb.go diff --git a/protoc-gen-gokit-base/template/pb/exchange_rate.proto b/protoc-gen-gokit-base/template_files/pb/exchange_rate.proto similarity index 100% rename from protoc-gen-gokit-base/template/pb/exchange_rate.proto rename to protoc-gen-gokit-base/template_files/pb/exchange_rate.proto diff --git a/protoc-gen-gokit-base/template/pb/service.pb.go b/protoc-gen-gokit-base/template_files/pb/service.pb.go similarity index 100% rename from protoc-gen-gokit-base/template/pb/service.pb.go rename to protoc-gen-gokit-base/template_files/pb/service.pb.go diff --git a/protoc-gen-gokit-base/template/pb/service.proto b/protoc-gen-gokit-base/template_files/pb/service.proto similarity index 100% rename from protoc-gen-gokit-base/template/pb/service.proto rename to protoc-gen-gokit-base/template_files/pb/service.proto diff --git a/protoc-gen-gokit-base/template/server/service.go b/protoc-gen-gokit-base/template_files/server/service.go similarity index 100% rename from protoc-gen-gokit-base/template/server/service.go rename to protoc-gen-gokit-base/template_files/server/service.go