test-cli: add smoke test for payment service

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
This commit is contained in:
Ahmet Alp Balkan 2018-06-20 15:16:32 -07:00
parent 2316e25504
commit f3efae6203
2 changed files with 153 additions and 118 deletions

View file

@ -35,7 +35,7 @@ func (m *CartItem) Reset() { *m = CartItem{} }
func (m *CartItem) String() string { return proto.CompactTextString(m) }
func (*CartItem) ProtoMessage() {}
func (*CartItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{0}
return fileDescriptor_demo_957798eed1991a59, []int{0}
}
func (m *CartItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CartItem.Unmarshal(m, b)
@ -81,7 +81,7 @@ func (m *AddItemRequest) Reset() { *m = AddItemRequest{} }
func (m *AddItemRequest) String() string { return proto.CompactTextString(m) }
func (*AddItemRequest) ProtoMessage() {}
func (*AddItemRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{1}
return fileDescriptor_demo_957798eed1991a59, []int{1}
}
func (m *AddItemRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddItemRequest.Unmarshal(m, b)
@ -126,7 +126,7 @@ func (m *EmptyCartRequest) Reset() { *m = EmptyCartRequest{} }
func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) }
func (*EmptyCartRequest) ProtoMessage() {}
func (*EmptyCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{2}
return fileDescriptor_demo_957798eed1991a59, []int{2}
}
func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b)
@ -164,7 +164,7 @@ func (m *GetCartRequest) Reset() { *m = GetCartRequest{} }
func (m *GetCartRequest) String() string { return proto.CompactTextString(m) }
func (*GetCartRequest) ProtoMessage() {}
func (*GetCartRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{3}
return fileDescriptor_demo_957798eed1991a59, []int{3}
}
func (m *GetCartRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCartRequest.Unmarshal(m, b)
@ -203,7 +203,7 @@ func (m *Cart) Reset() { *m = Cart{} }
func (m *Cart) String() string { return proto.CompactTextString(m) }
func (*Cart) ProtoMessage() {}
func (*Cart) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{4}
return fileDescriptor_demo_957798eed1991a59, []int{4}
}
func (m *Cart) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Cart.Unmarshal(m, b)
@ -247,7 +247,7 @@ func (m *Empty) Reset() { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{5}
return fileDescriptor_demo_957798eed1991a59, []int{5}
}
func (m *Empty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Empty.Unmarshal(m, b)
@ -279,7 +279,7 @@ func (m *ListRecommendationsRequest) Reset() { *m = ListRecommendationsR
func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsRequest) ProtoMessage() {}
func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{6}
return fileDescriptor_demo_957798eed1991a59, []int{6}
}
func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b)
@ -324,7 +324,7 @@ func (m *ListRecommendationsResponse) Reset() { *m = ListRecommendations
func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) }
func (*ListRecommendationsResponse) ProtoMessage() {}
func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{7}
return fileDescriptor_demo_957798eed1991a59, []int{7}
}
func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b)
@ -352,7 +352,7 @@ func (m *ListRecommendationsResponse) GetProductIds() []string {
}
type Product struct {
Id int32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
Picture string `protobuf:"bytes,4,opt,name=picture" json:"picture,omitempty"`
@ -366,7 +366,7 @@ func (m *Product) Reset() { *m = Product{} }
func (m *Product) String() string { return proto.CompactTextString(m) }
func (*Product) ProtoMessage() {}
func (*Product) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{8}
return fileDescriptor_demo_957798eed1991a59, []int{8}
}
func (m *Product) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Product.Unmarshal(m, b)
@ -386,11 +386,11 @@ func (m *Product) XXX_DiscardUnknown() {
var xxx_messageInfo_Product proto.InternalMessageInfo
func (m *Product) GetId() int32 {
func (m *Product) GetId() string {
if m != nil {
return m.Id
}
return 0
return ""
}
func (m *Product) GetName() string {
@ -432,7 +432,7 @@ func (m *ListProductsResponse) Reset() { *m = ListProductsResponse{} }
func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) }
func (*ListProductsResponse) ProtoMessage() {}
func (*ListProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{9}
return fileDescriptor_demo_957798eed1991a59, []int{9}
}
func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b)
@ -460,7 +460,7 @@ func (m *ListProductsResponse) GetProducts() []*Product {
}
type GetProductRequest struct {
Id int32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -470,7 +470,7 @@ func (m *GetProductRequest) Reset() { *m = GetProductRequest{} }
func (m *GetProductRequest) String() string { return proto.CompactTextString(m) }
func (*GetProductRequest) ProtoMessage() {}
func (*GetProductRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{10}
return fileDescriptor_demo_957798eed1991a59, []int{10}
}
func (m *GetProductRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProductRequest.Unmarshal(m, b)
@ -490,11 +490,11 @@ func (m *GetProductRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_GetProductRequest proto.InternalMessageInfo
func (m *GetProductRequest) GetId() int32 {
func (m *GetProductRequest) GetId() string {
if m != nil {
return m.Id
}
return 0
return ""
}
type SearchProductsRequest struct {
@ -508,7 +508,7 @@ func (m *SearchProductsRequest) Reset() { *m = SearchProductsRequest{} }
func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) }
func (*SearchProductsRequest) ProtoMessage() {}
func (*SearchProductsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{11}
return fileDescriptor_demo_957798eed1991a59, []int{11}
}
func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b)
@ -546,7 +546,7 @@ func (m *SearchProductsResponse) Reset() { *m = SearchProductsResponse{}
func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) }
func (*SearchProductsResponse) ProtoMessage() {}
func (*SearchProductsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{12}
return fileDescriptor_demo_957798eed1991a59, []int{12}
}
func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b)
@ -585,7 +585,7 @@ func (m *GetQuoteRequest) Reset() { *m = GetQuoteRequest{} }
func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) }
func (*GetQuoteRequest) ProtoMessage() {}
func (*GetQuoteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{13}
return fileDescriptor_demo_957798eed1991a59, []int{13}
}
func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b)
@ -630,7 +630,7 @@ func (m *GetQuoteResponse) Reset() { *m = GetQuoteResponse{} }
func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) }
func (*GetQuoteResponse) ProtoMessage() {}
func (*GetQuoteResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{14}
return fileDescriptor_demo_957798eed1991a59, []int{14}
}
func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b)
@ -669,7 +669,7 @@ func (m *ShipOrderRequest) Reset() { *m = ShipOrderRequest{} }
func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) }
func (*ShipOrderRequest) ProtoMessage() {}
func (*ShipOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{15}
return fileDescriptor_demo_957798eed1991a59, []int{15}
}
func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b)
@ -714,7 +714,7 @@ func (m *ShipOrderResponse) Reset() { *m = ShipOrderResponse{} }
func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) }
func (*ShipOrderResponse) ProtoMessage() {}
func (*ShipOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{16}
return fileDescriptor_demo_957798eed1991a59, []int{16}
}
func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b)
@ -756,7 +756,7 @@ func (m *Address) Reset() { *m = Address{} }
func (m *Address) String() string { return proto.CompactTextString(m) }
func (*Address) ProtoMessage() {}
func (*Address) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{17}
return fileDescriptor_demo_957798eed1991a59, []int{17}
}
func (m *Address) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address.Unmarshal(m, b)
@ -825,7 +825,7 @@ func (m *MoneyAmount) Reset() { *m = MoneyAmount{} }
func (m *MoneyAmount) String() string { return proto.CompactTextString(m) }
func (*MoneyAmount) ProtoMessage() {}
func (*MoneyAmount) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{18}
return fileDescriptor_demo_957798eed1991a59, []int{18}
}
func (m *MoneyAmount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MoneyAmount.Unmarshal(m, b)
@ -872,7 +872,7 @@ func (m *Money) Reset() { *m = Money{} }
func (m *Money) String() string { return proto.CompactTextString(m) }
func (*Money) ProtoMessage() {}
func (*Money) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{19}
return fileDescriptor_demo_957798eed1991a59, []int{19}
}
func (m *Money) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Money.Unmarshal(m, b)
@ -918,7 +918,7 @@ func (m *GetSupportedCurrenciesResponse) Reset() { *m = GetSupportedCurr
func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) }
func (*GetSupportedCurrenciesResponse) ProtoMessage() {}
func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{20}
return fileDescriptor_demo_957798eed1991a59, []int{20}
}
func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b)
@ -958,7 +958,7 @@ func (m *ConversionRequest) Reset() { *m = ConversionRequest{} }
func (m *ConversionRequest) String() string { return proto.CompactTextString(m) }
func (*ConversionRequest) ProtoMessage() {}
func (*ConversionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{21}
return fileDescriptor_demo_957798eed1991a59, []int{21}
}
func (m *ConversionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConversionRequest.Unmarshal(m, b)
@ -1003,7 +1003,7 @@ func (m *ConversionResponse) Reset() { *m = ConversionResponse{} }
func (m *ConversionResponse) String() string { return proto.CompactTextString(m) }
func (*ConversionResponse) ProtoMessage() {}
func (*ConversionResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{22}
return fileDescriptor_demo_957798eed1991a59, []int{22}
}
func (m *ConversionResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConversionResponse.Unmarshal(m, b)
@ -1044,7 +1044,7 @@ func (m *CreditCardInfo) Reset() { *m = CreditCardInfo{} }
func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) }
func (*CreditCardInfo) ProtoMessage() {}
func (*CreditCardInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{23}
return fileDescriptor_demo_957798eed1991a59, []int{23}
}
func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b)
@ -1104,7 +1104,7 @@ func (m *ChargeRequest) Reset() { *m = ChargeRequest{} }
func (m *ChargeRequest) String() string { return proto.CompactTextString(m) }
func (*ChargeRequest) ProtoMessage() {}
func (*ChargeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{24}
return fileDescriptor_demo_957798eed1991a59, []int{24}
}
func (m *ChargeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeRequest.Unmarshal(m, b)
@ -1149,7 +1149,7 @@ func (m *ChargeResponse) Reset() { *m = ChargeResponse{} }
func (m *ChargeResponse) String() string { return proto.CompactTextString(m) }
func (*ChargeResponse) ProtoMessage() {}
func (*ChargeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{25}
return fileDescriptor_demo_957798eed1991a59, []int{25}
}
func (m *ChargeResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChargeResponse.Unmarshal(m, b)
@ -1188,7 +1188,7 @@ func (m *OrderItem) Reset() { *m = OrderItem{} }
func (m *OrderItem) String() string { return proto.CompactTextString(m) }
func (*OrderItem) ProtoMessage() {}
func (*OrderItem) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{26}
return fileDescriptor_demo_957798eed1991a59, []int{26}
}
func (m *OrderItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderItem.Unmarshal(m, b)
@ -1237,7 +1237,7 @@ func (m *OrderResult) Reset() { *m = OrderResult{} }
func (m *OrderResult) String() string { return proto.CompactTextString(m) }
func (*OrderResult) ProtoMessage() {}
func (*OrderResult) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{27}
return fileDescriptor_demo_957798eed1991a59, []int{27}
}
func (m *OrderResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderResult.Unmarshal(m, b)
@ -1304,7 +1304,7 @@ func (m *SendOrderConfirmationRequest) Reset() { *m = SendOrderConfirmat
func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) }
func (*SendOrderConfirmationRequest) ProtoMessage() {}
func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{28}
return fileDescriptor_demo_957798eed1991a59, []int{28}
}
func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b)
@ -1351,7 +1351,7 @@ func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} }
func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) }
func (*CreateOrderRequest) ProtoMessage() {}
func (*CreateOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{29}
return fileDescriptor_demo_957798eed1991a59, []int{29}
}
func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b)
@ -1404,7 +1404,7 @@ func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} }
func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) }
func (*CreateOrderResponse) ProtoMessage() {}
func (*CreateOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{30}
return fileDescriptor_demo_957798eed1991a59, []int{30}
}
func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b)
@ -1453,7 +1453,7 @@ func (m *PlaceOrderRequest) Reset() { *m = PlaceOrderRequest{} }
func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderRequest) ProtoMessage() {}
func (*PlaceOrderRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{31}
return fileDescriptor_demo_957798eed1991a59, []int{31}
}
func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b)
@ -1519,7 +1519,7 @@ func (m *PlaceOrderResponse) Reset() { *m = PlaceOrderResponse{} }
func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) }
func (*PlaceOrderResponse) ProtoMessage() {}
func (*PlaceOrderResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_demo_d65f84bf2547388d, []int{32}
return fileDescriptor_demo_957798eed1991a59, []int{32}
}
func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b)
@ -2333,10 +2333,10 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{
Metadata: "demo.proto",
}
func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_d65f84bf2547388d) }
func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_957798eed1991a59) }
var fileDescriptor_demo_d65f84bf2547388d = []byte{
// 1482 bytes of a gzipped FileDescriptorProto
var fileDescriptor_demo_957798eed1991a59 = []byte{
// 1480 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x72, 0xd3, 0x46,
0x1b, 0x8e, 0x92, 0x38, 0xb6, 0x5f, 0xc7, 0x4e, 0xb2, 0x24, 0x7c, 0x46, 0x81, 0x90, 0x6f, 0x33,
0x1f, 0x5f, 0xf8, 0x69, 0x06, 0x42, 0x3b, 0x1c, 0x94, 0x16, 0x18, 0x93, 0x31, 0x9e, 0x81, 0x42,
@ -2355,79 +2355,79 @@ var fileDescriptor_demo_d65f84bf2547388d = []byte{
0x36, 0xc9, 0x04, 0x83, 0xeb, 0x50, 0x93, 0x2c, 0xf1, 0x37, 0x60, 0x3e, 0xf6, 0x22, 0x6e, 0x11,
0x87, 0xfa, 0x3e, 0x09, 0x5c, 0x9b, 0x7b, 0x34, 0x88, 0x4e, 0x35, 0xc8, 0x65, 0x68, 0x65, 0x66,
0x4f, 0x54, 0x36, 0x2d, 0x48, 0xed, 0x1e, 0xe1, 0x2f, 0x61, 0xb3, 0x52, 0x6e, 0x14, 0xd2, 0x20,
0x22, 0xe5, 0xfb, 0xc6, 0xd4, 0xfd, 0x9f, 0x0d, 0xa8, 0x3f, 0x4b, 0x96, 0xa8, 0x03, 0xf3, 0x8a,
0x40, 0xcd, 0x9a, 0xf7, 0x5c, 0x84, 0x60, 0x31, 0xb0, 0x7d, 0x22, 0xbd, 0xd1, 0xb4, 0xe4, 0x6f,
0xb4, 0x0d, 0x2d, 0x97, 0x44, 0x0e, 0xf3, 0x42, 0xa1, 0xa8, 0xbb, 0x20, 0x8f, 0xf2, 0x5b, 0xa8,
0x0b, 0xf5, 0xd0, 0x73, 0x78, 0xcc, 0x48, 0x77, 0x51, 0x9e, 0xea, 0x25, 0xfa, 0x0c, 0x9a, 0x21,
0xf3, 0x1c, 0x32, 0x8c, 0x23, 0xb7, 0x5b, 0x93, 0x2e, 0xee, 0x16, 0xac, 0xf7, 0x84, 0x06, 0x64,
0xf2, 0xc0, 0xa7, 0x71, 0xc0, 0xad, 0x86, 0x84, 0xbe, 0x88, 0x5c, 0xfc, 0x08, 0xd6, 0xc5, 0x13,
0x15, 0xcb, 0xec, 0x6d, 0x37, 0xa1, 0xa1, 0x1e, 0x92, 0x3c, 0xac, 0xb5, 0xbf, 0x5e, 0x90, 0xa6,
0x2e, 0x58, 0x29, 0x0a, 0xef, 0xc0, 0x5a, 0x9f, 0x68, 0x41, 0xda, 0xf6, 0xa5, 0x57, 0xe3, 0x4f,
0x60, 0xe3, 0x90, 0xd8, 0xcc, 0x19, 0x65, 0x0a, 0x13, 0xe0, 0x3a, 0xd4, 0xde, 0xc5, 0x84, 0x4d,
0x94, 0x8b, 0x92, 0x05, 0x7e, 0x04, 0xe7, 0xcb, 0x70, 0xc5, 0x6f, 0x0f, 0xea, 0x8c, 0x44, 0xf1,
0xf8, 0x14, 0x7a, 0x1a, 0x84, 0x03, 0x58, 0xe9, 0x13, 0xfe, 0x75, 0x4c, 0x39, 0xd1, 0x2a, 0xf7,
0xa0, 0x6e, 0xbb, 0x2e, 0x23, 0x51, 0x24, 0x95, 0x96, 0x45, 0x3c, 0x48, 0xce, 0x2c, 0x0d, 0xfa,
0xb8, 0xd8, 0xec, 0xc3, 0x6a, 0xa6, 0x4f, 0x71, 0xbe, 0x0d, 0x0d, 0x87, 0x46, 0x5c, 0x7a, 0xc8,
0x38, 0xc5, 0x43, 0x75, 0x81, 0x14, 0x0e, 0xa2, 0xb0, 0x7a, 0x38, 0xf2, 0xc2, 0xa7, 0xcc, 0x25,
0xec, 0x1f, 0x61, 0xfe, 0x29, 0xac, 0xe5, 0x14, 0x66, 0xa1, 0xce, 0x99, 0xed, 0xbc, 0xf5, 0x82,
0x37, 0x59, 0x1e, 0x81, 0xde, 0x1a, 0xb8, 0xf8, 0x17, 0x03, 0xea, 0x4a, 0x2f, 0xda, 0x85, 0xd5,
0x88, 0x33, 0x42, 0xf8, 0x50, 0x11, 0x18, 0xde, 0x52, 0x37, 0x3a, 0xc9, 0xbe, 0x02, 0xde, 0xaa,
0x40, 0xee, 0xab, 0x84, 0x28, 0x22, 0xf7, 0x45, 0xba, 0x38, 0xa2, 0xfe, 0x25, 0x39, 0x21, 0x7f,
0x8b, 0x64, 0x70, 0x84, 0xb1, 0xd8, 0x44, 0x27, 0x83, 0x5a, 0xa2, 0x0b, 0xd0, 0x78, 0xef, 0x85,
0x43, 0x87, 0xba, 0x44, 0xe6, 0x42, 0xcd, 0xaa, 0xbf, 0xf7, 0xc2, 0x1e, 0x75, 0x09, 0xee, 0x43,
0x2b, 0x67, 0x67, 0x21, 0xc3, 0x25, 0x8e, 0xe7, 0xdb, 0x63, 0x49, 0xb1, 0x6d, 0xe9, 0x25, 0xda,
0x02, 0x38, 0x62, 0xb6, 0x23, 0xd2, 0xce, 0x1e, 0x4b, 0x56, 0x6d, 0x2b, 0xb7, 0x83, 0x5f, 0x41,
0x4d, 0x0a, 0x42, 0x3b, 0xd0, 0x76, 0x62, 0xc6, 0x48, 0xe0, 0x4c, 0x12, 0x8d, 0xc9, 0x5b, 0x97,
0xf5, 0xa6, 0x50, 0x8b, 0x6e, 0xc2, 0x92, 0x2d, 0x35, 0xaa, 0xf2, 0x3b, 0xdb, 0xf3, 0x0a, 0x87,
0xfb, 0xb0, 0xd5, 0x27, 0xfc, 0x30, 0x0e, 0x43, 0xca, 0x38, 0x71, 0x7b, 0x89, 0x34, 0x8f, 0x64,
0x39, 0xf0, 0x3f, 0xe8, 0x14, 0x14, 0xeb, 0x12, 0xd4, 0xce, 0x6b, 0x8e, 0xf0, 0x73, 0x58, 0xeb,
0xd1, 0xe0, 0x98, 0xb0, 0xc8, 0xa3, 0x81, 0x0e, 0xa1, 0x2b, 0xb0, 0x78, 0xc4, 0xa8, 0xaf, 0xe2,
0x07, 0x4d, 0xb3, 0xb1, 0xe4, 0xb9, 0x28, 0x9e, 0x9c, 0x26, 0xcf, 0x4a, 0x1c, 0xb3, 0xc4, 0xa9,
0xb4, 0xe3, 0x7d, 0x40, 0x79, 0xa9, 0x8a, 0xd2, 0x35, 0x58, 0x4a, 0x32, 0xee, 0x04, 0xc1, 0x0a,
0x81, 0xff, 0x32, 0xa0, 0xd3, 0x63, 0xc4, 0xf5, 0x44, 0xef, 0x70, 0x07, 0xc1, 0x11, 0x45, 0x37,
0x00, 0x39, 0x72, 0x67, 0xe8, 0xd8, 0xcc, 0x1d, 0x06, 0xb1, 0xff, 0x9a, 0x30, 0x65, 0xcf, 0x55,
0x27, 0xc5, 0x7e, 0x25, 0xf7, 0xd1, 0x15, 0x58, 0xc9, 0xa3, 0x9d, 0xe3, 0x63, 0xd5, 0x1e, 0xdb,
0x19, 0xb4, 0x77, 0x7c, 0x8c, 0xbe, 0x80, 0xcd, 0x3c, 0x8e, 0xfc, 0x10, 0x7a, 0x4c, 0x96, 0xf2,
0xe1, 0x84, 0xd8, 0x4c, 0x86, 0x54, 0xcd, 0xea, 0x66, 0x77, 0x0e, 0x52, 0xc0, 0x77, 0xc4, 0x66,
0xe8, 0x1e, 0x5c, 0x9c, 0x71, 0xdd, 0xa7, 0x01, 0x1f, 0xc9, 0xd8, 0xab, 0x59, 0x17, 0xaa, 0xee,
0x3f, 0x11, 0x00, 0x3c, 0x81, 0x76, 0x6f, 0x64, 0xb3, 0x37, 0x69, 0xe5, 0xb9, 0x96, 0x06, 0xc3,
0x09, 0x56, 0x4a, 0x10, 0xe8, 0x2e, 0xb4, 0x72, 0xda, 0x55, 0xf4, 0x6c, 0x16, 0x33, 0xb8, 0x60,
0x44, 0x0b, 0x32, 0x26, 0xf8, 0x0e, 0x74, 0xb4, 0xea, 0x2c, 0x68, 0x38, 0xb3, 0x83, 0x28, 0x89,
0xe3, 0x2c, 0x99, 0xdb, 0xb9, 0xdd, 0x81, 0x8b, 0x5f, 0x41, 0x53, 0x56, 0x00, 0x39, 0x9f, 0xe8,
0xc9, 0xc1, 0x38, 0x75, 0x72, 0x10, 0x71, 0x25, 0x2a, 0x97, 0xe2, 0x59, 0x19, 0x57, 0xe2, 0x1c,
0x7f, 0x98, 0x87, 0x96, 0x2e, 0x31, 0xf1, 0x98, 0x8b, 0x8c, 0xa5, 0x62, 0x99, 0x11, 0xaa, 0xcb,
0xf5, 0xc0, 0x45, 0x37, 0x61, 0x3d, 0x1a, 0x79, 0x61, 0x28, 0x6a, 0x4f, 0xbe, 0x08, 0x25, 0xf1,
0x88, 0xf4, 0xd9, 0xf3, 0xb4, 0x18, 0xa1, 0x3b, 0xd0, 0x4e, 0x6f, 0x48, 0x36, 0x0b, 0x33, 0xd9,
0x2c, 0x6b, 0x60, 0x8f, 0x46, 0x1c, 0xdd, 0x83, 0xd5, 0xf4, 0xa2, 0xae, 0xb0, 0x8b, 0x27, 0x54,
0xd8, 0x15, 0x8d, 0xd6, 0xa5, 0xef, 0x86, 0xae, 0xb4, 0x35, 0x59, 0x69, 0xcf, 0x17, 0x6e, 0xa5,
0x06, 0xd5, 0xa5, 0xd6, 0x85, 0x8b, 0x87, 0x24, 0x70, 0xe5, 0x7e, 0x8f, 0x06, 0x47, 0x1e, 0xf3,
0x65, 0xd8, 0xe4, 0x9a, 0x22, 0xf1, 0x6d, 0x6f, 0xac, 0x9b, 0xa2, 0x5c, 0xa0, 0x3d, 0xa8, 0x49,
0xd3, 0x54, 0x56, 0x92, 0x9c, 0x4d, 0xad, 0x04, 0x86, 0x3f, 0x18, 0x80, 0x7a, 0x8c, 0xd8, 0x9c,
0x14, 0x9a, 0xc8, 0xcc, 0xb1, 0x68, 0x07, 0xda, 0xf2, 0x40, 0x57, 0x11, 0x65, 0xe8, 0x65, 0xb1,
0xa9, 0xaa, 0xd0, 0x24, 0xdf, 0x82, 0x16, 0xce, 0xd0, 0x82, 0xf0, 0x8f, 0x70, 0xae, 0xc0, 0x41,
0x45, 0x63, 0x6a, 0x2f, 0xe3, 0x0c, 0xf6, 0x9a, 0xf6, 0xeb, 0xfc, 0xd9, 0xfc, 0x8a, 0xff, 0x34,
0x60, 0xed, 0xd9, 0xd8, 0x76, 0xfe, 0x45, 0x0b, 0x64, 0xce, 0xac, 0xe5, 0x9d, 0x59, 0x4a, 0xef,
0xa5, 0x8f, 0x4b, 0xef, 0x87, 0x80, 0xf2, 0xcf, 0x4a, 0x67, 0x23, 0x15, 0x20, 0xc6, 0x99, 0x02,
0x64, 0xff, 0x0f, 0x03, 0x5a, 0x22, 0x8d, 0x0f, 0x09, 0x3b, 0xf6, 0x1c, 0x82, 0xee, 0xca, 0x56,
0x2e, 0x33, 0x7f, 0xb3, 0xfc, 0xa6, 0xdc, 0x97, 0x86, 0x59, 0xb4, 0x7b, 0x32, 0x8a, 0xcf, 0xa1,
0xcf, 0xa1, 0xae, 0x3e, 0x07, 0x4a, 0xb7, 0x8b, 0x1f, 0x09, 0xe6, 0xda, 0x54, 0x19, 0xc1, 0x73,
0xe8, 0x3e, 0x34, 0xd3, 0x0f, 0x0f, 0x74, 0x69, 0x5a, 0x7e, 0x5e, 0x40, 0xa5, 0xfa, 0xfd, 0x9f,
0x0c, 0xd8, 0x28, 0x0e, 0xec, 0xfa, 0x59, 0xdf, 0xc3, 0xb9, 0x8a, 0x69, 0x1e, 0xfd, 0xbf, 0x20,
0x66, 0xf6, 0x77, 0x84, 0xb9, 0x7b, 0x3a, 0x30, 0x71, 0x80, 0x60, 0x31, 0x0f, 0x1b, 0x6a, 0x06,
0xed, 0xd9, 0xdc, 0x1e, 0xd3, 0x37, 0x9a, 0x45, 0x1f, 0x96, 0xf3, 0x03, 0x37, 0xaa, 0x78, 0x85,
0xf9, 0xdf, 0x29, 0x4d, 0xe5, 0xf9, 0x17, 0xcf, 0xa1, 0x87, 0x00, 0xd9, 0xbc, 0x8d, 0xb6, 0xca,
0xa6, 0x2e, 0x0e, 0xe2, 0x66, 0xe5, 0x78, 0x8c, 0xe7, 0xd0, 0x4b, 0xe8, 0x14, 0x27, 0x6c, 0x84,
0x0b, 0xc8, 0xca, 0x69, 0xdd, 0xdc, 0x39, 0x11, 0x93, 0x5a, 0xe1, 0x57, 0x03, 0x56, 0x0e, 0x55,
0x1e, 0xea, 0xf7, 0x0f, 0xa0, 0xa1, 0x07, 0x63, 0x74, 0xb1, 0x4c, 0x3a, 0x3f, 0x9f, 0x9b, 0x97,
0x66, 0x9c, 0xa6, 0x16, 0x78, 0x0c, 0xcd, 0x74, 0x52, 0x2d, 0x05, 0x4b, 0x79, 0x64, 0x36, 0xb7,
0x66, 0x1d, 0xa7, 0x64, 0x7f, 0x37, 0x60, 0x45, 0x27, 0xb7, 0x26, 0xfb, 0x12, 0xce, 0x57, 0xcf,
0x60, 0x95, 0x6e, 0xbb, 0x5e, 0x26, 0x7c, 0xc2, 0xf0, 0x26, 0xe9, 0xd7, 0x93, 0x09, 0xaa, 0xec,
0xbd, 0xa9, 0x69, 0xcd, 0xbc, 0x3c, 0xf3, 0x3c, 0xa5, 0xff, 0x02, 0x3a, 0xcf, 0xec, 0x89, 0x4f,
0x82, 0x34, 0x8d, 0x7b, 0xb0, 0x94, 0xf4, 0x7e, 0x64, 0x16, 0xaf, 0xe7, 0x67, 0x11, 0x73, 0xb3,
0xf2, 0x2c, 0x15, 0x3b, 0x82, 0xe5, 0x03, 0x51, 0xa8, 0xb4, 0xd0, 0x6f, 0xc5, 0x07, 0x5c, 0x45,
0xcb, 0x42, 0x57, 0x4b, 0x21, 0x31, 0xbb, 0xad, 0xcd, 0x48, 0xdc, 0xdf, 0x84, 0xfd, 0x47, 0xc4,
0x79, 0x4b, 0xe3, 0xf4, 0x09, 0x16, 0xb4, 0x72, 0x5d, 0x03, 0x5d, 0x2e, 0xd7, 0xc5, 0x52, 0x4f,
0x33, 0xb7, 0x67, 0x03, 0x52, 0xb3, 0x3f, 0x05, 0xc8, 0x6a, 0x66, 0xc9, 0xf2, 0x53, 0x3d, 0xa2,
0x64, 0xf9, 0xe9, 0x62, 0x8b, 0xe7, 0x5e, 0x2f, 0xc9, 0x7f, 0x77, 0x6e, 0xff, 0x1d, 0x00, 0x00,
0xff, 0xff, 0xfe, 0x73, 0x50, 0xfe, 0xeb, 0x11, 0x00, 0x00,
0x22, 0xe5, 0xfb, 0xc6, 0xd4, 0xfd, 0x9f, 0x0d, 0xa8, 0x3f, 0x4b, 0x96, 0xa8, 0x03, 0xf3, 0x29,
0x81, 0x79, 0xcf, 0x45, 0x08, 0x16, 0x03, 0xdb, 0x27, 0xd2, 0x1b, 0x4d, 0x4b, 0xfe, 0x46, 0xdb,
0xd0, 0x72, 0x49, 0xe4, 0x30, 0x2f, 0x14, 0x8a, 0xba, 0x0b, 0xf2, 0x28, 0xbf, 0x85, 0xba, 0x50,
0x0f, 0x3d, 0x87, 0xc7, 0x8c, 0x74, 0x17, 0xe5, 0xa9, 0x5e, 0xa2, 0xcf, 0xa0, 0x19, 0x32, 0xcf,
0x21, 0xc3, 0x38, 0x72, 0xbb, 0x35, 0xe9, 0xe2, 0x6e, 0xc1, 0x7a, 0x4f, 0x68, 0x40, 0x26, 0x0f,
0x7c, 0x1a, 0x07, 0xdc, 0x6a, 0x48, 0xe8, 0x8b, 0xc8, 0xc5, 0x8f, 0x60, 0x5d, 0x3c, 0x51, 0xb1,
0xcc, 0xde, 0x76, 0x13, 0x1a, 0xea, 0x21, 0xc9, 0xc3, 0x5a, 0xfb, 0xeb, 0x05, 0x69, 0xea, 0x82,
0x95, 0xa2, 0xf0, 0x0e, 0xac, 0xf5, 0x89, 0x16, 0xa4, 0x6d, 0x5f, 0x7a, 0x35, 0xfe, 0x04, 0x36,
0x0e, 0x89, 0xcd, 0x9c, 0x51, 0xa6, 0x30, 0x01, 0xae, 0x43, 0xed, 0x5d, 0x4c, 0xd8, 0x44, 0x61,
0x93, 0x05, 0x7e, 0x04, 0xe7, 0xcb, 0x70, 0xc5, 0x6f, 0x0f, 0xea, 0x8c, 0x44, 0xf1, 0xf8, 0x14,
0x7a, 0x1a, 0x84, 0x03, 0x58, 0xe9, 0x13, 0xfe, 0x75, 0x4c, 0x39, 0xd1, 0x2a, 0xf7, 0xa0, 0x6e,
0xbb, 0x2e, 0x23, 0x51, 0x24, 0x95, 0x96, 0x45, 0x3c, 0x48, 0xce, 0x2c, 0x0d, 0xfa, 0xb8, 0xd8,
0xec, 0xc3, 0x6a, 0xa6, 0x4f, 0x71, 0xbe, 0x0d, 0x0d, 0x87, 0x46, 0x5c, 0x7a, 0xc8, 0x38, 0xc5,
0x43, 0x75, 0x81, 0x14, 0x0e, 0xa2, 0xb0, 0x7a, 0x38, 0xf2, 0xc2, 0xa7, 0xcc, 0x25, 0xec, 0x1f,
0x61, 0xfe, 0x29, 0xac, 0xe5, 0x14, 0x66, 0xa1, 0xce, 0x99, 0xed, 0xbc, 0xf5, 0x82, 0x37, 0x59,
0x1e, 0x81, 0xde, 0x1a, 0xb8, 0xf8, 0x17, 0x03, 0xea, 0x4a, 0x2f, 0xda, 0x85, 0xd5, 0x88, 0x33,
0x42, 0xf8, 0x50, 0x11, 0x18, 0xde, 0x52, 0x37, 0x3a, 0xc9, 0xbe, 0x02, 0xde, 0xaa, 0x40, 0xee,
0xab, 0x84, 0x28, 0x22, 0xf7, 0x45, 0xba, 0x38, 0xa2, 0xfe, 0x25, 0x39, 0x21, 0x7f, 0x8b, 0x64,
0x70, 0x84, 0xb1, 0xd8, 0x44, 0x27, 0x83, 0x5a, 0xa2, 0x0b, 0xd0, 0x78, 0xef, 0x85, 0x43, 0x87,
0xba, 0x44, 0xe6, 0x42, 0xcd, 0xaa, 0xbf, 0xf7, 0xc2, 0x1e, 0x75, 0x09, 0xee, 0x43, 0x2b, 0x67,
0x67, 0x21, 0xc3, 0x25, 0x8e, 0xe7, 0xdb, 0x63, 0x49, 0xb1, 0x6d, 0xe9, 0x25, 0xda, 0x02, 0x38,
0x62, 0xb6, 0x23, 0xd2, 0xce, 0x1e, 0x4b, 0x56, 0x6d, 0x2b, 0xb7, 0x83, 0x5f, 0x41, 0x4d, 0x0a,
0x42, 0x3b, 0xd0, 0x76, 0x62, 0xc6, 0x48, 0xe0, 0x4c, 0x12, 0x8d, 0xc9, 0x5b, 0x97, 0xf5, 0xa6,
0x50, 0x8b, 0x6e, 0xc2, 0x92, 0x2d, 0x35, 0xaa, 0xf2, 0x3b, 0xdb, 0xf3, 0x0a, 0x87, 0xfb, 0xb0,
0xd5, 0x27, 0xfc, 0x30, 0x0e, 0x43, 0xca, 0x38, 0x71, 0x7b, 0x89, 0x34, 0x8f, 0x64, 0x39, 0xf0,
0x3f, 0xe8, 0x14, 0x14, 0xeb, 0x12, 0xd4, 0xce, 0x6b, 0x8e, 0xf0, 0x73, 0x58, 0xeb, 0xd1, 0xe0,
0x98, 0xb0, 0xc8, 0xa3, 0x81, 0x0e, 0xa1, 0x2b, 0xb0, 0x78, 0xc4, 0xa8, 0xaf, 0xe2, 0x07, 0x4d,
0xb3, 0xb1, 0xe4, 0xb9, 0x28, 0x9e, 0x9c, 0x26, 0xcf, 0x4a, 0x1c, 0xb3, 0xc4, 0xa9, 0xb4, 0xe3,
0x7d, 0x40, 0x79, 0xa9, 0x8a, 0xd2, 0x35, 0x58, 0x4a, 0x32, 0xee, 0x04, 0xc1, 0x0a, 0x81, 0xff,
0x32, 0xa0, 0xd3, 0x63, 0xc4, 0xf5, 0x44, 0xef, 0x70, 0x07, 0xc1, 0x11, 0x45, 0x37, 0x00, 0x39,
0x72, 0x67, 0xe8, 0xd8, 0xcc, 0x1d, 0x06, 0xb1, 0xff, 0x9a, 0x30, 0x65, 0xcf, 0x55, 0x27, 0xc5,
0x7e, 0x25, 0xf7, 0xd1, 0x15, 0x58, 0xc9, 0xa3, 0x9d, 0xe3, 0x63, 0xd5, 0x1e, 0xdb, 0x19, 0xb4,
0x77, 0x7c, 0x8c, 0xbe, 0x80, 0xcd, 0x3c, 0x8e, 0xfc, 0x10, 0x7a, 0x4c, 0x96, 0xf2, 0xe1, 0x84,
0xd8, 0x4c, 0x86, 0x54, 0xcd, 0xea, 0x66, 0x77, 0x0e, 0x52, 0xc0, 0x77, 0xc4, 0x66, 0xe8, 0x1e,
0x5c, 0x9c, 0x71, 0xdd, 0xa7, 0x01, 0x1f, 0xc9, 0xd8, 0xab, 0x59, 0x17, 0xaa, 0xee, 0x3f, 0x11,
0x00, 0x3c, 0x81, 0x76, 0x6f, 0x64, 0xb3, 0x37, 0x69, 0xe5, 0xb9, 0x96, 0x06, 0xc3, 0x09, 0x56,
0x4a, 0x10, 0xe8, 0x2e, 0xb4, 0x72, 0xda, 0x55, 0xf4, 0x6c, 0x16, 0x33, 0xb8, 0x60, 0x44, 0x0b,
0x32, 0x26, 0xf8, 0x0e, 0x74, 0xb4, 0xea, 0x2c, 0x68, 0x38, 0xb3, 0x83, 0x28, 0x89, 0xe3, 0x2c,
0x99, 0xdb, 0xb9, 0xdd, 0x81, 0x8b, 0x5f, 0x41, 0x53, 0x56, 0x00, 0x39, 0x9f, 0xe8, 0xc9, 0xc1,
0x38, 0x75, 0x72, 0x10, 0x71, 0x25, 0x2a, 0x97, 0xe2, 0x59, 0x19, 0x57, 0xe2, 0x1c, 0x7f, 0x98,
0x87, 0x96, 0x2e, 0x31, 0xf1, 0x98, 0x8b, 0x8c, 0xa5, 0x62, 0x99, 0x11, 0xaa, 0xcb, 0xf5, 0xc0,
0x45, 0x37, 0x61, 0x3d, 0x1a, 0x79, 0x61, 0x28, 0x6a, 0x4f, 0xbe, 0x08, 0x25, 0xf1, 0x88, 0xf4,
0xd9, 0xf3, 0xb4, 0x18, 0xa1, 0x3b, 0xd0, 0x4e, 0x6f, 0x48, 0x36, 0x0b, 0x33, 0xd9, 0x2c, 0x6b,
0x60, 0x8f, 0x46, 0x1c, 0xdd, 0x83, 0xd5, 0xf4, 0xa2, 0xae, 0xb0, 0x8b, 0x27, 0x54, 0xd8, 0x15,
0x8d, 0xd6, 0xa5, 0xef, 0x86, 0xae, 0xb4, 0x35, 0x59, 0x69, 0xcf, 0x17, 0x6e, 0xa5, 0x06, 0xd5,
0xa5, 0xd6, 0x85, 0x8b, 0x87, 0x24, 0x70, 0xe5, 0x7e, 0x8f, 0x06, 0x47, 0x1e, 0xf3, 0x65, 0xd8,
0xe4, 0x9a, 0x22, 0xf1, 0x6d, 0x6f, 0xac, 0x9b, 0xa2, 0x5c, 0xa0, 0x3d, 0xa8, 0x49, 0xd3, 0x54,
0x56, 0x92, 0x9c, 0x4d, 0xad, 0x04, 0x86, 0x3f, 0x18, 0x80, 0x7a, 0x8c, 0xd8, 0x9c, 0x14, 0x9a,
0xc8, 0xcc, 0xb1, 0x68, 0x07, 0xda, 0xf2, 0x40, 0x57, 0x11, 0x65, 0xe8, 0x65, 0xb1, 0xa9, 0xaa,
0xd0, 0x24, 0xdf, 0x82, 0x16, 0xce, 0xd0, 0x82, 0xf0, 0x8f, 0x70, 0xae, 0xc0, 0x41, 0x45, 0x63,
0x6a, 0x2f, 0xe3, 0x0c, 0xf6, 0x9a, 0xf6, 0xeb, 0xfc, 0xd9, 0xfc, 0x8a, 0xff, 0x34, 0x60, 0xed,
0xd9, 0xd8, 0x76, 0xfe, 0x45, 0x0b, 0x64, 0xce, 0xac, 0xe5, 0x9d, 0x59, 0x4a, 0xef, 0xa5, 0x8f,
0x4b, 0xef, 0x87, 0x80, 0xf2, 0xcf, 0x4a, 0x67, 0x23, 0x15, 0x20, 0xc6, 0x99, 0x02, 0x64, 0xff,
0x0f, 0x03, 0x5a, 0x22, 0x8d, 0x0f, 0x09, 0x3b, 0xf6, 0x1c, 0x82, 0xee, 0xca, 0x56, 0x2e, 0x33,
0x7f, 0xb3, 0xfc, 0xa6, 0xdc, 0x97, 0x86, 0x59, 0xb4, 0x7b, 0x32, 0x8a, 0xcf, 0xa1, 0xcf, 0xa1,
0xae, 0x3e, 0x07, 0x4a, 0xb7, 0x8b, 0x1f, 0x09, 0xe6, 0xda, 0x54, 0x19, 0xc1, 0x73, 0xe8, 0x3e,
0x34, 0xd3, 0x0f, 0x0f, 0x74, 0x69, 0x5a, 0x7e, 0x5e, 0x40, 0xa5, 0xfa, 0xfd, 0x9f, 0x0c, 0xd8,
0x28, 0x0e, 0xec, 0xfa, 0x59, 0xdf, 0xc3, 0xb9, 0x8a, 0x69, 0x1e, 0xfd, 0xbf, 0x20, 0x66, 0xf6,
0x77, 0x84, 0xb9, 0x7b, 0x3a, 0x30, 0x71, 0x80, 0x60, 0x31, 0x0f, 0x1b, 0x6a, 0x06, 0xed, 0xd9,
0xdc, 0x1e, 0xd3, 0x37, 0x9a, 0x45, 0x1f, 0x96, 0xf3, 0x03, 0x37, 0xaa, 0x78, 0x85, 0xf9, 0xdf,
0x29, 0x4d, 0xe5, 0xf9, 0x17, 0xcf, 0xa1, 0x87, 0x00, 0xd9, 0xbc, 0x8d, 0xb6, 0xca, 0xa6, 0x2e,
0x0e, 0xe2, 0x66, 0xe5, 0x78, 0x8c, 0xe7, 0xd0, 0x4b, 0xe8, 0x14, 0x27, 0x6c, 0x84, 0x0b, 0xc8,
0xca, 0x69, 0xdd, 0xdc, 0x39, 0x11, 0x93, 0x5a, 0xe1, 0x57, 0x03, 0x56, 0x0e, 0x55, 0x1e, 0xea,
0xf7, 0x0f, 0xa0, 0xa1, 0x07, 0x63, 0x74, 0xb1, 0x4c, 0x3a, 0x3f, 0x9f, 0x9b, 0x97, 0x66, 0x9c,
0xa6, 0x16, 0x78, 0x0c, 0xcd, 0x74, 0x52, 0x2d, 0x05, 0x4b, 0x79, 0x64, 0x36, 0xb7, 0x66, 0x1d,
0xa7, 0x64, 0x7f, 0x37, 0x60, 0x45, 0x27, 0xb7, 0x26, 0xfb, 0x12, 0xce, 0x57, 0xcf, 0x60, 0x95,
0x6e, 0xbb, 0x5e, 0x26, 0x7c, 0xc2, 0xf0, 0x26, 0xe9, 0xd7, 0x93, 0x09, 0xaa, 0xec, 0xbd, 0xa9,
0x69, 0xcd, 0xbc, 0x3c, 0xf3, 0x3c, 0xa5, 0xff, 0x02, 0x3a, 0xcf, 0xec, 0x89, 0x4f, 0x82, 0x34,
0x8d, 0x7b, 0xb0, 0x94, 0xf4, 0x7e, 0x64, 0x16, 0xaf, 0xe7, 0x67, 0x11, 0x73, 0xb3, 0xf2, 0x2c,
0x15, 0x3b, 0x82, 0xe5, 0x03, 0x51, 0xa8, 0xb4, 0xd0, 0x6f, 0xc5, 0x07, 0x5c, 0x45, 0xcb, 0x42,
0x57, 0x4b, 0x21, 0x31, 0xbb, 0xad, 0xcd, 0x48, 0xdc, 0xdf, 0x84, 0xfd, 0x47, 0xc4, 0x79, 0x4b,
0xe3, 0xf4, 0x09, 0x16, 0xb4, 0x72, 0x5d, 0x03, 0x5d, 0x2e, 0xd7, 0xc5, 0x52, 0x4f, 0x33, 0xb7,
0x67, 0x03, 0x52, 0xb3, 0x3f, 0x05, 0xc8, 0x6a, 0x66, 0xc9, 0xf2, 0x53, 0x3d, 0xa2, 0x64, 0xf9,
0xe9, 0x62, 0x8b, 0xe7, 0x5e, 0x2f, 0xc9, 0x7f, 0x77, 0x6e, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff,
0x51, 0x5f, 0x0f, 0xde, 0xeb, 0x11, 0x00, 0x00,
}

View file

@ -28,6 +28,10 @@ var (
envs: []string{"RECOMMENDATION_SERVICE_ADDR"},
f: testRecommendationService,
},
"paymentservice": {
envs: []string{"PAYMENT_SERVICE_ADDR"},
f: testPaymentService,
},
}
)
@ -44,6 +48,7 @@ func main() {
log.Fatalf("environment variable %q not set", e)
}
}
log.Printf("smoke test %q", os.Args[1])
if err := t.f(); err != nil {
panic(err)
}
@ -70,7 +75,7 @@ func testProductCatalogService() error {
}
log.Println("--- rpc GetProduct()")
getResp, err := cl.GetProduct(context.TODO(), &pb.GetProductRequest{Id: 1})
getResp, err := cl.GetProduct(context.TODO(), &pb.GetProductRequest{Id: "1"})
if err != nil {
return err
}
@ -152,3 +157,33 @@ func testRecommendationService() error {
log.Printf("--> ids: %v", resp.GetProductIds())
return nil
}
func testPaymentService() error {
addr := os.Getenv("RECOMMENDATION_SERVICE_ADDR")
conn, err := grpc.Dial(addr, grpc.WithInsecure())
if err != nil {
return err
}
defer conn.Close()
cl := pb.NewPaymentServiceClient(conn)
log.Println("--- rpc Charge()")
resp, err := cl.Charge(context.TODO(), &pb.ChargeRequest{
Amount: &pb.Money{
CurrencyCode: "USD",
Amount: &pb.MoneyAmount{
Decimal: 10,
Fractional: 55},
},
CreditCard: &pb.CreditCardInfo{
CreditCardNumber: "9999-9999-9999-9999",
CreditCardCvv: 612,
CreditCardExpirationYear: 2022,
CreditCardExpirationMonth: 10},
})
if err != nil {
return nil
}
log.Printf("--> resp: %+v", resp)
return nil
}