From eb87d64980f6f42a0b5b713cd88db7cc2609ac97 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Thu, 5 Aug 2021 16:32:15 +0300 Subject: [PATCH] all: remove pkg/errors --- dialect/gremlin/encoding/graphson/error.go | 4 +-- .../gremlin/encoding/graphson/interface.go | 6 ++--- dialect/gremlin/encoding/graphson/lazy.go | 4 +-- .../gremlin/encoding/graphson/marshaler.go | 5 ++-- dialect/gremlin/encoding/graphson/raw.go | 2 +- dialect/gremlin/encoding/graphson/slice.go | 6 ++--- dialect/gremlin/encoding/graphson/type.go | 6 ++--- dialect/gremlin/encoding/graphson/util.go | 2 +- dialect/gremlin/expand.go | 4 +-- dialect/gremlin/graph/edge.go | 4 +-- dialect/gremlin/graph/valuemap.go | 7 ++--- dialect/gremlin/http.go | 20 ++++++++------ dialect/gremlin/internal/ws/conn.go | 27 ++++++++++--------- dialect/gremlin/request.go | 2 +- dialect/gremlin/response.go | 9 ++++--- entc/load/internal/bindata.go | 8 +++--- entc/load/schema.go | 4 +-- entc/load/template/main.tmpl | 2 +- examples/traversal/example_test.go | 5 ++-- go.mod | 1 - go.sum | 2 -- 21 files changed, 65 insertions(+), 65 deletions(-) diff --git a/dialect/gremlin/encoding/graphson/error.go b/dialect/gremlin/encoding/graphson/error.go index a54a22ecf..6fffb968a 100644 --- a/dialect/gremlin/encoding/graphson/error.go +++ b/dialect/gremlin/encoding/graphson/error.go @@ -5,10 +5,10 @@ package graphson import ( + "fmt" "unsafe" jsoniter "github.com/json-iterator/go" - "github.com/pkg/errors" ) // EncoderOfError returns a value encoder which always fails to encode. @@ -22,7 +22,7 @@ func (decodeExtension) DecoderOfError(format string, args ...interface{}) jsonit } func decoratorOfError(format string, args ...interface{}) errorCodec { - err := errors.Errorf(format, args...) + err := fmt.Errorf(format, args...) return errorCodec{err} } diff --git a/dialect/gremlin/encoding/graphson/interface.go b/dialect/gremlin/encoding/graphson/interface.go index 8bca42043..fa75313da 100644 --- a/dialect/gremlin/encoding/graphson/interface.go +++ b/dialect/gremlin/encoding/graphson/interface.go @@ -6,6 +6,7 @@ package graphson import ( "bytes" + "errors" "fmt" "io" "reflect" @@ -13,7 +14,6 @@ import ( jsoniter "github.com/json-iterator/go" "github.com/modern-go/reflect2" - "github.com/pkg/errors" ) // DecoratorOfInterface decorates a value decoder of an interface type. @@ -122,7 +122,7 @@ func (efaceDecoder) reflectType(typ Type) reflect2.Type { func (efaceDecoder) reflectSlice(data []byte) (reflect2.Type, error) { var elem interface{} if err := Unmarshal(data, &[...]*interface{}{&elem}); err != nil { - return nil, errors.Wrap(err, "cannot read first list element") + return nil, fmt.Errorf("cannot read first list element: %w", err) } if elem == nil { @@ -139,7 +139,7 @@ func (efaceDecoder) reflectMap(data []byte) (reflect2.Type, error) { bytes.Replace(data, []byte(mapType), []byte(listType), 1), &[...]*interface{}{&key, &elem}, ); err != nil { - return nil, errors.Wrap(err, "cannot unmarshal first map item") + return nil, fmt.Errorf("cannot unmarshal first map item: %w", err) } if key == nil { diff --git a/dialect/gremlin/encoding/graphson/lazy.go b/dialect/gremlin/encoding/graphson/lazy.go index 67a0b5e30..6ae9e687c 100644 --- a/dialect/gremlin/encoding/graphson/lazy.go +++ b/dialect/gremlin/encoding/graphson/lazy.go @@ -5,12 +5,12 @@ package graphson import ( + "fmt" "sync" "unsafe" jsoniter "github.com/json-iterator/go" "github.com/modern-go/reflect2" - "github.com/pkg/errors" ) // LazyEncoderOf returns a lazy encoder for type. @@ -68,7 +68,7 @@ type uniqueType struct { func (u *uniqueType) CheckType(other Type) error { u.once.Do(func() { u.typ = other }) if u.typ != other { - return errors.Errorf("expect type %s, but found %s", u.typ, other) + return fmt.Errorf("expect type %s, but found %s", u.typ, other) } return u.elemChecker.CheckType(u.typ) } diff --git a/dialect/gremlin/encoding/graphson/marshaler.go b/dialect/gremlin/encoding/graphson/marshaler.go index 4599995e7..3176f1fad 100644 --- a/dialect/gremlin/encoding/graphson/marshaler.go +++ b/dialect/gremlin/encoding/graphson/marshaler.go @@ -11,7 +11,6 @@ import ( jsoniter "github.com/json-iterator/go" "github.com/modern-go/reflect2" - "github.com/pkg/errors" ) // DecoratorOfMarshaler decorates a value encoder of a Marshaler interface. @@ -69,11 +68,11 @@ func (enc marshalerEncoder) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) func (enc marshalerEncoder) encode(marshaler Marshaler, stream *jsoniter.Stream) { data, err := marshaler.MarshalGraphson() if err != nil { - stream.Error = errors.Wrapf(err, "graphson: error calling MarshalGraphson for type %s", enc.Type) + stream.Error = fmt.Errorf("graphson: error calling MarshalGraphson for type %s: %w", enc.Type, err) return } if !config.Valid(data) { - stream.Error = errors.Errorf("graphson: syntax error when marshaling type %s", enc.Type) + stream.Error = fmt.Errorf("graphson: syntax error when marshaling type %s", enc.Type) return } _, stream.Error = stream.Write(data) diff --git a/dialect/gremlin/encoding/graphson/raw.go b/dialect/gremlin/encoding/graphson/raw.go index 1e7f90873..7e9939af2 100644 --- a/dialect/gremlin/encoding/graphson/raw.go +++ b/dialect/gremlin/encoding/graphson/raw.go @@ -5,7 +5,7 @@ package graphson import ( - "github.com/pkg/errors" + "errors" ) // RawMessage is a raw encoded graphson value. diff --git a/dialect/gremlin/encoding/graphson/slice.go b/dialect/gremlin/encoding/graphson/slice.go index ac15f0c39..9c3f96ff3 100644 --- a/dialect/gremlin/encoding/graphson/slice.go +++ b/dialect/gremlin/encoding/graphson/slice.go @@ -5,13 +5,13 @@ package graphson import ( + "fmt" "io" "reflect" "unsafe" jsoniter "github.com/json-iterator/go" "github.com/modern-go/reflect2" - "github.com/pkg/errors" ) // DecoratorOfSlice decorates a value encoder of a slice type. @@ -87,7 +87,7 @@ type sliceDecoder struct { func (dec sliceDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) { dec.decode(ptr, iter) if iter.Error != nil && iter.Error != io.EOF { - iter.Error = errors.Wrapf(iter.Error, "decoding slice %s", dec.sliceType) + iter.Error = fmt.Errorf("decoding slice %s: %w", dec.sliceType, iter.Error) } } @@ -119,7 +119,7 @@ type arrayDecoder struct { func (dec arrayDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) { dec.decode(ptr, iter) if iter.Error != nil && iter.Error != io.EOF { - iter.Error = errors.Wrapf(iter.Error, "decoding array %s", dec.arrayType) + iter.Error = fmt.Errorf("decoding array %s: %w", dec.arrayType, iter.Error) } } diff --git a/dialect/gremlin/encoding/graphson/type.go b/dialect/gremlin/encoding/graphson/type.go index 34240704a..f73977cf9 100644 --- a/dialect/gremlin/encoding/graphson/type.go +++ b/dialect/gremlin/encoding/graphson/type.go @@ -5,13 +5,13 @@ package graphson import ( + "fmt" "reflect" "strings" "unsafe" jsoniter "github.com/json-iterator/go" "github.com/modern-go/reflect2" - "github.com/pkg/errors" ) // A Type is a graphson type. @@ -45,7 +45,7 @@ func (typ Type) String() string { // CheckType implements typeChecker interface. func (typ Type) CheckType(other Type) error { if typ != other { - return errors.Errorf("expect type %s, but found %s", typ, other) + return fmt.Errorf("expect type %s, but found %s", typ, other) } return nil } @@ -80,7 +80,7 @@ func (types Types) String() string { // CheckType implements typeChecker interface. func (types Types) CheckType(typ Type) error { if !types.Contains(typ) { - return errors.Errorf("expect any of %s, but found %s", types, typ) + return fmt.Errorf("expect any of %s, but found %s", types, typ) } return nil } diff --git a/dialect/gremlin/encoding/graphson/util.go b/dialect/gremlin/encoding/graphson/util.go index 35d27e6b7..66e693b3d 100644 --- a/dialect/gremlin/encoding/graphson/util.go +++ b/dialect/gremlin/encoding/graphson/util.go @@ -5,11 +5,11 @@ package graphson import ( + "errors" "io" "unsafe" jsoniter "github.com/json-iterator/go" - "github.com/pkg/errors" ) // graphson encoding type / value keys diff --git a/dialect/gremlin/expand.go b/dialect/gremlin/expand.go index 6398598a4..792a8abe5 100644 --- a/dialect/gremlin/expand.go +++ b/dialect/gremlin/expand.go @@ -6,11 +6,11 @@ package gremlin import ( "context" + "fmt" "sort" "strings" jsoniter "github.com/json-iterator/go" - "github.com/pkg/errors" ) // ExpandBindings expands the given RoundTripper and expands the request bindings into the Gremlin traversal. @@ -35,7 +35,7 @@ func ExpandBindings(rt RoundTripper) RoundTripper { for _, k := range keys { s, err := jsoniter.MarshalToString(bindings[k]) if err != nil { - return nil, errors.WithMessagef(err, "marshal bindings value for key %s", k) + return nil, fmt.Errorf("marshal bindings value for key %s: %w", k, err) } kv = append(kv, k, s) } diff --git a/dialect/gremlin/graph/edge.go b/dialect/gremlin/graph/edge.go index c172e34f7..3abbdd11e 100644 --- a/dialect/gremlin/graph/edge.go +++ b/dialect/gremlin/graph/edge.go @@ -8,8 +8,6 @@ import ( "fmt" "entgo.io/ent/dialect/gremlin/encoding/graphson" - - "github.com/pkg/errors" ) type ( @@ -58,7 +56,7 @@ func (e Edge) MarshalGraphson() ([]byte, error) { func (e *Edge) UnmarshalGraphson(data []byte) error { var edge edge if err := graphson.Unmarshal(data, &edge); err != nil { - return errors.Wrap(err, "unmarshaling edge") + return fmt.Errorf("unmarshaling edge: %w", err) } *e = NewEdge( diff --git a/dialect/gremlin/graph/valuemap.go b/dialect/gremlin/graph/valuemap.go index 33d5c24f0..3b4358a86 100644 --- a/dialect/gremlin/graph/valuemap.go +++ b/dialect/gremlin/graph/valuemap.go @@ -5,10 +5,11 @@ package graph import ( + "errors" + "fmt" "reflect" "github.com/mitchellh/mapstructure" - "github.com/pkg/errors" ) // ValueMap models a .valueMap() gremlin response. @@ -47,10 +48,10 @@ func (m ValueMap) decode(v interface{}) error { dec, err := mapstructure.NewDecoder(&cfg) if err != nil { - return errors.Wrap(err, "creating structure decoder") + return fmt.Errorf("creating structure decoder: %w", err) } if err := dec.Decode(m); err != nil { - return errors.Wrap(err, "decoding value map") + return fmt.Errorf("decoding value map: %w", err) } return nil } diff --git a/dialect/gremlin/http.go b/dialect/gremlin/http.go index f204fe22e..6b664231b 100644 --- a/dialect/gremlin/http.go +++ b/dialect/gremlin/http.go @@ -6,6 +6,8 @@ package gremlin import ( "context" + "errors" + "fmt" "io" "io/ioutil" "net/http" @@ -14,7 +16,6 @@ import ( "entgo.io/ent/dialect/gremlin/encoding/graphson" jsoniter "github.com/json-iterator/go" - "github.com/pkg/errors" ) type httpTransport struct { @@ -26,7 +27,7 @@ type httpTransport struct { func NewHTTPTransport(urlStr string, client *http.Client) (RoundTripper, error) { u, err := url.Parse(urlStr) if err != nil { - return nil, errors.Wrap(err, "gremlin/http: parsing url") + return nil, fmt.Errorf("gremlin/http: parsing url: %w", err) } if client == nil { client = http.DefaultClient @@ -37,7 +38,7 @@ func NewHTTPTransport(urlStr string, client *http.Client) (RoundTripper, error) // RoundTrip implements RouterTripper interface. func (t *httpTransport) RoundTrip(ctx context.Context, req *Request) (*Response, error) { if req.Operation != OpsEval { - return nil, errors.Errorf("gremlin/http: unsupported operation: %q", req.Operation) + return nil, fmt.Errorf("gremlin/http: unsupported operation: %q", req.Operation) } if _, ok := req.Arguments[ArgsGremlin]; !ok { return nil, errors.New("gremlin/http: missing query expression") @@ -47,26 +48,29 @@ func (t *httpTransport) RoundTrip(ctx context.Context, req *Request) (*Response, defer pr.Close() go func() { err := jsoniter.NewEncoder(pw).Encode(req.Arguments) - _ = pw.CloseWithError(errors.Wrap(err, "gremlin/http: encoding request")) + if err != nil { + err = fmt.Errorf("gremlin/http: encoding request: %w", err) + } + _ = pw.CloseWithError(err) }() var br io.Reader { req, err := http.NewRequest(http.MethodPost, t.url, pr) if err != nil { - return nil, errors.Wrap(err, "gremlin/http: creating http request") + return nil, fmt.Errorf("gremlin/http: creating http request: %w", err) } req.Header.Set("Content-Type", "application/json") rsp, err := t.client.Do(req.WithContext(ctx)) if err != nil { - return nil, errors.Wrap(err, "gremlin/http: posting http request") + return nil, fmt.Errorf("gremlin/http: posting http request: %w", err) } defer rsp.Body.Close() if rsp.StatusCode < http.StatusOK || rsp.StatusCode > http.StatusPartialContent { body, _ := ioutil.ReadAll(rsp.Body) - return nil, errors.Errorf("gremlin/http: status=%q, body=%q", rsp.Status, body) + return nil, fmt.Errorf("gremlin/http: status=%q, body=%q", rsp.Status, body) } if rsp.ContentLength > MaxResponseSize { return nil, errors.New("gremlin/http: context length exceeds limit") @@ -76,7 +80,7 @@ func (t *httpTransport) RoundTrip(ctx context.Context, req *Request) (*Response, var rsp Response if err := graphson.NewDecoder(io.LimitReader(br, MaxResponseSize)).Decode(&rsp); err != nil { - return nil, errors.Wrap(err, "gremlin/http: decoding response") + return nil, fmt.Errorf("gremlin/http: decoding response: %w", err) } return &rsp, nil } diff --git a/dialect/gremlin/internal/ws/conn.go b/dialect/gremlin/internal/ws/conn.go index eef55c810..6bf286713 100644 --- a/dialect/gremlin/internal/ws/conn.go +++ b/dialect/gremlin/internal/ws/conn.go @@ -7,6 +7,8 @@ package ws import ( "bytes" "context" + "errors" + "fmt" "io" "net/http" "sync" @@ -17,7 +19,6 @@ import ( "entgo.io/ent/dialect/gremlin/encoding/graphson" "github.com/gorilla/websocket" - "github.com/pkg/errors" "golang.org/x/sync/errgroup" ) @@ -106,7 +107,7 @@ func (d *Dialer) Dial(uri string) (*Conn, error) { func (d *Dialer) DialContext(ctx context.Context, uri string) (*Conn, error) { c, rsp, err := d.Dialer.DialContext(ctx, uri, nil) if err != nil { - return nil, errors.Wrapf(err, "gremlin: dialing uri %s", uri) + return nil, fmt.Errorf("gremlin: dialing uri %s: %w", uri, err) } defer rsp.Body.Close() @@ -141,7 +142,7 @@ func (c *Conn) Execute(ctx context.Context, req *gremlin.Request) (*gremlin.Resp c.grp.Go(func() error { err := graphson.NewEncoder(pw).Encode(req) if err != nil { - err = errors.Wrap(err, "encoding request") + err = fmt.Errorf("encoding request: %w", err) } pw.CloseWithError(err) return err @@ -189,22 +190,22 @@ func (c *Conn) sender() error { // fetch next message writer w, err := c.conn.NextWriter(websocket.BinaryMessage) if err != nil { - return errors.Wrap(err, "getting message writer") + return fmt.Errorf("getting message writer: %w", err) } // write mime header if _, err := w.Write(encoding.GraphSON3Mime); err != nil { - return errors.Wrap(err, "writing mime header") + return fmt.Errorf("writing mime header: %w", err) } // write request body if _, err := io.Copy(w, r); err != nil { - return errors.Wrap(err, "writing request") + return fmt.Errorf("writing request: %w", err) } // finish message write if err := w.Close(); err != nil { - return errors.Wrap(err, "closing message writer") + return fmt.Errorf("closing message writer: %w", err) } case <-c.ctx.Done(): // connection closing @@ -216,7 +217,7 @@ func (c *Conn) sender() error { case <-pinger.C: // periodic connection keepalive if err := c.conn.WriteControl(websocket.PingMessage, nil, time.Now().Add(writeWait)); err != nil { - return errors.Wrap(err, "writing ping message") + return fmt.Errorf("writing ping message: %w", err) } } } @@ -240,13 +241,13 @@ func (c *Conn) receiver() error { // rely on sender connection close during termination _, r, err := c.conn.NextReader() if err != nil { - return errors.Wrap(err, "getting next reader") + return fmt.Errorf("writing ping message: %w", err) } // decode received response var rsp gremlin.Response if err := graphson.NewDecoder(r).Decode(&rsp); err != nil { - return errors.Wrap(err, "reading response") + return fmt.Errorf("reading response: %w", err) } ifr, ok := c.inflight.Load(rsp.RequestID) @@ -277,7 +278,7 @@ func (c *Conn) receive(ifr *inflight, rsp *gremlin.Response) bool { // append received fragment var frag []graphson.RawMessage if err := graphson.Unmarshal(rsp.Result.Data, &frag); err != nil { - result.err = errors.Wrap(err, "decoding response fragment") + result.err = fmt.Errorf("decoding response fragment: %w", err) break } ifr.frags = append(ifr.frags, frag...) @@ -289,7 +290,7 @@ func (c *Conn) receive(ifr *inflight, rsp *gremlin.Response) bool { // reassemble fragmented response if rsp.Result.Data, result.err = graphson.Marshal(ifr.frags); result.err != nil { - result.err = errors.Wrap(result.err, "assembling fragmented response") + result.err = fmt.Errorf("assembling fragmented response: %w", result.err) } case gremlin.StatusAuthenticate: // receiver should never block @@ -298,7 +299,7 @@ func (c *Conn) receive(ifr *inflight, rsp *gremlin.Response) bool { if err := graphson.NewEncoder(&buf).Encode( gremlin.NewAuthRequest(rsp.RequestID, c.user, c.pass), ); err != nil { - return errors.Wrap(err, "encoding auth request") + return fmt.Errorf("encoding auth request: %w", err) } select { case c.send <- &buf: diff --git a/dialect/gremlin/request.go b/dialect/gremlin/request.go index 39169d48b..3d55250fb 100644 --- a/dialect/gremlin/request.go +++ b/dialect/gremlin/request.go @@ -7,10 +7,10 @@ package gremlin import ( "bytes" "encoding/base64" + "errors" "time" "github.com/google/uuid" - "github.com/pkg/errors" ) type ( diff --git a/dialect/gremlin/response.go b/dialect/gremlin/response.go index 5a482a88c..f3234bc18 100644 --- a/dialect/gremlin/response.go +++ b/dialect/gremlin/response.go @@ -5,10 +5,11 @@ package gremlin import ( + "errors" + "fmt" + "entgo.io/ent/dialect/gremlin/encoding/graphson" "entgo.io/ent/dialect/gremlin/graph" - - "github.com/pkg/errors" ) // A Response models a response message received from the server. @@ -38,7 +39,7 @@ func (rsp *Response) IsErr() bool { // Err returns an error representing response status. func (rsp *Response) Err() error { if rsp.IsErr() { - return errors.Errorf("gremlin: code=%d, message=%q", rsp.Status.Code, rsp.Status.Message) + return fmt.Errorf("gremlin: code=%d, message=%q", rsp.Status.Code, rsp.Status.Message) } return nil } @@ -49,7 +50,7 @@ func (rsp *Response) ReadVal(v interface{}) error { return err } if err := graphson.Unmarshal(rsp.Result.Data, v); err != nil { - return errors.Wrapf(err, "gremlin: unmarshal response data: type=%T", v) + return fmt.Errorf("gremlin: unmarshal response data: type=%T: %w", v, err) } return nil } diff --git a/entc/load/internal/bindata.go b/entc/load/internal/bindata.go index 93f4e6e78..b732acf82 100644 --- a/entc/load/internal/bindata.go +++ b/entc/load/internal/bindata.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _templateMainTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\x51\x6f\xd3\x30\x14\x85\x9f\xe3\x5f\x71\x88\x40\x4b\x46\xe7\x6e\x7b\x03\xa9\x0f\xd3\x56\xa4\x22\xd8\x90\x3a\x89\x87\x31\x21\xd7\xb9\x69\xad\xa5\x76\xb8\x76\x27\x2a\x2b\xff\x1d\xd9\x69\x0b\xbc\x25\x3e\xdf\x3d\xe7\x5c\x3b\xc6\xe9\xb9\xb8\x75\xfd\x9e\xcd\x7a\x13\x70\x7d\x79\xf5\xe1\xa2\x67\xf2\x64\x03\x3e\x29\x4d\x2b\xe7\x5e\xb0\xb0\x5a\xe2\xa6\xeb\x90\x21\x8f\xa4\xf3\x2b\x35\x52\x3c\x6e\x8c\x87\x77\x3b\xd6\x04\xed\x1a\x82\xf1\xe8\x8c\x26\xeb\xa9\xc1\xce\x36\xc4\x08\x1b\xc2\x4d\xaf\xf4\x86\x70\x2d\x2f\x8f\x2a\x5a\xb7\xb3\x8d\x30\x36\xeb\x5f\x16\xb7\xf3\xfb\xe5\x1c\xad\xe9\x08\x87\x33\x76\x2e\xa0\x31\x4c\x3a\x38\xde\xc3\xb5\x08\xff\x84\x05\x26\x92\xe2\x7c\x3a\x0c\x42\xc4\x88\x86\x5a\x63\x09\xe5\x56\x19\x5b\x62\x18\xc4\x74\x8a\xdb\xd4\x67\x4d\x96\x58\x05\x6a\xb0\xda\xe3\x8c\x6c\xd0\xa7\xa3\x33\x89\xbb\x07\xdc\x3f\x3c\x62\x7e\xb7\x78\x94\xa2\x57\xfa\x45\xad\x09\xc9\x43\x08\xb3\xed\x1d\x07\x54\xa2\x28\x9d\x2f\x45\x51\xae\xf6\x81\xd2\x47\x8c\x08\xb4\xed\x3b\x15\x08\xe5\x48\xf9\x1c\x29\x0a\xb2\xc1\xeb\x0d\x6d\x15\x62\x44\xcf\xc6\x86\x16\xe5\xbb\x5f\x25\xe4\xb7\x83\xf7\x30\x88\x5a\x88\x57\xc5\x18\x41\x8f\x19\x9e\x9e\xc9\x06\xb9\xb0\x81\xb8\x55\x9a\x62\x8a\xb8\x00\x2b\xbb\x26\xbc\xb5\x6a\x4b\xf8\x38\x83\xbc\x57\x5b\xf2\x69\xbe\xf8\x1b\x23\x13\x78\xca\xf1\x71\x28\x0f\x03\xc3\x30\x19\x5d\xc8\x36\x69\x66\x10\xa2\xdd\x59\x9d\x57\xab\x6a\x44\x51\xa4\x0a\x9d\xb1\xe4\xf1\xf4\xfc\xf4\x9c\x76\x13\x45\xeb\x18\x3f\x27\x87\x66\x29\x74\xec\x70\x6c\x1a\x45\x51\xac\x26\x20\xe6\xa4\x7d\x55\xec\x37\xaa\x5b\x66\xb1\x1a\x99\x5a\x14\x85\x69\x33\xf1\x66\x06\x6b\xba\x3c\x53\xb4\xca\x74\x15\x31\x27\x39\xf5\x1f\x73\x67\x50\x7d\x4f\xb6\xa9\xf2\xef\x04\xab\x5a\x24\xd5\x79\xb9\x0c\x8d\xdb\x05\xf9\x9d\x4d\xa0\x2a\x5f\xbb\xfc\xec\x8c\x3d\x82\x63\xdd\xaa\xfc\x61\xcb\xba\xae\x4f\xbb\x1d\x53\x52\xbc\xe3\xbc\xe4\xe8\x45\xcc\xa3\xd7\x32\xb0\xb1\xeb\xc4\xc8\x79\x62\xaa\xfa\x7d\x36\xc9\xe0\xfc\xb7\x09\xd5\x55\xb6\xfb\xef\x85\xc7\xcd\xc6\x07\x8e\xf1\x78\xa1\x7f\x02\x00\x00\xff\xff\x64\x74\x91\x0a\x37\x03\x00\x00") +var _templateMainTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\x51\x6f\xd3\x30\x14\x85\x9f\xe3\x5f\x71\x88\x40\x4b\x46\xe7\x6e\x7b\x03\xa9\x0f\xd3\x56\xa4\x22\xd8\x90\x3a\x89\x87\x51\x21\xd7\xb9\x69\xad\xa5\x76\xb8\x76\x27\x2a\x2b\xff\x1d\xd9\x69\x07\xbc\x25\x3e\xc7\xe7\x3b\xd7\x37\xc6\xe9\xb9\xb8\x75\xfd\x81\xcd\x66\x1b\x70\x7d\x79\xf5\xe1\xa2\x67\xf2\x64\x03\x3e\x29\x4d\x6b\xe7\x9e\xb1\xb0\x5a\xe2\xa6\xeb\x90\x4d\x1e\x49\xe7\x17\x6a\xa4\x78\xdc\x1a\x0f\xef\xf6\xac\x09\xda\x35\x04\xe3\xd1\x19\x4d\xd6\x53\x83\xbd\x6d\x88\x11\xb6\x84\x9b\x5e\xe9\x2d\xe1\x5a\x5e\x9e\x54\xb4\x6e\x6f\x1b\x61\x6c\xd6\xbf\x2c\x6e\xe7\xf7\xcb\x39\x5a\xd3\x11\x8e\x67\xec\x5c\x40\x63\x98\x74\x70\x7c\x80\x6b\x11\xfe\x81\x05\x26\x92\xe2\x7c\x3a\x0c\x42\xc4\x88\x86\x5a\x63\x09\xe5\x4e\x19\x5b\x62\x18\xc4\x74\x8a\xdb\xd4\x67\x43\x96\x58\x05\x6a\xb0\x3e\xe0\x8c\x6c\xd0\xaf\x47\x67\x12\x77\x0f\xb8\x7f\x78\xc4\xfc\x6e\xf1\x28\x45\xaf\xf4\xb3\xda\x10\x52\x86\x10\x66\xd7\x3b\x0e\xa8\x44\x51\x3a\x5f\x8a\xa2\x5c\x1f\x02\xa5\x8f\x18\x11\x68\xd7\x77\x2a\x10\xca\xd1\xe5\x33\x52\x14\x64\x83\xd7\x5b\xda\x29\xc4\x88\x9e\x8d\x0d\x2d\xca\x77\xbf\x4a\xc8\x6f\xc7\xec\x61\x10\xb5\x10\x2f\x8a\x31\x1a\x3d\x66\x78\x5a\x91\x0d\x72\x61\x03\x71\xab\x34\xc5\x84\xb8\x00\x2b\xbb\x21\xbc\xb5\x6a\x47\xf8\x38\x83\xbc\x57\x3b\xf2\xe9\x7e\xf1\x17\x23\x4f\x98\xa3\xaf\x8c\x43\x6a\x32\x19\x13\xc8\x36\xc9\x3f\x08\xd1\xee\xad\xce\x63\x55\x35\xa2\x28\x12\xbe\x33\x96\x3c\x9e\x56\x4f\xab\x34\x97\x28\x5a\xc7\xf8\x39\x39\xb6\x4a\xc0\x91\x7f\x6a\x19\x45\x51\xac\x27\x20\xe6\xa4\x7d\x55\xec\xb7\xaa\x5b\x66\xb1\x1a\x3d\xb5\x28\x0a\xd3\x66\xc7\x9b\x19\xac\xe9\xf2\x9d\xa2\x55\xa6\xab\x88\x39\xc9\xa9\xfb\xc8\x9d\x41\xf5\x3d\xd9\xa6\xca\xbf\x13\xac\x6b\x91\x54\xe7\xe5\x32\x34\x6e\x1f\xe4\x77\x36\x81\xaa\xfc\xe4\xf2\xb3\x33\xf6\x64\x1c\xeb\x56\xe5\x0f\x5b\xd6\x75\xfd\x3a\xdb\x89\x92\xf0\x8e\xf3\x90\x63\x16\x31\x8f\x59\xcb\xc0\xc6\x6e\x92\x47\xce\x93\xa7\xaa\xdf\xe7\x90\x6c\x9c\xff\x36\xa1\xba\xca\x71\xff\x6d\x77\x9c\x6c\x5c\x6e\x8c\xa7\x07\xfd\x13\x00\x00\xff\xff\xfa\x69\x6b\x50\x33\x03\x00\x00") func templateMainTmplBytes() ([]byte, error) { return bindataRead( @@ -93,12 +93,12 @@ func templateMainTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "template/main.tmpl", size: 823, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "template/main.tmpl", size: 819, mode: os.FileMode(420), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _schemaGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x5a\xdd\x6f\xdc\x36\x12\x7f\xde\xfd\x2b\xa6\x06\x1a\x68\x83\xad\xdc\x2b\x8a\xe2\x6e\x73\x7b\x40\x91\x26\xa8\xaf\x17\x37\x68\x92\xbe\x04\x86\x4b\x4b\x94\xcd\x58\xa2\xb6\x14\xd7\x1f\x75\xf3\xbf\x1f\x66\x86\x94\x48\xad\xb4\xbb\xf1\x47\x5e\xb2\x1a\x72\x86\x9c\x1f\xe7\x93\xf4\xe1\x21\xbc\xac\x57\xb7\x46\x9d\x5f\x58\xf8\xee\xdb\x7f\xfc\xeb\x9b\x95\x91\x8d\xd4\x16\x5e\x8b\x4c\x9e\xd5\xf5\x25\x1c\xe9\x2c\x85\x1f\xcb\x12\x68\x52\x03\x38\x6e\xae\x64\x9e\x4e\x0f\x0f\xe1\xfd\x85\x6a\xa0\xa9\xd7\x26\x93\x90\xd5\xb9\x04\xd5\x40\xa9\x32\xa9\x1b\x99\xc3\x5a\xe7\xd2\x80\xbd\x90\xf0\xe3\x4a\x64\x17\x12\xbe\x4b\xbf\xf5\xa3\x50\xd4\x6b\x9d\xa3\x08\xa5\x69\xca\xff\x8e\x5e\xbe\x3a\x7e\xf7\x0a\x0a\x55\x4a\x4f\x33\x75\x6d\x21\x57\x46\x66\xb6\x36\xb7\x50\x17\x60\x83\xf5\xac\x91\x32\x9d\x4e\x57\x22\xbb\x14\xe7\x12\xca\x5a\xe4\xd3\xa9\xaa\x56\xb5\xb1\x90\x4c\x27\x07\x52\x67\x75\xae\xf4\xf9\xe1\xa7\xa6\xd6\x07\xd3\xc9\x41\x51\x59\xfc\xcf\xc8\xa2\x94\x99\x3d\x98\xd2\x1c\x7b\x5e\xa7\xaa\x3e\x94\x9a\xc6\xc2\xef\xc3\x26\xbb\x90\x95\x18\x21\x1f\xca\xfc\x5c\x8e\x8d\x15\x4a\x96\xf9\xd8\xa0\xd2\xb9\xbc\x39\x98\xce\xa6\xa8\xfd\x3b\xa2\x81\x91\x0e\xf7\x06\x84\x06\xa9\x6d\xea\x06\xec\x85\xb0\x70\x2d\x1a\x52\x4f\xe6\x50\x98\xba\x02\x01\x59\x5d\xad\x4a\x85\x18\x37\xd2\x80\x83\x20\x9d\xda\xdb\x95\xf4\x22\x1b\x6b\xd6\x99\x85\xbb\xe9\xe4\x58\x54\x12\xdc\xbf\xc6\x1a\xa5\xcf\xa1\xff\xef\x0f\xc4\x68\x71\xa0\x45\x25\xe7\x75\xa5\xac\xac\x56\xf6\xf6\xe0\x8f\xe9\xe4\x65\xad\x0b\xe5\xe6\xe3\xb6\xc2\xef\x98\x37\xa3\x91\x98\xfb\x55\x7e\x2e\x1b\x37\xed\xe3\xc9\x73\xfc\x1c\x59\x19\xd1\x6c\x62\xe6\xd7\x08\x62\xd3\x32\xd3\xe7\x30\x33\xc1\xdd\xe3\x3e\x42\x94\xdd\xe2\x1f\x4f\x9e\xd3\xe7\x30\xb7\xe2\x99\x31\xfb\xcf\x75\x7d\x19\xec\xfc\x6d\xdd\x28\xab\x6a\x3d\xc0\x7e\x81\x33\x63\xe6\xb7\x75\xa9\xb2\xdb\x7d\x98\x57\x34\x33\xe6\xfe\x51\xeb\xda\x0a\x64\x68\xa0\x12\xab\x8f\x7c\x64\x27\x4a\x5b\x69\x0a\x91\xc9\xbb\xcf\x9e\x5b\x74\x33\x23\x11\x9f\xc9\xb4\xda\x65\x73\xd9\x64\x46\x9d\xc9\x06\x04\xac\x3c\xd1\xb9\x18\xdb\xa4\xb3\x9c\x96\xa3\xb3\x9d\x00\x37\xa5\x2d\xc0\xe1\x21\x30\xc9\xf1\x13\xf4\x87\x88\x01\x94\xaa\xb1\xe9\x74\xf2\x46\xdd\xc8\xfc\x88\x94\x3d\xab\xeb\xd2\x71\xa8\x4c\x58\xd9\x80\x2a\x82\x55\xa1\x3e\xfb\x24\x33\x36\xef\x0a\xb9\xbe\x51\x9a\x05\x28\xed\x17\xe1\x25\x89\x04\x2a\x5c\xb8\x22\x12\xaf\xc9\xfa\xb2\x81\x6c\x7a\x12\xd3\xef\xe1\x48\xcc\x38\xec\x47\xa3\x9e\x34\xee\x4a\x47\xba\xa8\xbb\x69\xcf\x09\xb9\xf4\xfd\xed\x4a\x46\x03\x8e\x1d\x37\x10\xb3\xbf\x17\xe1\x62\x3b\x56\xb7\xa2\xe7\x89\xef\xd4\x5f\xc1\xde\x9f\x2b\x6d\x7f\xf8\x7e\x94\xbb\x51\x7f\xf5\x16\x7f\xa5\xd7\x55\xd3\x4e\xfb\x78\xc2\xa0\xdc\xc1\xf1\x1c\x7e\xf7\x7b\x69\xcd\x52\xe2\xe4\x98\xff\x83\x56\x7f\xae\xdb\x0d\x90\x5d\x0c\xfc\x73\xfc\x6b\x9a\x1c\x0b\x38\x56\x65\x29\xce\x4a\xb9\x97\x00\xed\x26\xc7\x22\x7e\x5d\xa1\x6d\x8b\x72\x2f\x11\xb5\x9b\x1c\x8b\xf8\x49\x16\x62\x5d\xda\xfd\xd4\xc8\x79\xf2\xa0\x84\xdf\x45\x89\x70\x84\x3e\x3d\x2e\xe1\xf4\x0a\x67\x0f\xca\xf9\x45\x69\x8c\x89\x2e\xa5\xa5\xee\x73\x4c\xce\xa5\xd2\x79\xef\x5c\x56\xb9\xb0\xd2\xab\xb5\xeb\x5c\x68\xf2\xe9\xa0\x5e\x47\x55\xb5\xb6\xed\x01\xed\x10\xa4\xfc\xe4\x58\xc6\xef\xa2\x54\xb9\xb0\xb5\x21\x4b\x23\xdf\x1f\x97\x71\xd5\x4e\xee\x19\xba\xad\x8d\x38\x97\xbf\x48\x8a\xbf\x3b\xdc\xa4\xe1\xc9\xa7\x97\xf2\xb6\x1f\xc1\xc3\x90\x3d\x18\xc1\xc3\x20\xce\xa3\xbd\x8d\x48\x8d\xe4\xab\xbd\x10\x69\xfc\xe4\x9e\x0c\x8a\x93\x18\x23\x70\x6e\x90\x0c\x22\xbd\xbc\x0c\x9a\x7c\xba\x19\x39\xc2\x84\x02\x63\x29\x65\x57\x4e\x99\xbc\xac\xab\x4a\xb6\x67\xb2\x03\xd8\x8c\x27\x0f\x64\x25\xaa\x01\x36\x83\x34\x91\xef\x11\xa3\x89\xef\x71\x4a\x1d\x0f\xf3\x6e\xde\xed\xc1\x79\x07\x6f\x3f\x32\x87\x75\xcd\x76\x56\xca\x18\x31\xf3\x6f\xb2\x68\x55\xde\xce\x6c\x64\x71\xba\xa9\xf3\x6f\xb2\x68\x27\x0e\x96\x67\x21\xff\x78\x48\x1f\xb1\xee\x2d\xf1\xfc\x48\x5f\x49\xd3\x6c\xf5\x8d\xb6\x3c\xa3\x99\xfd\x7d\xff\xb9\x56\x46\xe6\xbb\xd9\x8d\x9b\x39\x1e\x25\x9e\x63\xed\x99\xc6\x71\x63\x8f\x10\xf1\x58\x65\x1a\x57\x3a\x9b\x1e\xc1\xf4\x7b\xb8\x04\x33\x76\x3e\xf1\xb0\x83\x8a\x4b\xf8\x41\x1b\xdb\xb7\x84\xdf\xc6\x3c\x54\xc2\x87\x47\xb2\xdd\xb8\x9f\xfc\x90\x8e\xe5\x35\x79\x47\x66\x24\xd5\xb1\x42\xfb\x03\x41\xad\xf9\x54\xe8\x17\xd7\xda\x2b\x5b\x9b\x74\x5a\xac\x75\xe6\x39\x13\x99\x3b\x43\xfb\xa9\x9d\x31\x73\x2e\x77\x37\x9d\x68\x09\x8b\x25\x3c\xc3\xcf\xbb\xe9\x04\xc3\xc9\xa2\xd5\x51\xe6\xe9\x7b\x71\x3e\x47\xf2\xed\x4a\x2e\x42\x32\xc6\xa1\xe9\x84\xa2\x5e\x48\xc7\x6f\xa4\x13\xfc\x8b\x8e\x4e\xdf\x38\xc0\x26\xb1\x68\x07\xf8\x1b\x47\x9c\x5f\x2e\xfc\x88\xfb\xc6\x21\xef\x73\x0b\x37\xe4\xbf\x79\xac\xe8\x36\x41\x63\x85\xdf\x44\x77\x8a\x0b\x1a\xea\xbe\x71\x34\x38\xa0\x05\x54\xe2\x52\x26\xc3\xc7\x34\x9b\x4f\x27\x9f\xa7\x93\xa2\x36\x70\x3a\x07\x61\x11\x2e\x23\xf4\xb9\x44\x91\xe1\x29\x23\x7c\x5a\xa6\x22\xcf\x3b\x6a\x22\xec\x8c\xd8\x55\x81\xa5\x12\xf2\xf2\x1e\x5f\xd0\xe7\x57\x4b\xd0\xaa\xf4\x9c\x18\x12\x97\xed\xb1\x19\x59\xcc\x98\x1e\x58\xe3\x12\x78\x5e\x40\x23\xf1\x46\xda\xb5\xd1\xa0\x65\x67\x35\x1c\xdd\x5b\xb3\x69\xdd\x98\xc8\x64\x36\xfc\x73\xc8\x6e\x88\x37\x29\x72\xdf\x2b\x84\x96\x93\x70\x3f\x3c\x07\x69\x0c\x7e\xdf\x91\x72\x45\x9e\xbe\x32\x26\x54\xc8\x6f\x49\x95\x73\x28\x2a\x8b\xc3\xb5\x29\x12\xf6\x37\xf8\xfa\xcf\x05\x7c\x7d\x75\x30\x47\x46\x3a\x2f\x27\x81\xd1\x6a\x08\xa9\x67\xb4\xd0\x5d\xdf\xcc\xa0\xe5\x21\xab\x29\xea\x78\x04\x29\xf3\xbe\x25\xd3\x88\xb3\x65\xea\x28\x16\xe1\x00\x51\x36\xac\x93\x86\x3a\xfb\xf4\x7d\xc0\xa2\xdb\x83\x2f\xf6\xa7\x93\xb6\xc4\xef\x46\x3d\x05\x47\x5d\x99\xbb\xe8\xe4\xfa\xc2\x97\x01\xa3\xb5\xc3\x82\x78\x41\x6b\x47\x25\x72\x37\xb3\xad\x78\x17\xad\xce\x6d\x59\xdb\x37\x7b\x1a\x8e\x0d\xbf\x2b\x76\x69\xbc\x94\x3a\x29\xf2\xb4\xa3\xce\x48\x88\x2f\x0b\xdb\x35\x5a\x0a\x0d\xb7\xe5\x61\xbb\x46\x4b\xd9\x70\x2e\xd8\xe5\x5e\xbe\xc2\x0b\xf0\x71\x94\x51\xdf\x2b\x36\x7d\xaf\x29\xc6\x7d\xaf\x29\xc8\x2e\x60\xb9\xdb\x3e\x2b\xd5\x34\x18\xf0\x29\xa3\x29\x64\xc2\xe5\xbd\xd5\x1e\xcc\x51\x16\x5a\x5f\x27\x1b\x1b\xdc\xc5\x12\xa8\xb3\x45\x28\xb1\xe3\x9d\xbd\x60\xfa\x57\x4b\xf8\xd6\xef\x8e\x3a\xe1\x25\x3c\xc3\x81\x60\x63\xfe\x80\xdd\xac\xb0\xbf\x5a\xb6\xfd\x15\x02\xfb\x6b\x91\x74\x96\x33\xa3\x96\x2b\xe1\x5d\x60\x32\xe7\xfb\x0d\xd7\x22\x01\x35\x6e\x90\x09\x0d\x67\x12\xe8\x3e\x52\xe6\x60\x6b\x9a\x73\x2e\xb5\x34\x82\x1c\x1e\x39\x5f\xd7\x06\xe4\x8d\xa8\x56\xa5\x9c\x83\xae\x2d\x08\xc0\x38\x40\x5d\x47\xa9\x2e\x25\x58\x55\xc9\xf4\xb8\xbe\x4e\x69\xc7\xa7\xe4\xf9\xa8\x30\xa6\xaf\xf4\x8d\x30\xcd\x85\x28\xc3\x9d\xbd\xa0\x09\x01\xd4\x9d\x56\xdc\x7d\x2e\x03\x0f\x08\xc3\x57\x53\xcc\x91\xa7\x8b\x61\x5c\x50\x6c\xa6\x3e\xbe\x8f\xa1\x20\xc6\x3f\x87\x82\x18\x31\x27\x2a\xbf\x81\xe7\x34\x29\xce\x7f\x2c\x1a\x13\xa0\xa2\x58\x43\xdf\xb8\x59\x2a\x3b\xbc\x25\xaa\xfc\x86\x1a\x84\xa6\x4d\x6a\x7e\x08\x47\x98\xb0\x11\x38\x70\xa8\x8b\x1b\x91\x3b\xe2\xd0\x63\xa7\x21\x94\xb9\x91\x87\xd4\x88\x2f\xb4\x56\xef\x40\x76\xc7\xe7\x6e\x6e\xd9\x50\xc8\x48\x82\x9b\xe0\x76\x17\xf8\xab\x06\x01\xff\x7d\xf7\xeb\x31\x32\x53\x89\xe8\x6c\x2c\x97\x6c\x63\x34\x05\x05\xbc\x8b\x6e\xda\xf8\x3f\x77\x38\xd1\xa2\x49\xe3\xd7\xc6\xca\xd3\xad\x34\x83\xe4\x0c\x3e\x9e\x9c\xdd\x5a\xc9\xe6\xd6\x25\x9b\x86\x8e\x8b\x79\xef\x28\x76\xe8\x42\xf9\x50\xef\x2e\x15\x99\x96\xcc\x36\x4a\x14\xa5\xf9\x52\x3f\xe9\xf9\x15\xf3\xcd\x66\xe4\xd9\xcc\xf7\x85\x07\xa3\x0a\xef\x16\x4d\x8a\x56\x4a\x17\x87\x5e\x2e\x7b\xc4\x1e\xc9\xd1\x61\x41\xd9\xf1\x1a\x63\x8d\x4b\x8e\xd2\x67\xc6\xee\xe2\x3e\x28\x1b\xa1\xbe\x92\xc6\xa8\x5c\xb6\x97\x99\xe1\x68\x3a\x68\x35\x0e\xa9\x40\xcb\x64\xc6\xce\x3a\x1e\x45\x23\x05\xd9\xf8\x1f\x5f\x43\x2e\xe6\xdb\xb5\x44\x21\xc9\x01\xfd\x42\xed\x46\x1e\x63\x2d\x87\x8b\x0c\x6b\x3a\x6c\x3a\x18\x07\x6e\x40\x96\x20\x56\x2b\xa9\xf3\xc4\x11\xe6\x5d\x61\x1d\x44\x94\x64\x36\x73\x30\xb9\x3b\xfd\x50\x01\xf7\x22\xf0\x94\x2a\x60\x98\xeb\x22\x82\x7b\x81\x60\x35\xfc\x7b\x44\xa0\xc8\x91\xdf\x64\x18\x26\x07\xb5\xe9\x1d\x3a\x3d\x4e\x3c\xfe\x99\xf7\x97\xe1\x67\x8c\xc7\x5f\xc7\x31\x46\x89\xab\x99\xb9\x50\xf8\x41\x57\x51\x30\xe4\x88\xd6\x70\xca\x54\x57\x52\xc3\xd9\xba\x28\xa4\x01\x8a\x81\x2e\x13\xf9\x57\x0c\x8a\x6b\x3d\x09\xc9\xd9\xba\x70\x41\x0c\xcb\x66\x26\xce\xc7\x42\x59\x04\x03\xed\xb0\x15\x87\x82\xe6\xd0\x6c\x07\x42\x1a\x13\x1a\x44\x11\xb8\xba\x4b\x54\xc4\xd2\xad\x51\xa4\xae\x58\x68\x92\x4d\xc9\x9b\xa2\x51\x76\x90\xaa\xc3\x4c\xdd\xc6\x3b\xfa\xd5\xb8\x17\x12\x5b\xfb\xd7\x16\x6e\x52\xc3\xf8\xee\x00\x4b\x1a\x70\xb0\xcc\xa0\x1f\x34\xfb\x09\x81\x60\xc3\xbd\x91\xf4\xc8\xbf\xa2\x58\xbb\xc5\xbb\x42\x88\xd4\x1c\xaa\xc0\x65\x78\xcb\x94\x3a\x45\xe5\xca\xb9\xe1\x54\x51\xdd\xb4\x69\x62\x3a\x99\xb8\xdb\x83\x70\x37\x2e\x30\x56\x37\xb3\x0e\xee\x01\x64\xe3\x9a\x13\x57\x6f\xed\x56\x07\x56\x8b\xfb\xa5\x0d\x7f\x8a\xce\xb4\xe8\x4e\x74\x82\x65\x93\x5b\xbf\xeb\xdd\x62\x6f\xc6\x69\x03\x5b\xf9\xd2\xbd\xd0\x66\xb0\x9c\x6b\xaf\xa5\x97\xf0\xcc\xff\x66\x89\x14\x4e\x5c\xbe\xfd\x34\x27\x92\x7b\x97\x23\xa2\x35\x5c\x15\x4d\x82\xc7\xb6\x05\xa8\x79\x27\xdc\x1b\x6b\x10\xae\x5c\x9d\x05\x4d\xe1\x01\x19\x4b\x12\x8f\x0d\xfa\x58\x72\xb8\x57\x76\x20\xa9\xdb\xf2\xc3\x13\xec\x7e\x34\x2f\x3c\x24\x31\xd0\x02\xfc\xfa\x1c\xaa\xc1\xc9\xe1\xd1\xed\xbe\xdb\x3f\x2d\xe9\x77\xcf\xef\xe4\xc1\xde\x7f\xe6\x0d\x3d\xa2\x3d\xfa\x6d\xb8\xb7\xf2\x50\x57\x97\xa1\x1e\x53\x59\x55\x00\x2f\x14\x09\x6a\x52\xf7\xa6\x1f\x68\xfa\xd6\xed\xa7\xa7\xea\x17\xeb\x35\x50\x16\x56\x37\x03\x25\xe1\x70\x4d\x18\x27\x84\x38\x1b\x38\x1f\xe6\x74\xc0\xbd\xf3\x3d\xd2\x41\x54\x62\x8e\xe6\x83\xf1\x10\xfc\xc5\x19\x61\x38\xc0\xee\x17\x5f\xc7\x8d\xa0\x4d\x9f\xa3\x91\xd3\x1f\x0f\xcd\xd9\x15\x00\x37\x30\x1f\xc4\x2e\xac\xd4\x46\xa1\x1b\xf3\xe1\x2f\x04\x6e\xc8\x43\xf7\x75\xd0\xd6\x3f\xd9\x36\x5b\x1b\x2e\x44\xc9\x97\xbf\x9f\xf7\x56\x39\xaa\x1a\x47\x75\x1e\x77\xe6\xfd\xb5\x1e\x74\xd5\xfd\x3c\x75\x3f\x75\x7a\xee\xa6\x37\xdb\x35\xf2\xcc\x6c\x6d\xcc\x1c\xea\x4b\xae\x9c\x03\xc7\xfd\x28\xb4\xab\x51\x4e\x68\xb7\x5f\xd5\x97\x6e\x8f\xc3\x93\x70\xcf\xba\xd5\xd3\xeb\x58\x79\xd9\xb8\x4e\xea\xf0\x49\xdf\x48\x73\x2e\xcd\xec\x05\xec\x96\x59\xf1\xe4\x44\x68\xd2\xba\xd5\x54\xf2\xfb\xc3\xde\x7a\xc6\xd3\x64\xb8\xe0\x1c\x50\x78\x2b\x59\xb9\x9b\x9d\x7b\x8a\x56\x5b\x44\x17\xc0\x37\xdf\xf7\x14\x5d\x8c\x8b\xee\xcb\xdb\xf5\x72\x84\xdc\x7b\x58\x84\xd8\x6d\x0f\xc3\x53\x1e\x62\x0d\xa3\x12\xc7\x6c\xa1\x83\xb5\x6b\x47\x3a\x6f\xc5\xbd\x76\x57\xa4\x7f\xff\x8d\x5f\x47\xba\xa8\xd3\xe3\x75\x25\x8d\xca\x92\x19\x12\x7b\xb7\xa6\xdd\xb5\xe9\x6b\x5c\x22\xee\x94\x48\x1d\xed\x75\x89\x6f\x26\xd3\xa4\x28\x6b\x61\x7f\xf8\x7e\x16\xa1\x34\x90\xcc\xd7\x5a\xde\xac\x64\x66\x65\xde\xbb\x72\xa5\x6b\xe3\xf6\xc6\x78\xc1\x57\xc6\xe1\x8d\x71\x73\xad\x6c\x76\x01\x96\x57\x27\x5d\xb0\xb3\x78\x41\xa7\x27\x1a\x09\x16\xfe\xb3\x84\xf0\x6f\xb4\xec\x3f\xe1\xd9\x33\xb0\xf0\xef\x1e\xf9\x87\xef\x17\x98\xc4\xfb\x77\xab\x7c\x0f\x8d\x28\x0f\x89\xfb\xa0\x86\xe5\x7d\x50\xa3\x02\xd7\x9d\xc4\xa1\x7c\xdf\x25\x5c\xb8\x36\x62\xd5\x84\x7f\xdd\xe7\xe8\x42\xe7\xdc\x61\x79\x42\x25\xed\x45\x9d\xc3\xb5\xb2\x17\x60\x64\x56\x5f\x71\x5b\x2d\x75\xb3\x36\x12\x74\x0d\x2b\xa1\x55\xd6\x80\xd2\xe0\x7a\x60\xa5\xcf\x5d\x95\x10\x24\xf8\x22\x0f\xfe\x90\x09\x1c\x71\x06\x1f\x4f\xba\xbf\xbe\xfb\x3c\x83\xc4\xe5\xf2\x80\xdc\xbf\x54\xcc\x25\x36\xf6\x28\xde\x95\x3c\xaa\x80\x2b\x4a\x6b\xbc\x39\xec\x90\xaf\xa2\xdc\x4e\x57\xdc\x91\x49\x7c\xfd\xde\x6b\xc7\x9b\x6f\x1f\xb8\xe6\x70\x45\xcd\x53\xe1\xf3\x3a\x59\x21\x95\x4f\xd8\x43\x7a\xeb\x72\xaf\xa4\x4d\x32\x9b\xf7\xd0\xe5\x56\x63\x03\x5c\x26\x3f\x14\xca\xf0\x76\x2d\x44\x93\xe9\x1e\x4c\x7a\x2e\x46\x2c\xb9\x07\xea\x88\x4f\x81\x64\xa4\x5f\x04\x26\x03\x29\x5d\xeb\x35\x88\x63\xc8\xbc\x09\xa5\xef\x79\x36\xc0\xf4\x03\x0f\x85\x33\xbe\xeb\x0b\x01\xf5\x23\x1e\x52\x7e\x81\x40\x4c\x7d\x5f\x16\xd0\x9f\x10\x56\xaf\xe9\x00\xb0\xaa\xed\x08\xb7\x41\xdb\x2a\xd2\x07\x97\xef\x80\x36\xa0\x65\xf2\x43\x81\xdd\x76\x37\x94\x70\x6f\xc5\xf8\xbd\xe9\xee\x87\x9e\x04\x3f\x56\x67\x00\x3d\xde\xc4\x76\xec\x58\x8b\x0d\xe4\xb8\x56\xde\x40\x8e\xc9\x0f\x45\x2e\x6a\x05\x02\x83\x64\xba\x37\x47\xfc\x22\x6b\xe4\x1a\xbe\x23\x3e\x21\x94\xac\xdf\x00\x94\x17\xae\x77\xd8\x06\xa5\xdb\x7e\x1f\x4a\x57\x84\x6f\x60\xe9\xe8\x0f\x05\x33\x6e\x32\x02\x34\xdd\xc0\x8c\x6c\xd3\x2d\x86\x70\xba\x46\xa1\xa3\x3e\x21\x9e\x6e\xd9\x01\x40\x57\xbe\x35\xd9\x86\xa8\x57\x61\x1e\xf5\x25\xed\x45\xa8\x8d\x5e\xa3\x67\xd1\x17\x35\xe2\xb5\x01\xeb\x9e\xa5\xc3\x22\xec\xad\xa5\x52\x6e\x62\x61\x09\x36\x7d\x55\xca\x2a\x89\x4a\x09\x3b\xfd\x3c\xfd\x7f\x00\x00\x00\xff\xff\x48\x15\x4b\x2a\x0f\x34\x00\x00") +var _schemaGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x5a\xdd\x8f\xdb\x36\x12\x7f\xb6\xff\x8a\xe9\x02\x0d\xe4\xc0\xd5\xf6\x8a\xa2\xb8\x73\xce\x07\x14\x69\x82\xee\xf5\xb2\x0d\x9a\xa4\x2f\x41\x90\x72\xa5\x91\x97\x59\x89\x74\x29\x7a\x3f\xba\xcd\xff\x7e\x98\x21\x29\x51\xb2\x64\x3b\xfb\x91\x97\x58\x43\xce\x70\xe6\xc7\xf9\x22\xb9\xc7\xc7\xf0\x5c\xaf\x6f\x8c\x5c\x9d\x5b\xf8\xee\xdb\x7f\xfc\xeb\x9b\xb5\xc1\x1a\x95\x85\x97\x22\xc3\x33\xad\x2f\xe0\x44\x65\x29\xfc\x58\x96\xc0\x93\x6a\xa0\x71\x73\x89\x79\x3a\x3d\x3e\x86\xb7\xe7\xb2\x86\x5a\x6f\x4c\x86\x90\xe9\x1c\x41\xd6\x50\xca\x0c\x55\x8d\x39\x6c\x54\x8e\x06\xec\x39\xc2\x8f\x6b\x91\x9d\x23\x7c\x97\x7e\x1b\x46\xa1\xd0\x1b\x95\x93\x08\xa9\x78\xca\xff\x4e\x9e\xbf\x38\x7d\xf3\x02\x0a\x59\x62\xa0\x19\xad\x2d\xe4\xd2\x60\x66\xb5\xb9\x01\x5d\x80\x8d\xd6\xb3\x06\x31\x9d\x4e\xd7\x22\xbb\x10\x2b\x84\x52\x8b\x7c\x3a\x95\xd5\x5a\x1b\x0b\xc9\x74\x72\x84\x2a\xd3\xb9\x54\xab\xe3\x4f\xb5\x56\x47\xd3\xc9\x51\x51\x59\xfa\xcf\x60\x51\x62\x66\x8f\xa6\x3c\xc7\xae\x74\x2a\xf5\x31\x2a\x1e\x8b\xbf\x8f\xeb\xec\x1c\x2b\x31\x42\x3e\xc6\x7c\x85\x63\x63\x85\xc4\x32\x1f\x1b\x94\x2a\xc7\xeb\xa3\xe9\x6c\x4a\xd6\xbf\x61\x1a\x18\xf4\xb8\xd7\x20\x14\xa0\xb2\xa9\x1f\xb0\xe7\xc2\xc2\x95\xa8\xd9\x3c\xcc\xa1\x30\xba\x02\x01\x99\xae\xd6\xa5\x24\x8c\x6b\x34\xe0\x21\x48\xa7\xf6\x66\x8d\x41\x64\x6d\xcd\x26\xb3\x70\x3b\x9d\x9c\x8a\x0a\xc1\xff\xab\xad\x91\x6a\x05\xfd\x7f\x7f\x10\x46\x8b\x23\x25\x2a\x9c\xeb\x4a\x5a\xac\xd6\xf6\xe6\xe8\x8f\xe9\xe4\xb9\x56\x85\xf4\xf3\x49\xad\xf8\xbb\xcb\x9b\xf1\x48\x97\xfb\x45\xbe\xc2\xda\x4f\x7b\xff\xe1\x29\x7d\x8e\xac\x4c\x68\xd6\x5d\xe6\x97\x04\x62\xdd\x30\xf3\xe7\x30\x33\xc3\xdd\xe3\x3e\x21\x94\xfd\xe2\xef\x3f\x3c\xe5\xcf\x61\x6e\xe9\x66\x76\xd9\x7f\xd6\xfa\x22\xd2\xfc\xb5\xae\xa5\x95\x5a\x0d\xb0\x9f\xd3\xcc\x2e\xf3\x6b\x5d\xca\xec\xe6\x10\xe6\x35\xcf\xec\x72\xff\xa8\x94\xb6\x82\x18\x6a\xa8\xc4\xfa\xbd\xdb\xb2\x0f\x52\x59\x34\x85\xc8\xf0\xf6\x73\xe0\x16\xed\xcc\x8e\x88\xcf\xec\x5a\xcd\xb2\x39\xd6\x99\x91\x67\x58\x83\x80\x75\x20\xfa\x10\x73\x3e\xe9\x3d\xa7\xe1\x68\x7d\x27\xc2\x4d\x2a\x0b\x70\x7c\x0c\x8e\xe4\xf9\x19\xfa\x63\xc2\x00\x4a\x59\xdb\x74\x3a\x79\x25\xaf\x31\x3f\x61\x63\xcf\xb4\x2e\x3d\x87\xcc\x84\xc5\x1a\x64\x11\xad\x0a\xfa\xec\x13\x66\xce\xbd\x2b\xe2\xfa\x46\x2a\x27\x40\xaa\xb0\x88\x5b\x92\x49\x20\xe3\x85\x2b\x26\xb9\x35\x9d\xbd\xce\x41\xb6\x23\xc9\xd1\xef\x10\x48\x8e\x71\x38\x8e\x46\x23\x69\x3c\x94\x4e\x54\xa1\xdb\x69\x4f\x19\xb9\xf4\xed\xcd\x1a\x3b\x03\x9e\x9d\x14\xe8\xb2\xbf\x15\xf1\x62\x7b\x56\xb7\xa2\x17\x89\x6f\xe4\x5f\x91\xee\x4f\xa5\xb2\x3f\x7c\x3f\xca\x5d\xcb\xbf\x7a\x8b\xbf\x50\x9b\xaa\x6e\xa6\xbd\xff\xe0\x40\xb9\x85\xd3\x39\xfc\x1e\x74\x69\xdc\x12\x69\x72\x97\xff\x9d\x92\x7f\x6e\x1a\x05\xd8\x2f\x06\xfe\x79\xfe\x0d\x4f\xee\x0a\x38\x95\x65\x29\xce\x4a\x3c\x48\x80\xf2\x93\xbb\x22\x7e\x5d\x93\x6f\x8b\xf2\x20\x11\xda\x4f\xee\x8a\xf8\x09\x0b\xb1\x29\xed\x61\x66\xe4\x6e\xf2\xa0\x84\xdf\x45\x49\x70\xc4\x31\x3d\x2e\xe1\xe3\x25\xcd\x1e\x94\xf3\x8b\x54\x94\x13\x7d\x49\x4b\xfd\xe7\x98\x9c\x0b\xa9\xf2\xde\xbe\xac\x73\x61\x31\x98\xb5\x6f\x5f\x78\xf2\xc7\x41\xbb\x4e\xaa\x6a\x63\x9b\x0d\xda\x23\x48\x86\xc9\x5d\x19\xbf\x8b\x52\xe6\xc2\x6a\xc3\x9e\xc6\xb1\x3f\x2e\xe3\xb2\x99\xdc\x73\x74\xab\x8d\x58\xe1\x2f\xc8\xf9\x77\x4f\x98\xd4\x6e\xf2\xc7\x0b\xbc\xe9\x67\xf0\x38\x65\x0f\x66\xf0\x38\x89\xbb\xd1\x9e\x22\xa8\x88\x7c\x79\x10\x22\x75\x98\xdc\x93\xc1\x79\x92\x72\x04\xcd\x8d\x8a\x41\xc7\xae\x20\x83\x27\x7f\xdc\xce\x1c\x71\x41\x81\xb1\x92\xb2\xaf\xa6\x4c\x9e\xeb\xaa\xc2\x66\x4f\xf6\x00\x9b\xb9\xc9\x03\x55\x89\x7b\x80\xed\x24\xcd\xe4\x3b\xe4\x68\xe6\x7b\x98\x56\x27\xc0\xbc\x9f\x77\x77\x72\xde\xc3\xdb\xcf\xcc\x71\x5f\xb3\x9b\x95\x2b\x46\x97\xf9\x37\x2c\x1a\x93\x77\x33\x1b\x2c\x3e\x6e\xdb\xfc\x1b\x16\xcd\xc4\xc1\xf6\x2c\xe6\x1f\x4f\xe9\x23\xde\xbd\x23\x9f\x9f\xa8\x4b\x34\xf5\xce\xd8\x68\xda\x33\x9e\xd9\xd7\xfb\xcf\x8d\x34\x98\xef\x67\x37\x7e\xe6\x78\x96\x78\x4a\xbd\x67\xda\xcd\x1b\x07\xa4\x88\x87\x6a\xd3\x5c\xa7\xb3\x1d\x11\x8e\x7e\x87\x90\x70\x8c\x6d\x4c\xdc\x6f\xa3\xba\x2d\xfc\xa0\x8f\x1d\xda\xc2\xef\x62\x1e\x6a\xe1\xe3\x2d\xd9\xed\xdc\x8f\xbe\x49\xa7\x78\xc5\xd1\x91\x19\xe4\x3e\x56\xa8\xb0\x21\x64\xb5\xdb\x15\xfe\xe5\x7a\xed\xb5\xd5\x26\x9d\x16\x1b\x95\x05\xce\x04\x73\xef\x68\x3f\x35\x33\x66\x3e\xe4\x6e\xa7\x13\x85\xb0\x58\xc2\x13\xfa\xbc\x9d\x4e\x28\x9d\x2c\x1a\x1b\x31\x4f\xdf\x8a\xd5\x9c\xc8\x37\x6b\x5c\xc4\x64\xca\x43\xd3\x09\x67\xbd\x98\x4e\xdf\x44\x67\xf8\x17\x2d\x9d\xbf\x69\xc0\xb9\xc4\xa2\x19\x70\xdf\x34\xe2\xe3\x72\x11\x46\xfc\x37\x0d\x85\x98\x5b\xf8\xa1\xf0\xed\xc6\x8a\x56\x09\x1e\x2b\x82\x12\xed\x2e\x2e\x78\xa8\xfd\xa6\xd1\x68\x83\x16\x50\x89\x0b\x4c\x86\xb7\x69\x36\x9f\x4e\x3e\x4f\x27\x85\x36\xf0\x71\x0e\xc2\x12\x5c\x46\xa8\x15\x92\xc8\x78\x97\x09\x3e\x85\xa9\xc8\xf3\x96\x9a\x08\x3b\x63\x76\x59\x50\xab\x44\xbc\x4e\xc7\x67\xfc\xf9\xd5\x12\x94\x2c\x03\x27\xa5\xc4\x65\xb3\x6d\x06\x8b\x99\xa3\x47\xde\xb8\x04\x37\x2f\xa2\xb1\x78\x83\x76\x63\x14\x28\x6c\xbd\xc6\x65\xf7\xc6\x6d\x9a\x30\x66\x32\xbb\x8d\xfb\x39\xe4\x37\xcc\x9b\x14\x79\x38\x2b\xc4\x9e\x93\xb8\xf3\xf0\x1c\xd0\x18\xfa\xbe\x65\xe3\x8a\x3c\x7d\x61\x4c\x6c\x50\x50\x49\x96\x73\x28\x2a\x4b\xc3\xda\x14\x89\x8b\x37\xf8\xfa\xcf\x05\x7c\x7d\x79\x34\x27\x46\xde\x2f\x2f\xc1\xa1\x55\x33\x52\x4f\x78\xa1\xdb\xbe\x9b\x41\xc3\xc3\x5e\x53\xe8\xee\x08\x51\xe6\x7d\x4f\xe6\x11\xef\xcb\x7c\xa2\x58\xc4\x03\x4c\xd9\xf2\x4e\x1e\x6a\xfd\x33\x9c\x03\x16\xad\x0e\xa1\xd9\x9f\x4e\x9a\x16\xbf\x1d\x0d\x14\x1a\xf5\x6d\xee\xa2\x95\x1b\x1a\x5f\x07\x18\xaf\x1d\x37\xc4\x0b\x5e\xbb\xd3\x22\xb7\x33\x9b\x8e\x77\xd1\xd8\xdc\xb4\xb5\x7d\xb7\xe7\xe1\xae\xe3\xb7\xcd\x2e\x8f\x97\xa8\x92\x22\x4f\x5b\xea\x8c\x85\x84\xb6\xb0\x59\xa3\xa1\xf0\x70\xd3\x1e\x36\x6b\x34\x94\xad\xe0\x82\x7d\xe1\x15\x3a\xbc\x08\x1f\x4f\x19\x8d\xbd\x62\x3b\xf6\xea\x62\x3c\xf6\xea\x82\xfd\x02\x96\xfb\xfd\xb3\x92\x75\x4d\x09\x9f\x2b\x9a\x24\x26\x5a\x3e\x78\xed\xd1\x9c\x64\x91\xf7\xb5\xb2\xe9\x80\xbb\x58\x02\x9f\x6c\x09\x4a\x3a\xf1\xce\x9e\x39\xfa\x57\x4b\xf8\x36\x68\xc7\x27\xe1\x25\x3c\xa1\x81\x48\xb1\xb0\xc1\x7e\x56\x7c\xbe\x5a\x36\xe7\x2b\x02\xf6\xd7\x22\x69\x3d\x67\xc6\x47\xae\xc4\x69\x41\xc5\xdc\xdd\x6f\xf8\x23\x12\xf0\xc1\x0d\x32\xa1\xe0\x0c\x81\xef\x23\x31\x07\xab\x79\xce\x0a\x15\x1a\xc1\x01\x4f\x9c\x2f\xb5\x01\xbc\x16\xd5\xba\xc4\x39\x28\x6d\x41\x00\xe5\x01\x3e\x75\x94\xf2\x02\xc1\xca\x0a\xd3\x53\x7d\x95\xb2\xc6\x1f\x39\xf2\xc9\x60\x2a\x5f\xe9\x2b\x61\xea\x73\x51\xc6\x9a\x3d\xe3\x09\x11\xd4\xad\x55\xee\xf4\xb9\x8c\x22\x20\x4e\x5f\x75\x31\x27\x9e\x36\x87\xb9\x86\x62\xbb\xf4\xb9\xfb\x18\x4e\x62\xee\xe7\x50\x12\x63\xe6\x44\xe6\xd7\xf0\x94\x27\x75\xeb\x9f\x13\x4d\x05\x50\x72\xae\xe1\x6f\x52\x96\xdb\x8e\xe0\x89\x32\xbf\xe6\x03\x42\xdd\x14\xb5\x30\x44\x23\x8e\xb0\x95\x38\x68\xa8\xcd\x1b\x9d\x70\xa4\xa1\x87\x2e\x43\x24\x73\xab\x0e\xc9\x91\x58\x68\xbc\xde\x83\xec\xb7\xcf\xdf\xdc\x3a\x47\xa9\xd9\x4b\xa2\xab\xe0\x46\x0d\xfa\xa5\x41\xc0\x7f\xdf\xfc\x7a\x4a\xdc\xdc\x23\x7a\x27\xcb\xd1\x39\x19\x4f\x21\x01\x6f\xe2\xab\xb6\x9a\xc6\x4b\x41\x8d\xb3\x38\xd3\x97\xe8\xb7\xa9\xb3\x7c\x52\x07\x2d\xa8\x07\xf5\x4b\xce\x20\x39\x83\xf7\x1f\xce\x6e\x2c\x3a\xc7\x6b\xcb\x4e\xcd\x1b\xe7\x78\x6f\x39\x8b\xa8\x42\x86\xa4\xef\xaf\x17\x1d\x2d\x99\x6d\x35\x2b\x52\xb9\xeb\xfd\xa4\x17\x61\x8e\x6f\x36\xe3\x18\x77\x7c\x5f\xb8\x45\xb2\x08\x01\x52\xa7\xe4\xaf\x7c\x85\x18\xe4\xba\xd8\x38\xa0\x4c\x7a\x2c\xb8\x4e\x5e\x51\xd6\xf1\x65\x12\x43\x8d\x6c\xaf\xf0\xa3\x06\x12\xf4\x25\x1a\x23\x73\x6c\xae\x35\xe3\xd1\x74\xd0\x7f\x3c\x52\x91\x95\xc9\xcc\x85\xed\x78\x3e\xed\x18\xe8\xc2\xe0\xe1\x2d\x74\x6d\x7d\xb3\x96\x28\x90\x43\x31\x2c\xd4\x28\xf2\x10\x6b\x79\x5c\x30\xee\xee\xe8\xf8\xe1\x70\x70\x47\x91\x25\x88\xf5\x1a\x55\x9e\x78\xc2\xbc\x6d\xb1\xa3\xdc\x92\xcc\x66\x1e\x26\x7f\xbb\x1f\x1b\xe0\xdf\x06\x1e\xd3\x04\x4a\x78\x6d\x6e\xf0\x6f\x11\xce\x8c\xf0\x32\x11\x19\x72\x12\x94\x8c\x13\xe6\xa0\x35\xbd\x4d\xe7\x67\x8a\x87\xdf\xf3\xfe\x32\xee\x41\xe3\xe1\xd7\xf1\x8c\x9d\x12\x56\xcf\x7c\x52\x7c\xa7\xaa\x4e\x5a\x74\xa9\xcd\xa5\xc5\x95\xbc\x44\x05\x67\x9b\xa2\x40\x03\x9c\x0c\x7d\x4d\x0a\xef\x19\x9c\xd7\x7a\x12\x92\xb3\x4d\xe1\x93\x18\x35\xd0\x8e\x38\x1f\x4b\x65\x1d\x18\x58\xc3\x46\x1c\x09\x9a\x43\xbd\x1b\x08\x34\x26\x76\x88\x22\x0a\x75\x5f\xb2\x98\xa5\x5d\xa3\x48\x7d\xdb\x50\x27\xdb\x92\xb7\x45\x93\xec\xa8\x68\xc7\x35\xbb\xc9\x77\xfc\xab\xf6\x6f\x25\x56\x87\x77\x17\x77\x5c\x8d\xf3\xbb\x07\x2c\xa9\xc1\xc3\x32\x83\x7e\xd2\xec\x17\x04\x86\x8d\x74\x63\xe9\x9d\xf8\xea\xe4\xda\x1d\xd1\x15\x43\x24\xe7\x50\x45\x21\xe3\x54\xe6\x22\x2a\x2a\xdf\xd8\x0d\x97\x8a\xea\xba\x29\x13\xd3\xc9\xc4\xdf\x23\xc4\xda\xf8\xc4\x58\x5d\xcf\x5a\xb8\x07\x90\xed\x76\x9f\xb4\x7a\xe3\xb7\x2a\xf2\x5a\xd2\x97\x15\xfe\xd4\xd9\xd3\xa2\xdd\xd1\x09\x35\x50\x7e\xfd\xf6\x14\xd7\x8d\x66\x9a\x36\xa0\xca\x97\xea\xc2\xca\x50\x63\xd7\x5c\x50\x2f\xe1\x49\xf8\xed\x24\x72\x3a\xf1\xf5\xf6\xd3\x9c\x49\xfe\x85\x8e\x89\xd6\xb8\xfe\x68\x12\x3d\xbb\x2d\x40\xce\x5b\xe1\xc1\x59\xa3\x74\xe5\x3b\x2e\xa8\x8b\x00\xc8\x58\x91\x78\x68\xd0\xc7\x8a\xc3\x9d\xaa\x03\x4b\xdd\x55\x1f\x1e\x41\xfb\xd1\xba\x70\x9f\xc2\xc0\x0b\xb8\x77\xe8\xd8\x0c\x57\x1c\x1e\xdc\xef\x5b\xfd\x79\xc9\xa0\xbd\x7b\x31\x8f\x74\xff\xd9\x29\xf4\x80\xfe\x18\xd4\xf0\xaf\xe6\xb1\xad\xbe\x42\x3d\xa4\xb1\xb2\x00\xb7\x50\x47\x50\x9d\xfa\xd7\xfd\xc8\xd2\xd7\x5e\x9f\x9e\xa9\x5f\x6c\xd7\x40\x5b\x58\x5d\x0f\xb4\x84\xc3\x3d\x61\xb7\x20\x74\xab\x81\x8f\x61\x57\x0e\xdc\x29\xfa\x0e\xe5\xa0\xd3\x62\x8e\xd6\x83\xf1\x14\xfc\xc5\x15\x61\x38\xc1\x1e\x96\x5f\xc7\x9d\xa0\x29\x9f\xa3\x99\x33\x6c\x0f\xcf\xd9\x97\x00\xb7\x30\x1f\xc4\x2e\xee\xd4\x46\xa1\x1b\x8b\xe1\x2f\x04\x6e\x28\x42\x0f\x0d\xd0\x26\x3e\x9d\x6f\x36\x3e\x5c\x88\xd2\x5d\x03\x7f\x3e\xd8\xe4\x4e\xd7\x38\x6a\xf3\x78\x30\x1f\x6e\xf5\x60\xa8\x1e\x16\xa9\x87\x99\xd3\x0b\x37\xb5\x7d\x5c\xe3\xc8\xcc\x36\xc6\xcc\x41\x5f\xb8\xce\x39\x0a\xdc\xf7\x42\xf9\x1e\xe5\x03\x6b\xfb\x95\xbe\xf0\x3a\x0e\x4f\x22\x9d\x55\x63\x67\xb0\xb1\x0a\xb2\x69\x9d\xd4\xe3\x93\xbe\x42\xb3\x42\x33\x7b\x06\xfb\x65\x56\x6e\x72\x22\x14\x5b\xdd\x58\x8a\xee\x25\xe2\x60\x3b\xbb\xd3\x30\x5e\x70\x0e\x24\xbc\x91\x2c\xfd\x1d\xcf\x1d\x45\xcb\x1d\xa2\x0b\x70\x77\xe0\x77\x14\x5d\x8c\x8b\xee\xcb\xdb\xf7\x86\x44\xdc\x07\x78\x84\xd8\xef\x0f\xc3\x53\xee\xe3\x0d\xa3\x12\xc7\x7c\xa1\x85\xb5\x3d\x8e\xb4\xd1\x4a\xba\xb6\x97\xa5\x7f\xff\x4d\x5f\x27\xaa\xd0\xe9\xe9\xa6\x42\x23\xb3\x64\x46\xc4\xde\xfd\x69\x7b\x81\xfa\x92\x96\xe8\x9e\x94\xd8\x1c\x15\x6c\xe9\xde\x51\xa6\x49\x51\x6a\x61\x7f\xf8\x7e\xd6\x41\x69\xa0\x98\x6f\x14\x5e\xaf\x31\xb3\x98\xf7\x2e\x5f\xf9\x02\xb9\xb9\x3b\x5e\xb8\xcb\xe3\xf8\xee\xb8\xbe\x92\x36\x3b\x07\xeb\x56\x67\x5b\xe8\x64\xf1\x8c\x77\x4f\xd4\x08\x16\xfe\xb3\x84\xf8\xaf\xb5\xec\x3f\xe1\xc9\x13\xb0\xf0\xef\x1e\xf9\x87\xef\x17\x54\xc4\xfb\xb7\xac\xee\x46\x9a\x50\x1e\x12\xf7\x4e\x0e\xcb\x7b\x27\x47\x05\x6e\x5a\x89\x43\xf5\xbe\x2d\xb8\x70\x65\xc4\xba\x8e\xff\xce\xcf\xd3\x85\xca\xdd\x09\x2b\x10\x2a\xb4\xe7\x3a\x87\x2b\x69\xcf\xc1\x60\xa6\x2f\xdd\xb1\x1a\x55\xbd\x31\x08\x4a\xc3\x5a\x28\x99\xd5\x20\x15\xf8\x33\xb0\x54\x2b\xdf\x25\x44\x05\xbe\xc8\xa3\x3f\x69\x02\x4f\x9c\xc1\xfb\x0f\xed\xdf\xe1\x7d\x9e\x41\xe2\x6b\x79\x44\xee\x5f\x2a\xe6\x48\x07\x7b\x12\xef\x5b\x1e\x59\xc0\x25\x97\x35\xa7\x1c\x9d\x90\x2f\x3b\xb5\x9d\x2f\xbb\x3b\x2e\xf1\xf5\xdb\x60\x9d\x53\xbe\x79\xea\x9a\xc3\x25\x1f\x9e\x8a\x50\xd7\xd9\x0b\xb9\x7d\xa2\x33\x64\xf0\x2e\xff\x5e\x5a\x27\xb3\x79\x0f\x5d\x77\xd4\xd8\x02\xd7\x91\xef\x0b\x65\x7c\xbb\x16\xa3\xe9\xe8\x01\x4c\x7e\x38\x26\x2c\xdd\x19\xa8\x25\x3e\x06\x92\x1d\xfb\x3a\x60\x3a\x20\xd1\x1f\xbd\x06\x71\x8c\x99\xb7\xa1\x0c\x67\x9e\x2d\x30\xc3\xc0\x7d\xe1\xec\xde\xf5\xc5\x80\x86\x91\x00\xa9\x7b\x8b\x20\x4c\xc3\xb9\x2c\xa2\x3f\x22\xac\xc1\xd2\x01\x60\x65\x73\x22\xdc\x05\x6d\x63\x48\x1f\x5c\x77\x07\xb4\x05\xad\x23\xdf\x17\xd8\x5d\x77\x43\x89\x3b\x5b\x39\xfc\x5e\xb5\xf7\x43\x8f\x82\x9f\x33\x67\x00\x3d\xa7\xc4\x6e\xec\x9c\x15\x5b\xc8\xb9\x5e\x79\x0b\x39\x47\xbe\x2f\x72\x9d\xa3\x40\xe4\x90\x8e\x1e\xdc\x91\xbe\xd8\x1b\x5d\x0f\xdf\x12\x1f\x11\x4a\x67\xdf\x00\x94\xe7\xfe\xec\xb0\x0b\x4a\xaf\x7e\x1f\x4a\xdf\x84\x6f\x61\xe9\xe9\xf7\x05\xb3\x7b\xc8\x88\xd0\xf4\x03\x33\xf6\x4d\xbf\x18\xc1\xe9\x0f\x0a\x2d\xf5\x11\xf1\xf4\xcb\x0e\x00\xba\x0e\x47\x93\x5d\x88\x06\x13\xe6\x9d\x73\x49\x73\x11\x6a\x3b\xef\xd2\xb3\xce\x17\x1f\xc4\xb5\x01\xeb\x1f\xa8\xe3\x26\xec\xb5\xe5\x56\x6e\x62\x61\x09\x36\x7d\x51\x62\x95\x74\x5a\x09\x3b\xfd\x3c\xfd\x7f\x00\x00\x00\xff\xff\x8c\x1c\x20\xaa\x19\x34\x00\x00") func schemaGoBytes() ([]byte, error) { return bindataRead( @@ -113,7 +113,7 @@ func schemaGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "schema.go", size: 13327, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "schema.go", size: 13337, mode: os.FileMode(420), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/entc/load/schema.go b/entc/load/schema.go index 892e5b839..8db8d4277 100644 --- a/entc/load/schema.go +++ b/entc/load/schema.go @@ -165,8 +165,8 @@ func NewIndex(idx *index.Descriptor) *Index { return ni } -// MarshalSchema encode the ent.Schema interface into a JSON -// that can be decoded into the Schema object object. +// MarshalSchema encodes the ent.Schema interface into a JSON +// that can be decoded into the Schema objects declared above. func MarshalSchema(schema ent.Interface) (b []byte, err error) { s := &Schema{ Config: schema.Config(), diff --git a/entc/load/template/main.tmpl b/entc/load/template/main.tmpl index efdb5e7ce..00f79a3ea 100644 --- a/entc/load/template/main.tmpl +++ b/entc/load/template/main.tmpl @@ -18,7 +18,7 @@ import ( var schemas = []ent.Interface{ {{- range $name := .Names }} - entschema.{{- printf "%s{}" $name }}, + entschema.{{ print $name "{}" }}, {{- end }} } diff --git a/examples/traversal/example_test.go b/examples/traversal/example_test.go index 2da9d42b2..e9338506c 100644 --- a/examples/traversal/example_test.go +++ b/examples/traversal/example_test.go @@ -15,7 +15,6 @@ import ( "entgo.io/ent/examples/traversal/ent/user" _ "github.com/mattn/go-sqlite3" - "github.com/pkg/errors" ) func Example_Traversal() { @@ -224,12 +223,12 @@ func WithTx(ctx context.Context, client *ent.Client, fn func(tx *ent.Tx) error) }() if err := fn(tx); err != nil { if rerr := tx.Rollback(); rerr != nil { - err = errors.Wrapf(err, "rolling back transaction: %v", rerr) + err = fmt.Errorf("rolling back transaction: %w", rerr) } return err } if err := tx.Commit(); err != nil { - return errors.Wrapf(err, "committing transaction: %v", err) + return fmt.Errorf("committing transaction: %w", err) } return nil } diff --git a/go.mod b/go.mod index dd3f9793e..092ac0a5e 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,6 @@ require ( github.com/mitchellh/mapstructure v1.4.1 github.com/modern-go/reflect2 v1.0.1 github.com/olekukonko/tablewriter v0.0.5 - github.com/pkg/errors v0.9.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/objx v0.2.0 // indirect github.com/stretchr/testify v1.7.0 diff --git a/go.sum b/go.sum index 857aa447c..50952122d 100644 --- a/go.sum +++ b/go.sum @@ -178,8 +178,6 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=