github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/protocol/chat1/chat_ui.go (about)

     1  // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler)
     2  //   Input file: avdl/chat1/chat_ui.avdl
     3  
     4  package chat1
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  	gregor1 "github.com/keybase/client/go/protocol/gregor1"
    10  	keybase1 "github.com/keybase/client/go/protocol/keybase1"
    11  	stellar1 "github.com/keybase/client/go/protocol/stellar1"
    12  	"github.com/keybase/go-framed-msgpack-rpc/rpc"
    13  	context "golang.org/x/net/context"
    14  	"time"
    15  )
    16  
    17  type UIPagination struct {
    18  	Next     string `codec:"next" json:"next"`
    19  	Previous string `codec:"previous" json:"previous"`
    20  	Num      int    `codec:"num" json:"num"`
    21  	Last     bool   `codec:"last" json:"last"`
    22  }
    23  
    24  func (o UIPagination) DeepCopy() UIPagination {
    25  	return UIPagination{
    26  		Next:     o.Next,
    27  		Previous: o.Previous,
    28  		Num:      o.Num,
    29  		Last:     o.Last,
    30  	}
    31  }
    32  
    33  type UIInboxSmallTeamRow struct {
    34  	ConvID            ConvIDStr         `codec:"convID" json:"convID"`
    35  	Name              string            `codec:"name" json:"name"`
    36  	Time              gregor1.Time      `codec:"time" json:"time"`
    37  	Snippet           *string           `codec:"snippet,omitempty" json:"snippet,omitempty"`
    38  	SnippetDecoration SnippetDecoration `codec:"snippetDecoration" json:"snippetDecoration"`
    39  	Draft             *string           `codec:"draft,omitempty" json:"draft,omitempty"`
    40  	IsMuted           bool              `codec:"isMuted" json:"isMuted"`
    41  	IsTeam            bool              `codec:"isTeam" json:"isTeam"`
    42  }
    43  
    44  func (o UIInboxSmallTeamRow) DeepCopy() UIInboxSmallTeamRow {
    45  	return UIInboxSmallTeamRow{
    46  		ConvID: o.ConvID.DeepCopy(),
    47  		Name:   o.Name,
    48  		Time:   o.Time.DeepCopy(),
    49  		Snippet: (func(x *string) *string {
    50  			if x == nil {
    51  				return nil
    52  			}
    53  			tmp := (*x)
    54  			return &tmp
    55  		})(o.Snippet),
    56  		SnippetDecoration: o.SnippetDecoration.DeepCopy(),
    57  		Draft: (func(x *string) *string {
    58  			if x == nil {
    59  				return nil
    60  			}
    61  			tmp := (*x)
    62  			return &tmp
    63  		})(o.Draft),
    64  		IsMuted: o.IsMuted,
    65  		IsTeam:  o.IsTeam,
    66  	}
    67  }
    68  
    69  type UIInboxBigTeamRowTyp int
    70  
    71  const (
    72  	UIInboxBigTeamRowTyp_LABEL   UIInboxBigTeamRowTyp = 1
    73  	UIInboxBigTeamRowTyp_CHANNEL UIInboxBigTeamRowTyp = 2
    74  )
    75  
    76  func (o UIInboxBigTeamRowTyp) DeepCopy() UIInboxBigTeamRowTyp { return o }
    77  
    78  var UIInboxBigTeamRowTypMap = map[string]UIInboxBigTeamRowTyp{
    79  	"LABEL":   1,
    80  	"CHANNEL": 2,
    81  }
    82  
    83  var UIInboxBigTeamRowTypRevMap = map[UIInboxBigTeamRowTyp]string{
    84  	1: "LABEL",
    85  	2: "CHANNEL",
    86  }
    87  
    88  func (e UIInboxBigTeamRowTyp) String() string {
    89  	if v, ok := UIInboxBigTeamRowTypRevMap[e]; ok {
    90  		return v
    91  	}
    92  	return fmt.Sprintf("%v", int(e))
    93  }
    94  
    95  type UIInboxBigTeamChannelRow struct {
    96  	ConvID      ConvIDStr `codec:"convID" json:"convID"`
    97  	Teamname    string    `codec:"teamname" json:"teamname"`
    98  	Channelname string    `codec:"channelname" json:"channelname"`
    99  	Draft       *string   `codec:"draft,omitempty" json:"draft,omitempty"`
   100  	IsMuted     bool      `codec:"isMuted" json:"isMuted"`
   101  }
   102  
   103  func (o UIInboxBigTeamChannelRow) DeepCopy() UIInboxBigTeamChannelRow {
   104  	return UIInboxBigTeamChannelRow{
   105  		ConvID:      o.ConvID.DeepCopy(),
   106  		Teamname:    o.Teamname,
   107  		Channelname: o.Channelname,
   108  		Draft: (func(x *string) *string {
   109  			if x == nil {
   110  				return nil
   111  			}
   112  			tmp := (*x)
   113  			return &tmp
   114  		})(o.Draft),
   115  		IsMuted: o.IsMuted,
   116  	}
   117  }
   118  
   119  type UIInboxBigTeamLabelRow struct {
   120  	Name string   `codec:"name" json:"name"`
   121  	Id   TLFIDStr `codec:"id" json:"id"`
   122  }
   123  
   124  func (o UIInboxBigTeamLabelRow) DeepCopy() UIInboxBigTeamLabelRow {
   125  	return UIInboxBigTeamLabelRow{
   126  		Name: o.Name,
   127  		Id:   o.Id.DeepCopy(),
   128  	}
   129  }
   130  
   131  type UIInboxBigTeamRow struct {
   132  	State__   UIInboxBigTeamRowTyp      `codec:"state" json:"state"`
   133  	Label__   *UIInboxBigTeamLabelRow   `codec:"label,omitempty" json:"label,omitempty"`
   134  	Channel__ *UIInboxBigTeamChannelRow `codec:"channel,omitempty" json:"channel,omitempty"`
   135  }
   136  
   137  func (o *UIInboxBigTeamRow) State() (ret UIInboxBigTeamRowTyp, err error) {
   138  	switch o.State__ {
   139  	case UIInboxBigTeamRowTyp_LABEL:
   140  		if o.Label__ == nil {
   141  			err = errors.New("unexpected nil value for Label__")
   142  			return ret, err
   143  		}
   144  	case UIInboxBigTeamRowTyp_CHANNEL:
   145  		if o.Channel__ == nil {
   146  			err = errors.New("unexpected nil value for Channel__")
   147  			return ret, err
   148  		}
   149  	}
   150  	return o.State__, nil
   151  }
   152  
   153  func (o UIInboxBigTeamRow) Label() (res UIInboxBigTeamLabelRow) {
   154  	if o.State__ != UIInboxBigTeamRowTyp_LABEL {
   155  		panic("wrong case accessed")
   156  	}
   157  	if o.Label__ == nil {
   158  		return
   159  	}
   160  	return *o.Label__
   161  }
   162  
   163  func (o UIInboxBigTeamRow) Channel() (res UIInboxBigTeamChannelRow) {
   164  	if o.State__ != UIInboxBigTeamRowTyp_CHANNEL {
   165  		panic("wrong case accessed")
   166  	}
   167  	if o.Channel__ == nil {
   168  		return
   169  	}
   170  	return *o.Channel__
   171  }
   172  
   173  func NewUIInboxBigTeamRowWithLabel(v UIInboxBigTeamLabelRow) UIInboxBigTeamRow {
   174  	return UIInboxBigTeamRow{
   175  		State__: UIInboxBigTeamRowTyp_LABEL,
   176  		Label__: &v,
   177  	}
   178  }
   179  
   180  func NewUIInboxBigTeamRowWithChannel(v UIInboxBigTeamChannelRow) UIInboxBigTeamRow {
   181  	return UIInboxBigTeamRow{
   182  		State__:   UIInboxBigTeamRowTyp_CHANNEL,
   183  		Channel__: &v,
   184  	}
   185  }
   186  
   187  func (o UIInboxBigTeamRow) DeepCopy() UIInboxBigTeamRow {
   188  	return UIInboxBigTeamRow{
   189  		State__: o.State__.DeepCopy(),
   190  		Label__: (func(x *UIInboxBigTeamLabelRow) *UIInboxBigTeamLabelRow {
   191  			if x == nil {
   192  				return nil
   193  			}
   194  			tmp := (*x).DeepCopy()
   195  			return &tmp
   196  		})(o.Label__),
   197  		Channel__: (func(x *UIInboxBigTeamChannelRow) *UIInboxBigTeamChannelRow {
   198  			if x == nil {
   199  				return nil
   200  			}
   201  			tmp := (*x).DeepCopy()
   202  			return &tmp
   203  		})(o.Channel__),
   204  	}
   205  }
   206  
   207  type UIInboxReselectInfo struct {
   208  	OldConvID ConvIDStr  `codec:"oldConvID" json:"oldConvID"`
   209  	NewConvID *ConvIDStr `codec:"newConvID,omitempty" json:"newConvID,omitempty"`
   210  }
   211  
   212  func (o UIInboxReselectInfo) DeepCopy() UIInboxReselectInfo {
   213  	return UIInboxReselectInfo{
   214  		OldConvID: o.OldConvID.DeepCopy(),
   215  		NewConvID: (func(x *ConvIDStr) *ConvIDStr {
   216  			if x == nil {
   217  				return nil
   218  			}
   219  			tmp := (*x).DeepCopy()
   220  			return &tmp
   221  		})(o.NewConvID),
   222  	}
   223  }
   224  
   225  type UIInboxLayout struct {
   226  	TotalSmallTeams int                   `codec:"totalSmallTeams" json:"totalSmallTeams"`
   227  	SmallTeams      []UIInboxSmallTeamRow `codec:"smallTeams" json:"smallTeams"`
   228  	BigTeams        []UIInboxBigTeamRow   `codec:"bigTeams" json:"bigTeams"`
   229  	ReselectInfo    *UIInboxReselectInfo  `codec:"reselectInfo,omitempty" json:"reselectInfo,omitempty"`
   230  	WidgetList      []UIInboxSmallTeamRow `codec:"widgetList" json:"widgetList"`
   231  }
   232  
   233  func (o UIInboxLayout) DeepCopy() UIInboxLayout {
   234  	return UIInboxLayout{
   235  		TotalSmallTeams: o.TotalSmallTeams,
   236  		SmallTeams: (func(x []UIInboxSmallTeamRow) []UIInboxSmallTeamRow {
   237  			if x == nil {
   238  				return nil
   239  			}
   240  			ret := make([]UIInboxSmallTeamRow, len(x))
   241  			for i, v := range x {
   242  				vCopy := v.DeepCopy()
   243  				ret[i] = vCopy
   244  			}
   245  			return ret
   246  		})(o.SmallTeams),
   247  		BigTeams: (func(x []UIInboxBigTeamRow) []UIInboxBigTeamRow {
   248  			if x == nil {
   249  				return nil
   250  			}
   251  			ret := make([]UIInboxBigTeamRow, len(x))
   252  			for i, v := range x {
   253  				vCopy := v.DeepCopy()
   254  				ret[i] = vCopy
   255  			}
   256  			return ret
   257  		})(o.BigTeams),
   258  		ReselectInfo: (func(x *UIInboxReselectInfo) *UIInboxReselectInfo {
   259  			if x == nil {
   260  				return nil
   261  			}
   262  			tmp := (*x).DeepCopy()
   263  			return &tmp
   264  		})(o.ReselectInfo),
   265  		WidgetList: (func(x []UIInboxSmallTeamRow) []UIInboxSmallTeamRow {
   266  			if x == nil {
   267  				return nil
   268  			}
   269  			ret := make([]UIInboxSmallTeamRow, len(x))
   270  			for i, v := range x {
   271  				vCopy := v.DeepCopy()
   272  				ret[i] = vCopy
   273  			}
   274  			return ret
   275  		})(o.WidgetList),
   276  	}
   277  }
   278  
   279  type UnverifiedInboxUIItemMetadata struct {
   280  	ChannelName       string            `codec:"channelName" json:"channelName"`
   281  	Headline          string            `codec:"headline" json:"headline"`
   282  	HeadlineDecorated string            `codec:"headlineDecorated" json:"headlineDecorated"`
   283  	Snippet           string            `codec:"snippet" json:"snippet"`
   284  	SnippetDecoration SnippetDecoration `codec:"snippetDecoration" json:"snippetDecoration"`
   285  	WriterNames       []string          `codec:"writerNames" json:"writerNames"`
   286  	ResetParticipants []string          `codec:"resetParticipants" json:"resetParticipants"`
   287  }
   288  
   289  func (o UnverifiedInboxUIItemMetadata) DeepCopy() UnverifiedInboxUIItemMetadata {
   290  	return UnverifiedInboxUIItemMetadata{
   291  		ChannelName:       o.ChannelName,
   292  		Headline:          o.Headline,
   293  		HeadlineDecorated: o.HeadlineDecorated,
   294  		Snippet:           o.Snippet,
   295  		SnippetDecoration: o.SnippetDecoration.DeepCopy(),
   296  		WriterNames: (func(x []string) []string {
   297  			if x == nil {
   298  				return nil
   299  			}
   300  			ret := make([]string, len(x))
   301  			for i, v := range x {
   302  				vCopy := v
   303  				ret[i] = vCopy
   304  			}
   305  			return ret
   306  		})(o.WriterNames),
   307  		ResetParticipants: (func(x []string) []string {
   308  			if x == nil {
   309  				return nil
   310  			}
   311  			ret := make([]string, len(x))
   312  			for i, v := range x {
   313  				vCopy := v
   314  				ret[i] = vCopy
   315  			}
   316  			return ret
   317  		})(o.ResetParticipants),
   318  	}
   319  }
   320  
   321  type UnverifiedInboxUIItem struct {
   322  	ConvID          ConvIDStr                      `codec:"convID" json:"convID"`
   323  	TlfID           TLFIDStr                       `codec:"tlfID" json:"tlfID"`
   324  	TopicType       TopicType                      `codec:"topicType" json:"topicType"`
   325  	IsPublic        bool                           `codec:"isPublic" json:"isPublic"`
   326  	IsDefaultConv   bool                           `codec:"isDefaultConv" json:"isDefaultConv"`
   327  	Name            string                         `codec:"name" json:"name"`
   328  	Visibility      keybase1.TLFVisibility         `codec:"visibility" json:"visibility"`
   329  	Status          ConversationStatus             `codec:"status" json:"status"`
   330  	MembersType     ConversationMembersType        `codec:"membersType" json:"membersType"`
   331  	MemberStatus    ConversationMemberStatus       `codec:"memberStatus" json:"memberStatus"`
   332  	TeamType        TeamType                       `codec:"teamType" json:"teamType"`
   333  	Notifications   *ConversationNotificationInfo  `codec:"notifications,omitempty" json:"notifications,omitempty"`
   334  	Time            gregor1.Time                   `codec:"time" json:"time"`
   335  	Version         ConversationVers               `codec:"version" json:"version"`
   336  	LocalVersion    LocalConversationVers          `codec:"localVersion" json:"localVersion"`
   337  	ConvRetention   *RetentionPolicy               `codec:"convRetention,omitempty" json:"convRetention,omitempty"`
   338  	TeamRetention   *RetentionPolicy               `codec:"teamRetention,omitempty" json:"teamRetention,omitempty"`
   339  	MaxMsgID        MessageID                      `codec:"maxMsgID" json:"maxMsgID"`
   340  	MaxVisibleMsgID MessageID                      `codec:"maxVisibleMsgID" json:"maxVisibleMsgID"`
   341  	ReadMsgID       MessageID                      `codec:"readMsgID" json:"readMsgID"`
   342  	LocalMetadata   *UnverifiedInboxUIItemMetadata `codec:"localMetadata,omitempty" json:"localMetadata,omitempty"`
   343  	Draft           *string                        `codec:"draft,omitempty" json:"draft,omitempty"`
   344  	FinalizeInfo    *ConversationFinalizeInfo      `codec:"finalizeInfo,omitempty" json:"finalizeInfo,omitempty"`
   345  	Supersedes      []ConversationMetadata         `codec:"supersedes" json:"supersedes"`
   346  	SupersededBy    []ConversationMetadata         `codec:"supersededBy" json:"supersededBy"`
   347  	Commands        ConversationCommandGroups      `codec:"commands" json:"commands"`
   348  }
   349  
   350  func (o UnverifiedInboxUIItem) DeepCopy() UnverifiedInboxUIItem {
   351  	return UnverifiedInboxUIItem{
   352  		ConvID:        o.ConvID.DeepCopy(),
   353  		TlfID:         o.TlfID.DeepCopy(),
   354  		TopicType:     o.TopicType.DeepCopy(),
   355  		IsPublic:      o.IsPublic,
   356  		IsDefaultConv: o.IsDefaultConv,
   357  		Name:          o.Name,
   358  		Visibility:    o.Visibility.DeepCopy(),
   359  		Status:        o.Status.DeepCopy(),
   360  		MembersType:   o.MembersType.DeepCopy(),
   361  		MemberStatus:  o.MemberStatus.DeepCopy(),
   362  		TeamType:      o.TeamType.DeepCopy(),
   363  		Notifications: (func(x *ConversationNotificationInfo) *ConversationNotificationInfo {
   364  			if x == nil {
   365  				return nil
   366  			}
   367  			tmp := (*x).DeepCopy()
   368  			return &tmp
   369  		})(o.Notifications),
   370  		Time:         o.Time.DeepCopy(),
   371  		Version:      o.Version.DeepCopy(),
   372  		LocalVersion: o.LocalVersion.DeepCopy(),
   373  		ConvRetention: (func(x *RetentionPolicy) *RetentionPolicy {
   374  			if x == nil {
   375  				return nil
   376  			}
   377  			tmp := (*x).DeepCopy()
   378  			return &tmp
   379  		})(o.ConvRetention),
   380  		TeamRetention: (func(x *RetentionPolicy) *RetentionPolicy {
   381  			if x == nil {
   382  				return nil
   383  			}
   384  			tmp := (*x).DeepCopy()
   385  			return &tmp
   386  		})(o.TeamRetention),
   387  		MaxMsgID:        o.MaxMsgID.DeepCopy(),
   388  		MaxVisibleMsgID: o.MaxVisibleMsgID.DeepCopy(),
   389  		ReadMsgID:       o.ReadMsgID.DeepCopy(),
   390  		LocalMetadata: (func(x *UnverifiedInboxUIItemMetadata) *UnverifiedInboxUIItemMetadata {
   391  			if x == nil {
   392  				return nil
   393  			}
   394  			tmp := (*x).DeepCopy()
   395  			return &tmp
   396  		})(o.LocalMetadata),
   397  		Draft: (func(x *string) *string {
   398  			if x == nil {
   399  				return nil
   400  			}
   401  			tmp := (*x)
   402  			return &tmp
   403  		})(o.Draft),
   404  		FinalizeInfo: (func(x *ConversationFinalizeInfo) *ConversationFinalizeInfo {
   405  			if x == nil {
   406  				return nil
   407  			}
   408  			tmp := (*x).DeepCopy()
   409  			return &tmp
   410  		})(o.FinalizeInfo),
   411  		Supersedes: (func(x []ConversationMetadata) []ConversationMetadata {
   412  			if x == nil {
   413  				return nil
   414  			}
   415  			ret := make([]ConversationMetadata, len(x))
   416  			for i, v := range x {
   417  				vCopy := v.DeepCopy()
   418  				ret[i] = vCopy
   419  			}
   420  			return ret
   421  		})(o.Supersedes),
   422  		SupersededBy: (func(x []ConversationMetadata) []ConversationMetadata {
   423  			if x == nil {
   424  				return nil
   425  			}
   426  			ret := make([]ConversationMetadata, len(x))
   427  			for i, v := range x {
   428  				vCopy := v.DeepCopy()
   429  				ret[i] = vCopy
   430  			}
   431  			return ret
   432  		})(o.SupersededBy),
   433  		Commands: o.Commands.DeepCopy(),
   434  	}
   435  }
   436  
   437  type UnverifiedInboxUIItems struct {
   438  	Items   []UnverifiedInboxUIItem `codec:"items" json:"items"`
   439  	Offline bool                    `codec:"offline" json:"offline"`
   440  }
   441  
   442  func (o UnverifiedInboxUIItems) DeepCopy() UnverifiedInboxUIItems {
   443  	return UnverifiedInboxUIItems{
   444  		Items: (func(x []UnverifiedInboxUIItem) []UnverifiedInboxUIItem {
   445  			if x == nil {
   446  				return nil
   447  			}
   448  			ret := make([]UnverifiedInboxUIItem, len(x))
   449  			for i, v := range x {
   450  				vCopy := v.DeepCopy()
   451  				ret[i] = vCopy
   452  			}
   453  			return ret
   454  		})(o.Items),
   455  		Offline: o.Offline,
   456  	}
   457  }
   458  
   459  type UIParticipantType int
   460  
   461  const (
   462  	UIParticipantType_NONE    UIParticipantType = 0
   463  	UIParticipantType_USER    UIParticipantType = 1
   464  	UIParticipantType_PHONENO UIParticipantType = 2
   465  	UIParticipantType_EMAIL   UIParticipantType = 3
   466  )
   467  
   468  func (o UIParticipantType) DeepCopy() UIParticipantType { return o }
   469  
   470  var UIParticipantTypeMap = map[string]UIParticipantType{
   471  	"NONE":    0,
   472  	"USER":    1,
   473  	"PHONENO": 2,
   474  	"EMAIL":   3,
   475  }
   476  
   477  var UIParticipantTypeRevMap = map[UIParticipantType]string{
   478  	0: "NONE",
   479  	1: "USER",
   480  	2: "PHONENO",
   481  	3: "EMAIL",
   482  }
   483  
   484  func (e UIParticipantType) String() string {
   485  	if v, ok := UIParticipantTypeRevMap[e]; ok {
   486  		return v
   487  	}
   488  	return fmt.Sprintf("%v", int(e))
   489  }
   490  
   491  type UIParticipant struct {
   492  	Type        UIParticipantType `codec:"type" json:"type"`
   493  	Assertion   string            `codec:"assertion" json:"assertion"`
   494  	InConvName  bool              `codec:"inConvName" json:"inConvName"`
   495  	FullName    *string           `codec:"fullName,omitempty" json:"fullName,omitempty"`
   496  	ContactName *string           `codec:"contactName,omitempty" json:"contactName,omitempty"`
   497  }
   498  
   499  func (o UIParticipant) DeepCopy() UIParticipant {
   500  	return UIParticipant{
   501  		Type:       o.Type.DeepCopy(),
   502  		Assertion:  o.Assertion,
   503  		InConvName: o.InConvName,
   504  		FullName: (func(x *string) *string {
   505  			if x == nil {
   506  				return nil
   507  			}
   508  			tmp := (*x)
   509  			return &tmp
   510  		})(o.FullName),
   511  		ContactName: (func(x *string) *string {
   512  			if x == nil {
   513  				return nil
   514  			}
   515  			tmp := (*x)
   516  			return &tmp
   517  		})(o.ContactName),
   518  	}
   519  }
   520  
   521  type UIPinnedMessage struct {
   522  	Message        UIMessage `codec:"message" json:"message"`
   523  	PinnerUsername string    `codec:"pinnerUsername" json:"pinnerUsername"`
   524  }
   525  
   526  func (o UIPinnedMessage) DeepCopy() UIPinnedMessage {
   527  	return UIPinnedMessage{
   528  		Message:        o.Message.DeepCopy(),
   529  		PinnerUsername: o.PinnerUsername,
   530  	}
   531  }
   532  
   533  type InboxUIItem struct {
   534  	ConvID            ConvIDStr                     `codec:"convID" json:"convID"`
   535  	TlfID             TLFIDStr                      `codec:"tlfID" json:"tlfID"`
   536  	TopicType         TopicType                     `codec:"topicType" json:"topicType"`
   537  	IsPublic          bool                          `codec:"isPublic" json:"isPublic"`
   538  	IsEmpty           bool                          `codec:"isEmpty" json:"isEmpty"`
   539  	IsDefaultConv     bool                          `codec:"isDefaultConv" json:"isDefaultConv"`
   540  	Name              string                        `codec:"name" json:"name"`
   541  	Snippet           string                        `codec:"snippet" json:"snippet"`
   542  	SnippetDecorated  string                        `codec:"snippetDecorated" json:"snippetDecorated"`
   543  	SnippetDecoration SnippetDecoration             `codec:"snippetDecoration" json:"snippetDecoration"`
   544  	Channel           string                        `codec:"channel" json:"channel"`
   545  	Headline          string                        `codec:"headline" json:"headline"`
   546  	HeadlineDecorated string                        `codec:"headlineDecorated" json:"headlineDecorated"`
   547  	Draft             *string                       `codec:"draft,omitempty" json:"draft,omitempty"`
   548  	Visibility        keybase1.TLFVisibility        `codec:"visibility" json:"visibility"`
   549  	Participants      []UIParticipant               `codec:"participants" json:"participants"`
   550  	ResetParticipants []string                      `codec:"resetParticipants" json:"resetParticipants"`
   551  	Status            ConversationStatus            `codec:"status" json:"status"`
   552  	MembersType       ConversationMembersType       `codec:"membersType" json:"membersType"`
   553  	MemberStatus      ConversationMemberStatus      `codec:"memberStatus" json:"memberStatus"`
   554  	TeamType          TeamType                      `codec:"teamType" json:"teamType"`
   555  	Time              gregor1.Time                  `codec:"time" json:"time"`
   556  	Notifications     *ConversationNotificationInfo `codec:"notifications,omitempty" json:"notifications,omitempty"`
   557  	CreatorInfo       *ConversationCreatorInfoLocal `codec:"creatorInfo,omitempty" json:"creatorInfo,omitempty"`
   558  	Version           ConversationVers              `codec:"version" json:"version"`
   559  	LocalVersion      LocalConversationVers         `codec:"localVersion" json:"localVersion"`
   560  	MaxMsgID          MessageID                     `codec:"maxMsgID" json:"maxMsgID"`
   561  	MaxVisibleMsgID   MessageID                     `codec:"maxVisibleMsgID" json:"maxVisibleMsgID"`
   562  	ReadMsgID         MessageID                     `codec:"readMsgID" json:"readMsgID"`
   563  	ConvRetention     *RetentionPolicy              `codec:"convRetention,omitempty" json:"convRetention,omitempty"`
   564  	TeamRetention     *RetentionPolicy              `codec:"teamRetention,omitempty" json:"teamRetention,omitempty"`
   565  	ConvSettings      *ConversationSettingsLocal    `codec:"convSettings,omitempty" json:"convSettings,omitempty"`
   566  	FinalizeInfo      *ConversationFinalizeInfo     `codec:"finalizeInfo,omitempty" json:"finalizeInfo,omitempty"`
   567  	Supersedes        []ConversationMetadata        `codec:"supersedes" json:"supersedes"`
   568  	SupersededBy      []ConversationMetadata        `codec:"supersededBy" json:"supersededBy"`
   569  	Commands          ConversationCommandGroups     `codec:"commands" json:"commands"`
   570  	BotCommands       ConversationCommandGroups     `codec:"botCommands" json:"botCommands"`
   571  	BotAliases        map[string]string             `codec:"botAliases" json:"botAliases"`
   572  	PinnedMsg         *UIPinnedMessage              `codec:"pinnedMsg,omitempty" json:"pinnedMsg,omitempty"`
   573  }
   574  
   575  func (o InboxUIItem) DeepCopy() InboxUIItem {
   576  	return InboxUIItem{
   577  		ConvID:            o.ConvID.DeepCopy(),
   578  		TlfID:             o.TlfID.DeepCopy(),
   579  		TopicType:         o.TopicType.DeepCopy(),
   580  		IsPublic:          o.IsPublic,
   581  		IsEmpty:           o.IsEmpty,
   582  		IsDefaultConv:     o.IsDefaultConv,
   583  		Name:              o.Name,
   584  		Snippet:           o.Snippet,
   585  		SnippetDecorated:  o.SnippetDecorated,
   586  		SnippetDecoration: o.SnippetDecoration.DeepCopy(),
   587  		Channel:           o.Channel,
   588  		Headline:          o.Headline,
   589  		HeadlineDecorated: o.HeadlineDecorated,
   590  		Draft: (func(x *string) *string {
   591  			if x == nil {
   592  				return nil
   593  			}
   594  			tmp := (*x)
   595  			return &tmp
   596  		})(o.Draft),
   597  		Visibility: o.Visibility.DeepCopy(),
   598  		Participants: (func(x []UIParticipant) []UIParticipant {
   599  			if x == nil {
   600  				return nil
   601  			}
   602  			ret := make([]UIParticipant, len(x))
   603  			for i, v := range x {
   604  				vCopy := v.DeepCopy()
   605  				ret[i] = vCopy
   606  			}
   607  			return ret
   608  		})(o.Participants),
   609  		ResetParticipants: (func(x []string) []string {
   610  			if x == nil {
   611  				return nil
   612  			}
   613  			ret := make([]string, len(x))
   614  			for i, v := range x {
   615  				vCopy := v
   616  				ret[i] = vCopy
   617  			}
   618  			return ret
   619  		})(o.ResetParticipants),
   620  		Status:       o.Status.DeepCopy(),
   621  		MembersType:  o.MembersType.DeepCopy(),
   622  		MemberStatus: o.MemberStatus.DeepCopy(),
   623  		TeamType:     o.TeamType.DeepCopy(),
   624  		Time:         o.Time.DeepCopy(),
   625  		Notifications: (func(x *ConversationNotificationInfo) *ConversationNotificationInfo {
   626  			if x == nil {
   627  				return nil
   628  			}
   629  			tmp := (*x).DeepCopy()
   630  			return &tmp
   631  		})(o.Notifications),
   632  		CreatorInfo: (func(x *ConversationCreatorInfoLocal) *ConversationCreatorInfoLocal {
   633  			if x == nil {
   634  				return nil
   635  			}
   636  			tmp := (*x).DeepCopy()
   637  			return &tmp
   638  		})(o.CreatorInfo),
   639  		Version:         o.Version.DeepCopy(),
   640  		LocalVersion:    o.LocalVersion.DeepCopy(),
   641  		MaxMsgID:        o.MaxMsgID.DeepCopy(),
   642  		MaxVisibleMsgID: o.MaxVisibleMsgID.DeepCopy(),
   643  		ReadMsgID:       o.ReadMsgID.DeepCopy(),
   644  		ConvRetention: (func(x *RetentionPolicy) *RetentionPolicy {
   645  			if x == nil {
   646  				return nil
   647  			}
   648  			tmp := (*x).DeepCopy()
   649  			return &tmp
   650  		})(o.ConvRetention),
   651  		TeamRetention: (func(x *RetentionPolicy) *RetentionPolicy {
   652  			if x == nil {
   653  				return nil
   654  			}
   655  			tmp := (*x).DeepCopy()
   656  			return &tmp
   657  		})(o.TeamRetention),
   658  		ConvSettings: (func(x *ConversationSettingsLocal) *ConversationSettingsLocal {
   659  			if x == nil {
   660  				return nil
   661  			}
   662  			tmp := (*x).DeepCopy()
   663  			return &tmp
   664  		})(o.ConvSettings),
   665  		FinalizeInfo: (func(x *ConversationFinalizeInfo) *ConversationFinalizeInfo {
   666  			if x == nil {
   667  				return nil
   668  			}
   669  			tmp := (*x).DeepCopy()
   670  			return &tmp
   671  		})(o.FinalizeInfo),
   672  		Supersedes: (func(x []ConversationMetadata) []ConversationMetadata {
   673  			if x == nil {
   674  				return nil
   675  			}
   676  			ret := make([]ConversationMetadata, len(x))
   677  			for i, v := range x {
   678  				vCopy := v.DeepCopy()
   679  				ret[i] = vCopy
   680  			}
   681  			return ret
   682  		})(o.Supersedes),
   683  		SupersededBy: (func(x []ConversationMetadata) []ConversationMetadata {
   684  			if x == nil {
   685  				return nil
   686  			}
   687  			ret := make([]ConversationMetadata, len(x))
   688  			for i, v := range x {
   689  				vCopy := v.DeepCopy()
   690  				ret[i] = vCopy
   691  			}
   692  			return ret
   693  		})(o.SupersededBy),
   694  		Commands:    o.Commands.DeepCopy(),
   695  		BotCommands: o.BotCommands.DeepCopy(),
   696  		BotAliases: (func(x map[string]string) map[string]string {
   697  			if x == nil {
   698  				return nil
   699  			}
   700  			ret := make(map[string]string, len(x))
   701  			for k, v := range x {
   702  				kCopy := k
   703  				vCopy := v
   704  				ret[kCopy] = vCopy
   705  			}
   706  			return ret
   707  		})(o.BotAliases),
   708  		PinnedMsg: (func(x *UIPinnedMessage) *UIPinnedMessage {
   709  			if x == nil {
   710  				return nil
   711  			}
   712  			tmp := (*x).DeepCopy()
   713  			return &tmp
   714  		})(o.PinnedMsg),
   715  	}
   716  }
   717  
   718  type InboxUIItemError struct {
   719  	Typ               ConversationErrorType   `codec:"typ" json:"typ"`
   720  	Message           string                  `codec:"message" json:"message"`
   721  	UnverifiedTLFName string                  `codec:"unverifiedTLFName" json:"unverifiedTLFName"`
   722  	RekeyInfo         *ConversationErrorRekey `codec:"rekeyInfo,omitempty" json:"rekeyInfo,omitempty"`
   723  	RemoteConv        UnverifiedInboxUIItem   `codec:"remoteConv" json:"remoteConv"`
   724  }
   725  
   726  func (o InboxUIItemError) DeepCopy() InboxUIItemError {
   727  	return InboxUIItemError{
   728  		Typ:               o.Typ.DeepCopy(),
   729  		Message:           o.Message,
   730  		UnverifiedTLFName: o.UnverifiedTLFName,
   731  		RekeyInfo: (func(x *ConversationErrorRekey) *ConversationErrorRekey {
   732  			if x == nil {
   733  				return nil
   734  			}
   735  			tmp := (*x).DeepCopy()
   736  			return &tmp
   737  		})(o.RekeyInfo),
   738  		RemoteConv: o.RemoteConv.DeepCopy(),
   739  	}
   740  }
   741  
   742  type InboxUIItems struct {
   743  	Items   []InboxUIItem `codec:"items" json:"items"`
   744  	Offline bool          `codec:"offline" json:"offline"`
   745  }
   746  
   747  func (o InboxUIItems) DeepCopy() InboxUIItems {
   748  	return InboxUIItems{
   749  		Items: (func(x []InboxUIItem) []InboxUIItem {
   750  			if x == nil {
   751  				return nil
   752  			}
   753  			ret := make([]InboxUIItem, len(x))
   754  			for i, v := range x {
   755  				vCopy := v.DeepCopy()
   756  				ret[i] = vCopy
   757  			}
   758  			return ret
   759  		})(o.Items),
   760  		Offline: o.Offline,
   761  	}
   762  }
   763  
   764  type UIChannelNameMention struct {
   765  	Name   string    `codec:"name" json:"name"`
   766  	ConvID ConvIDStr `codec:"convID" json:"convID"`
   767  }
   768  
   769  func (o UIChannelNameMention) DeepCopy() UIChannelNameMention {
   770  	return UIChannelNameMention{
   771  		Name:   o.Name,
   772  		ConvID: o.ConvID.DeepCopy(),
   773  	}
   774  }
   775  
   776  type UIAssetUrlInfo struct {
   777  	PreviewUrl          string  `codec:"previewUrl" json:"previewUrl"`
   778  	FullUrl             string  `codec:"fullUrl" json:"fullUrl"`
   779  	FullUrlCached       bool    `codec:"fullUrlCached" json:"fullUrlCached"`
   780  	MimeType            string  `codec:"mimeType" json:"mimeType"`
   781  	VideoDuration       *string `codec:"videoDuration,omitempty" json:"videoDuration,omitempty"`
   782  	InlineVideoPlayable bool    `codec:"inlineVideoPlayable" json:"inlineVideoPlayable"`
   783  }
   784  
   785  func (o UIAssetUrlInfo) DeepCopy() UIAssetUrlInfo {
   786  	return UIAssetUrlInfo{
   787  		PreviewUrl:    o.PreviewUrl,
   788  		FullUrl:       o.FullUrl,
   789  		FullUrlCached: o.FullUrlCached,
   790  		MimeType:      o.MimeType,
   791  		VideoDuration: (func(x *string) *string {
   792  			if x == nil {
   793  				return nil
   794  			}
   795  			tmp := (*x)
   796  			return &tmp
   797  		})(o.VideoDuration),
   798  		InlineVideoPlayable: o.InlineVideoPlayable,
   799  	}
   800  }
   801  
   802  type UIPaymentInfo struct {
   803  	AccountID         *stellar1.AccountID    `codec:"accountID,omitempty" json:"accountID,omitempty"`
   804  	AmountDescription string                 `codec:"amountDescription" json:"amountDescription"`
   805  	Worth             string                 `codec:"worth" json:"worth"`
   806  	WorthAtSendTime   string                 `codec:"worthAtSendTime" json:"worthAtSendTime"`
   807  	Delta             stellar1.BalanceDelta  `codec:"delta" json:"delta"`
   808  	Note              string                 `codec:"note" json:"note"`
   809  	PaymentID         stellar1.PaymentID     `codec:"paymentID" json:"paymentID"`
   810  	Status            stellar1.PaymentStatus `codec:"status" json:"status"`
   811  	StatusDescription string                 `codec:"statusDescription" json:"statusDescription"`
   812  	StatusDetail      string                 `codec:"statusDetail" json:"statusDetail"`
   813  	ShowCancel        bool                   `codec:"showCancel" json:"showCancel"`
   814  	FromUsername      string                 `codec:"fromUsername" json:"fromUsername"`
   815  	ToUsername        string                 `codec:"toUsername" json:"toUsername"`
   816  	SourceAmount      string                 `codec:"sourceAmount" json:"sourceAmount"`
   817  	SourceAsset       stellar1.Asset         `codec:"sourceAsset" json:"sourceAsset"`
   818  	IssuerDescription string                 `codec:"issuerDescription" json:"issuerDescription"`
   819  }
   820  
   821  func (o UIPaymentInfo) DeepCopy() UIPaymentInfo {
   822  	return UIPaymentInfo{
   823  		AccountID: (func(x *stellar1.AccountID) *stellar1.AccountID {
   824  			if x == nil {
   825  				return nil
   826  			}
   827  			tmp := (*x).DeepCopy()
   828  			return &tmp
   829  		})(o.AccountID),
   830  		AmountDescription: o.AmountDescription,
   831  		Worth:             o.Worth,
   832  		WorthAtSendTime:   o.WorthAtSendTime,
   833  		Delta:             o.Delta.DeepCopy(),
   834  		Note:              o.Note,
   835  		PaymentID:         o.PaymentID.DeepCopy(),
   836  		Status:            o.Status.DeepCopy(),
   837  		StatusDescription: o.StatusDescription,
   838  		StatusDetail:      o.StatusDetail,
   839  		ShowCancel:        o.ShowCancel,
   840  		FromUsername:      o.FromUsername,
   841  		ToUsername:        o.ToUsername,
   842  		SourceAmount:      o.SourceAmount,
   843  		SourceAsset:       o.SourceAsset.DeepCopy(),
   844  		IssuerDescription: o.IssuerDescription,
   845  	}
   846  }
   847  
   848  type UIRequestInfo struct {
   849  	Amount             string                        `codec:"amount" json:"amount"`
   850  	AmountDescription  string                        `codec:"amountDescription" json:"amountDescription"`
   851  	Asset              *stellar1.Asset               `codec:"asset,omitempty" json:"asset,omitempty"`
   852  	Currency           *stellar1.OutsideCurrencyCode `codec:"currency,omitempty" json:"currency,omitempty"`
   853  	WorthAtRequestTime string                        `codec:"worthAtRequestTime" json:"worthAtRequestTime"`
   854  	Status             stellar1.RequestStatus        `codec:"status" json:"status"`
   855  }
   856  
   857  func (o UIRequestInfo) DeepCopy() UIRequestInfo {
   858  	return UIRequestInfo{
   859  		Amount:            o.Amount,
   860  		AmountDescription: o.AmountDescription,
   861  		Asset: (func(x *stellar1.Asset) *stellar1.Asset {
   862  			if x == nil {
   863  				return nil
   864  			}
   865  			tmp := (*x).DeepCopy()
   866  			return &tmp
   867  		})(o.Asset),
   868  		Currency: (func(x *stellar1.OutsideCurrencyCode) *stellar1.OutsideCurrencyCode {
   869  			if x == nil {
   870  				return nil
   871  			}
   872  			tmp := (*x).DeepCopy()
   873  			return &tmp
   874  		})(o.Currency),
   875  		WorthAtRequestTime: o.WorthAtRequestTime,
   876  		Status:             o.Status.DeepCopy(),
   877  	}
   878  }
   879  
   880  type UIMessageUnfurlInfo struct {
   881  	UnfurlMessageID MessageID     `codec:"unfurlMessageID" json:"unfurlMessageID"`
   882  	Url             string        `codec:"url" json:"url"`
   883  	Unfurl          UnfurlDisplay `codec:"unfurl" json:"unfurl"`
   884  	IsCollapsed     bool          `codec:"isCollapsed" json:"isCollapsed"`
   885  }
   886  
   887  func (o UIMessageUnfurlInfo) DeepCopy() UIMessageUnfurlInfo {
   888  	return UIMessageUnfurlInfo{
   889  		UnfurlMessageID: o.UnfurlMessageID.DeepCopy(),
   890  		Url:             o.Url,
   891  		Unfurl:          o.Unfurl.DeepCopy(),
   892  		IsCollapsed:     o.IsCollapsed,
   893  	}
   894  }
   895  
   896  type UIReactionDesc struct {
   897  	Decorated string              `codec:"decorated" json:"decorated"`
   898  	Users     map[string]Reaction `codec:"users" json:"users"`
   899  }
   900  
   901  func (o UIReactionDesc) DeepCopy() UIReactionDesc {
   902  	return UIReactionDesc{
   903  		Decorated: o.Decorated,
   904  		Users: (func(x map[string]Reaction) map[string]Reaction {
   905  			if x == nil {
   906  				return nil
   907  			}
   908  			ret := make(map[string]Reaction, len(x))
   909  			for k, v := range x {
   910  				kCopy := k
   911  				vCopy := v.DeepCopy()
   912  				ret[kCopy] = vCopy
   913  			}
   914  			return ret
   915  		})(o.Users),
   916  	}
   917  }
   918  
   919  type UIReactionMap struct {
   920  	Reactions map[string]UIReactionDesc `codec:"reactions" json:"reactions"`
   921  }
   922  
   923  func (o UIReactionMap) DeepCopy() UIReactionMap {
   924  	return UIReactionMap{
   925  		Reactions: (func(x map[string]UIReactionDesc) map[string]UIReactionDesc {
   926  			if x == nil {
   927  				return nil
   928  			}
   929  			ret := make(map[string]UIReactionDesc, len(x))
   930  			for k, v := range x {
   931  				kCopy := k
   932  				vCopy := v.DeepCopy()
   933  				ret[kCopy] = vCopy
   934  			}
   935  			return ret
   936  		})(o.Reactions),
   937  	}
   938  }
   939  
   940  type UIMessageValid struct {
   941  	MessageID             MessageID              `codec:"messageID" json:"messageID"`
   942  	Ctime                 gregor1.Time           `codec:"ctime" json:"ctime"`
   943  	OutboxID              *string                `codec:"outboxID,omitempty" json:"outboxID,omitempty"`
   944  	MessageBody           MessageBody            `codec:"messageBody" json:"messageBody"`
   945  	DecoratedTextBody     *string                `codec:"decoratedTextBody,omitempty" json:"decoratedTextBody,omitempty"`
   946  	BodySummary           string                 `codec:"bodySummary" json:"bodySummary"`
   947  	SenderUsername        string                 `codec:"senderUsername" json:"senderUsername"`
   948  	SenderDeviceName      string                 `codec:"senderDeviceName" json:"senderDeviceName"`
   949  	SenderDeviceType      keybase1.DeviceTypeV2  `codec:"senderDeviceType" json:"senderDeviceType"`
   950  	SenderUID             gregor1.UID            `codec:"senderUID" json:"senderUID"`
   951  	SenderDeviceID        gregor1.DeviceID       `codec:"senderDeviceID" json:"senderDeviceID"`
   952  	Superseded            bool                   `codec:"superseded" json:"superseded"`
   953  	AssetUrlInfo          *UIAssetUrlInfo        `codec:"assetUrlInfo,omitempty" json:"assetUrlInfo,omitempty"`
   954  	SenderDeviceRevokedAt *gregor1.Time          `codec:"senderDeviceRevokedAt,omitempty" json:"senderDeviceRevokedAt,omitempty"`
   955  	AtMentions            []string               `codec:"atMentions" json:"atMentions"`
   956  	ChannelMention        ChannelMention         `codec:"channelMention" json:"channelMention"`
   957  	ChannelNameMentions   []UIChannelNameMention `codec:"channelNameMentions" json:"channelNameMentions"`
   958  	IsEphemeral           bool                   `codec:"isEphemeral" json:"isEphemeral"`
   959  	IsEphemeralExpired    bool                   `codec:"isEphemeralExpired" json:"isEphemeralExpired"`
   960  	ExplodedBy            *string                `codec:"explodedBy,omitempty" json:"explodedBy,omitempty"`
   961  	Etime                 gregor1.Time           `codec:"etime" json:"etime"`
   962  	Reactions             UIReactionMap          `codec:"reactions" json:"reactions"`
   963  	HasPairwiseMacs       bool                   `codec:"hasPairwiseMacs" json:"hasPairwiseMacs"`
   964  	PaymentInfos          []UIPaymentInfo        `codec:"paymentInfos" json:"paymentInfos"`
   965  	RequestInfo           *UIRequestInfo         `codec:"requestInfo,omitempty" json:"requestInfo,omitempty"`
   966  	Unfurls               []UIMessageUnfurlInfo  `codec:"unfurls" json:"unfurls"`
   967  	IsCollapsed           bool                   `codec:"isCollapsed" json:"isCollapsed"`
   968  	FlipGameID            *FlipGameIDStr         `codec:"flipGameID,omitempty" json:"flipGameID,omitempty"`
   969  	IsDeleteable          bool                   `codec:"isDeleteable" json:"isDeleteable"`
   970  	IsEditable            bool                   `codec:"isEditable" json:"isEditable"`
   971  	ReplyTo               *UIMessage             `codec:"replyTo,omitempty" json:"replyTo,omitempty"`
   972  	PinnedMessageID       *MessageID             `codec:"pinnedMessageID,omitempty" json:"pinnedMessageID,omitempty"`
   973  	BotUsername           string                 `codec:"botUsername" json:"botUsername"`
   974  }
   975  
   976  func (o UIMessageValid) DeepCopy() UIMessageValid {
   977  	return UIMessageValid{
   978  		MessageID: o.MessageID.DeepCopy(),
   979  		Ctime:     o.Ctime.DeepCopy(),
   980  		OutboxID: (func(x *string) *string {
   981  			if x == nil {
   982  				return nil
   983  			}
   984  			tmp := (*x)
   985  			return &tmp
   986  		})(o.OutboxID),
   987  		MessageBody: o.MessageBody.DeepCopy(),
   988  		DecoratedTextBody: (func(x *string) *string {
   989  			if x == nil {
   990  				return nil
   991  			}
   992  			tmp := (*x)
   993  			return &tmp
   994  		})(o.DecoratedTextBody),
   995  		BodySummary:      o.BodySummary,
   996  		SenderUsername:   o.SenderUsername,
   997  		SenderDeviceName: o.SenderDeviceName,
   998  		SenderDeviceType: o.SenderDeviceType.DeepCopy(),
   999  		SenderUID:        o.SenderUID.DeepCopy(),
  1000  		SenderDeviceID:   o.SenderDeviceID.DeepCopy(),
  1001  		Superseded:       o.Superseded,
  1002  		AssetUrlInfo: (func(x *UIAssetUrlInfo) *UIAssetUrlInfo {
  1003  			if x == nil {
  1004  				return nil
  1005  			}
  1006  			tmp := (*x).DeepCopy()
  1007  			return &tmp
  1008  		})(o.AssetUrlInfo),
  1009  		SenderDeviceRevokedAt: (func(x *gregor1.Time) *gregor1.Time {
  1010  			if x == nil {
  1011  				return nil
  1012  			}
  1013  			tmp := (*x).DeepCopy()
  1014  			return &tmp
  1015  		})(o.SenderDeviceRevokedAt),
  1016  		AtMentions: (func(x []string) []string {
  1017  			if x == nil {
  1018  				return nil
  1019  			}
  1020  			ret := make([]string, len(x))
  1021  			for i, v := range x {
  1022  				vCopy := v
  1023  				ret[i] = vCopy
  1024  			}
  1025  			return ret
  1026  		})(o.AtMentions),
  1027  		ChannelMention: o.ChannelMention.DeepCopy(),
  1028  		ChannelNameMentions: (func(x []UIChannelNameMention) []UIChannelNameMention {
  1029  			if x == nil {
  1030  				return nil
  1031  			}
  1032  			ret := make([]UIChannelNameMention, len(x))
  1033  			for i, v := range x {
  1034  				vCopy := v.DeepCopy()
  1035  				ret[i] = vCopy
  1036  			}
  1037  			return ret
  1038  		})(o.ChannelNameMentions),
  1039  		IsEphemeral:        o.IsEphemeral,
  1040  		IsEphemeralExpired: o.IsEphemeralExpired,
  1041  		ExplodedBy: (func(x *string) *string {
  1042  			if x == nil {
  1043  				return nil
  1044  			}
  1045  			tmp := (*x)
  1046  			return &tmp
  1047  		})(o.ExplodedBy),
  1048  		Etime:           o.Etime.DeepCopy(),
  1049  		Reactions:       o.Reactions.DeepCopy(),
  1050  		HasPairwiseMacs: o.HasPairwiseMacs,
  1051  		PaymentInfos: (func(x []UIPaymentInfo) []UIPaymentInfo {
  1052  			if x == nil {
  1053  				return nil
  1054  			}
  1055  			ret := make([]UIPaymentInfo, len(x))
  1056  			for i, v := range x {
  1057  				vCopy := v.DeepCopy()
  1058  				ret[i] = vCopy
  1059  			}
  1060  			return ret
  1061  		})(o.PaymentInfos),
  1062  		RequestInfo: (func(x *UIRequestInfo) *UIRequestInfo {
  1063  			if x == nil {
  1064  				return nil
  1065  			}
  1066  			tmp := (*x).DeepCopy()
  1067  			return &tmp
  1068  		})(o.RequestInfo),
  1069  		Unfurls: (func(x []UIMessageUnfurlInfo) []UIMessageUnfurlInfo {
  1070  			if x == nil {
  1071  				return nil
  1072  			}
  1073  			ret := make([]UIMessageUnfurlInfo, len(x))
  1074  			for i, v := range x {
  1075  				vCopy := v.DeepCopy()
  1076  				ret[i] = vCopy
  1077  			}
  1078  			return ret
  1079  		})(o.Unfurls),
  1080  		IsCollapsed: o.IsCollapsed,
  1081  		FlipGameID: (func(x *FlipGameIDStr) *FlipGameIDStr {
  1082  			if x == nil {
  1083  				return nil
  1084  			}
  1085  			tmp := (*x).DeepCopy()
  1086  			return &tmp
  1087  		})(o.FlipGameID),
  1088  		IsDeleteable: o.IsDeleteable,
  1089  		IsEditable:   o.IsEditable,
  1090  		ReplyTo: (func(x *UIMessage) *UIMessage {
  1091  			if x == nil {
  1092  				return nil
  1093  			}
  1094  			tmp := (*x).DeepCopy()
  1095  			return &tmp
  1096  		})(o.ReplyTo),
  1097  		PinnedMessageID: (func(x *MessageID) *MessageID {
  1098  			if x == nil {
  1099  				return nil
  1100  			}
  1101  			tmp := (*x).DeepCopy()
  1102  			return &tmp
  1103  		})(o.PinnedMessageID),
  1104  		BotUsername: o.BotUsername,
  1105  	}
  1106  }
  1107  
  1108  type UIMessageOutbox struct {
  1109  	State             OutboxState     `codec:"state" json:"state"`
  1110  	OutboxID          string          `codec:"outboxID" json:"outboxID"`
  1111  	MessageType       MessageType     `codec:"messageType" json:"messageType"`
  1112  	Body              string          `codec:"body" json:"body"`
  1113  	DecoratedTextBody *string         `codec:"decoratedTextBody,omitempty" json:"decoratedTextBody,omitempty"`
  1114  	Ctime             gregor1.Time    `codec:"ctime" json:"ctime"`
  1115  	Ordinal           float64         `codec:"ordinal" json:"ordinal"`
  1116  	IsEphemeral       bool            `codec:"isEphemeral" json:"isEphemeral"`
  1117  	FlipGameID        *FlipGameIDStr  `codec:"flipGameID,omitempty" json:"flipGameID,omitempty"`
  1118  	ReplyTo           *UIMessage      `codec:"replyTo,omitempty" json:"replyTo,omitempty"`
  1119  	Supersedes        MessageID       `codec:"supersedes" json:"supersedes"`
  1120  	Filename          string          `codec:"filename" json:"filename"`
  1121  	Title             string          `codec:"title" json:"title"`
  1122  	Preview           *MakePreviewRes `codec:"preview,omitempty" json:"preview,omitempty"`
  1123  }
  1124  
  1125  func (o UIMessageOutbox) DeepCopy() UIMessageOutbox {
  1126  	return UIMessageOutbox{
  1127  		State:       o.State.DeepCopy(),
  1128  		OutboxID:    o.OutboxID,
  1129  		MessageType: o.MessageType.DeepCopy(),
  1130  		Body:        o.Body,
  1131  		DecoratedTextBody: (func(x *string) *string {
  1132  			if x == nil {
  1133  				return nil
  1134  			}
  1135  			tmp := (*x)
  1136  			return &tmp
  1137  		})(o.DecoratedTextBody),
  1138  		Ctime:       o.Ctime.DeepCopy(),
  1139  		Ordinal:     o.Ordinal,
  1140  		IsEphemeral: o.IsEphemeral,
  1141  		FlipGameID: (func(x *FlipGameIDStr) *FlipGameIDStr {
  1142  			if x == nil {
  1143  				return nil
  1144  			}
  1145  			tmp := (*x).DeepCopy()
  1146  			return &tmp
  1147  		})(o.FlipGameID),
  1148  		ReplyTo: (func(x *UIMessage) *UIMessage {
  1149  			if x == nil {
  1150  				return nil
  1151  			}
  1152  			tmp := (*x).DeepCopy()
  1153  			return &tmp
  1154  		})(o.ReplyTo),
  1155  		Supersedes: o.Supersedes.DeepCopy(),
  1156  		Filename:   o.Filename,
  1157  		Title:      o.Title,
  1158  		Preview: (func(x *MakePreviewRes) *MakePreviewRes {
  1159  			if x == nil {
  1160  				return nil
  1161  			}
  1162  			tmp := (*x).DeepCopy()
  1163  			return &tmp
  1164  		})(o.Preview),
  1165  	}
  1166  }
  1167  
  1168  type UIMessageJourneycard struct {
  1169  	Ordinal        float64         `codec:"ordinal" json:"ordinal"`
  1170  	CardType       JourneycardType `codec:"cardType" json:"cardType"`
  1171  	HighlightMsgID MessageID       `codec:"highlightMsgID" json:"highlightMsgID"`
  1172  	OpenTeam       bool            `codec:"openTeam" json:"openTeam"`
  1173  }
  1174  
  1175  func (o UIMessageJourneycard) DeepCopy() UIMessageJourneycard {
  1176  	return UIMessageJourneycard{
  1177  		Ordinal:        o.Ordinal,
  1178  		CardType:       o.CardType.DeepCopy(),
  1179  		HighlightMsgID: o.HighlightMsgID.DeepCopy(),
  1180  		OpenTeam:       o.OpenTeam,
  1181  	}
  1182  }
  1183  
  1184  type MessageUnboxedState int
  1185  
  1186  const (
  1187  	MessageUnboxedState_VALID       MessageUnboxedState = 1
  1188  	MessageUnboxedState_ERROR       MessageUnboxedState = 2
  1189  	MessageUnboxedState_OUTBOX      MessageUnboxedState = 3
  1190  	MessageUnboxedState_PLACEHOLDER MessageUnboxedState = 4
  1191  	MessageUnboxedState_JOURNEYCARD MessageUnboxedState = 5
  1192  )
  1193  
  1194  func (o MessageUnboxedState) DeepCopy() MessageUnboxedState { return o }
  1195  
  1196  var MessageUnboxedStateMap = map[string]MessageUnboxedState{
  1197  	"VALID":       1,
  1198  	"ERROR":       2,
  1199  	"OUTBOX":      3,
  1200  	"PLACEHOLDER": 4,
  1201  	"JOURNEYCARD": 5,
  1202  }
  1203  
  1204  var MessageUnboxedStateRevMap = map[MessageUnboxedState]string{
  1205  	1: "VALID",
  1206  	2: "ERROR",
  1207  	3: "OUTBOX",
  1208  	4: "PLACEHOLDER",
  1209  	5: "JOURNEYCARD",
  1210  }
  1211  
  1212  func (e MessageUnboxedState) String() string {
  1213  	if v, ok := MessageUnboxedStateRevMap[e]; ok {
  1214  		return v
  1215  	}
  1216  	return fmt.Sprintf("%v", int(e))
  1217  }
  1218  
  1219  type UIMessage struct {
  1220  	State__       MessageUnboxedState        `codec:"state" json:"state"`
  1221  	Valid__       *UIMessageValid            `codec:"valid,omitempty" json:"valid,omitempty"`
  1222  	Error__       *MessageUnboxedError       `codec:"error,omitempty" json:"error,omitempty"`
  1223  	Outbox__      *UIMessageOutbox           `codec:"outbox,omitempty" json:"outbox,omitempty"`
  1224  	Placeholder__ *MessageUnboxedPlaceholder `codec:"placeholder,omitempty" json:"placeholder,omitempty"`
  1225  	Journeycard__ *UIMessageJourneycard      `codec:"journeycard,omitempty" json:"journeycard,omitempty"`
  1226  }
  1227  
  1228  func (o *UIMessage) State() (ret MessageUnboxedState, err error) {
  1229  	switch o.State__ {
  1230  	case MessageUnboxedState_VALID:
  1231  		if o.Valid__ == nil {
  1232  			err = errors.New("unexpected nil value for Valid__")
  1233  			return ret, err
  1234  		}
  1235  	case MessageUnboxedState_ERROR:
  1236  		if o.Error__ == nil {
  1237  			err = errors.New("unexpected nil value for Error__")
  1238  			return ret, err
  1239  		}
  1240  	case MessageUnboxedState_OUTBOX:
  1241  		if o.Outbox__ == nil {
  1242  			err = errors.New("unexpected nil value for Outbox__")
  1243  			return ret, err
  1244  		}
  1245  	case MessageUnboxedState_PLACEHOLDER:
  1246  		if o.Placeholder__ == nil {
  1247  			err = errors.New("unexpected nil value for Placeholder__")
  1248  			return ret, err
  1249  		}
  1250  	case MessageUnboxedState_JOURNEYCARD:
  1251  		if o.Journeycard__ == nil {
  1252  			err = errors.New("unexpected nil value for Journeycard__")
  1253  			return ret, err
  1254  		}
  1255  	}
  1256  	return o.State__, nil
  1257  }
  1258  
  1259  func (o UIMessage) Valid() (res UIMessageValid) {
  1260  	if o.State__ != MessageUnboxedState_VALID {
  1261  		panic("wrong case accessed")
  1262  	}
  1263  	if o.Valid__ == nil {
  1264  		return
  1265  	}
  1266  	return *o.Valid__
  1267  }
  1268  
  1269  func (o UIMessage) Error() (res MessageUnboxedError) {
  1270  	if o.State__ != MessageUnboxedState_ERROR {
  1271  		panic("wrong case accessed")
  1272  	}
  1273  	if o.Error__ == nil {
  1274  		return
  1275  	}
  1276  	return *o.Error__
  1277  }
  1278  
  1279  func (o UIMessage) Outbox() (res UIMessageOutbox) {
  1280  	if o.State__ != MessageUnboxedState_OUTBOX {
  1281  		panic("wrong case accessed")
  1282  	}
  1283  	if o.Outbox__ == nil {
  1284  		return
  1285  	}
  1286  	return *o.Outbox__
  1287  }
  1288  
  1289  func (o UIMessage) Placeholder() (res MessageUnboxedPlaceholder) {
  1290  	if o.State__ != MessageUnboxedState_PLACEHOLDER {
  1291  		panic("wrong case accessed")
  1292  	}
  1293  	if o.Placeholder__ == nil {
  1294  		return
  1295  	}
  1296  	return *o.Placeholder__
  1297  }
  1298  
  1299  func (o UIMessage) Journeycard() (res UIMessageJourneycard) {
  1300  	if o.State__ != MessageUnboxedState_JOURNEYCARD {
  1301  		panic("wrong case accessed")
  1302  	}
  1303  	if o.Journeycard__ == nil {
  1304  		return
  1305  	}
  1306  	return *o.Journeycard__
  1307  }
  1308  
  1309  func NewUIMessageWithValid(v UIMessageValid) UIMessage {
  1310  	return UIMessage{
  1311  		State__: MessageUnboxedState_VALID,
  1312  		Valid__: &v,
  1313  	}
  1314  }
  1315  
  1316  func NewUIMessageWithError(v MessageUnboxedError) UIMessage {
  1317  	return UIMessage{
  1318  		State__: MessageUnboxedState_ERROR,
  1319  		Error__: &v,
  1320  	}
  1321  }
  1322  
  1323  func NewUIMessageWithOutbox(v UIMessageOutbox) UIMessage {
  1324  	return UIMessage{
  1325  		State__:  MessageUnboxedState_OUTBOX,
  1326  		Outbox__: &v,
  1327  	}
  1328  }
  1329  
  1330  func NewUIMessageWithPlaceholder(v MessageUnboxedPlaceholder) UIMessage {
  1331  	return UIMessage{
  1332  		State__:       MessageUnboxedState_PLACEHOLDER,
  1333  		Placeholder__: &v,
  1334  	}
  1335  }
  1336  
  1337  func NewUIMessageWithJourneycard(v UIMessageJourneycard) UIMessage {
  1338  	return UIMessage{
  1339  		State__:       MessageUnboxedState_JOURNEYCARD,
  1340  		Journeycard__: &v,
  1341  	}
  1342  }
  1343  
  1344  func (o UIMessage) DeepCopy() UIMessage {
  1345  	return UIMessage{
  1346  		State__: o.State__.DeepCopy(),
  1347  		Valid__: (func(x *UIMessageValid) *UIMessageValid {
  1348  			if x == nil {
  1349  				return nil
  1350  			}
  1351  			tmp := (*x).DeepCopy()
  1352  			return &tmp
  1353  		})(o.Valid__),
  1354  		Error__: (func(x *MessageUnboxedError) *MessageUnboxedError {
  1355  			if x == nil {
  1356  				return nil
  1357  			}
  1358  			tmp := (*x).DeepCopy()
  1359  			return &tmp
  1360  		})(o.Error__),
  1361  		Outbox__: (func(x *UIMessageOutbox) *UIMessageOutbox {
  1362  			if x == nil {
  1363  				return nil
  1364  			}
  1365  			tmp := (*x).DeepCopy()
  1366  			return &tmp
  1367  		})(o.Outbox__),
  1368  		Placeholder__: (func(x *MessageUnboxedPlaceholder) *MessageUnboxedPlaceholder {
  1369  			if x == nil {
  1370  				return nil
  1371  			}
  1372  			tmp := (*x).DeepCopy()
  1373  			return &tmp
  1374  		})(o.Placeholder__),
  1375  		Journeycard__: (func(x *UIMessageJourneycard) *UIMessageJourneycard {
  1376  			if x == nil {
  1377  				return nil
  1378  			}
  1379  			tmp := (*x).DeepCopy()
  1380  			return &tmp
  1381  		})(o.Journeycard__),
  1382  	}
  1383  }
  1384  
  1385  type UIMessages struct {
  1386  	Messages   []UIMessage   `codec:"messages" json:"messages"`
  1387  	Pagination *UIPagination `codec:"pagination,omitempty" json:"pagination,omitempty"`
  1388  }
  1389  
  1390  func (o UIMessages) DeepCopy() UIMessages {
  1391  	return UIMessages{
  1392  		Messages: (func(x []UIMessage) []UIMessage {
  1393  			if x == nil {
  1394  				return nil
  1395  			}
  1396  			ret := make([]UIMessage, len(x))
  1397  			for i, v := range x {
  1398  				vCopy := v.DeepCopy()
  1399  				ret[i] = vCopy
  1400  			}
  1401  			return ret
  1402  		})(o.Messages),
  1403  		Pagination: (func(x *UIPagination) *UIPagination {
  1404  			if x == nil {
  1405  				return nil
  1406  			}
  1407  			tmp := (*x).DeepCopy()
  1408  			return &tmp
  1409  		})(o.Pagination),
  1410  	}
  1411  }
  1412  
  1413  type UITeamMention struct {
  1414  	InTeam       bool       `codec:"inTeam" json:"inTeam"`
  1415  	Open         bool       `codec:"open" json:"open"`
  1416  	Description  *string    `codec:"description,omitempty" json:"description,omitempty"`
  1417  	NumMembers   *int       `codec:"numMembers,omitempty" json:"numMembers,omitempty"`
  1418  	PublicAdmins []string   `codec:"publicAdmins" json:"publicAdmins"`
  1419  	ConvID       *ConvIDStr `codec:"convID,omitempty" json:"convID,omitempty"`
  1420  }
  1421  
  1422  func (o UITeamMention) DeepCopy() UITeamMention {
  1423  	return UITeamMention{
  1424  		InTeam: o.InTeam,
  1425  		Open:   o.Open,
  1426  		Description: (func(x *string) *string {
  1427  			if x == nil {
  1428  				return nil
  1429  			}
  1430  			tmp := (*x)
  1431  			return &tmp
  1432  		})(o.Description),
  1433  		NumMembers: (func(x *int) *int {
  1434  			if x == nil {
  1435  				return nil
  1436  			}
  1437  			tmp := (*x)
  1438  			return &tmp
  1439  		})(o.NumMembers),
  1440  		PublicAdmins: (func(x []string) []string {
  1441  			if x == nil {
  1442  				return nil
  1443  			}
  1444  			ret := make([]string, len(x))
  1445  			for i, v := range x {
  1446  				vCopy := v
  1447  				ret[i] = vCopy
  1448  			}
  1449  			return ret
  1450  		})(o.PublicAdmins),
  1451  		ConvID: (func(x *ConvIDStr) *ConvIDStr {
  1452  			if x == nil {
  1453  				return nil
  1454  			}
  1455  			tmp := (*x).DeepCopy()
  1456  			return &tmp
  1457  		})(o.ConvID),
  1458  	}
  1459  }
  1460  
  1461  type UITextDecorationTyp int
  1462  
  1463  const (
  1464  	UITextDecorationTyp_PAYMENT            UITextDecorationTyp = 0
  1465  	UITextDecorationTyp_ATMENTION          UITextDecorationTyp = 1
  1466  	UITextDecorationTyp_CHANNELNAMEMENTION UITextDecorationTyp = 2
  1467  	UITextDecorationTyp_MAYBEMENTION       UITextDecorationTyp = 3
  1468  	UITextDecorationTyp_LINK               UITextDecorationTyp = 4
  1469  	UITextDecorationTyp_MAILTO             UITextDecorationTyp = 5
  1470  	UITextDecorationTyp_KBFSPATH           UITextDecorationTyp = 6
  1471  	UITextDecorationTyp_EMOJI              UITextDecorationTyp = 7
  1472  )
  1473  
  1474  func (o UITextDecorationTyp) DeepCopy() UITextDecorationTyp { return o }
  1475  
  1476  var UITextDecorationTypMap = map[string]UITextDecorationTyp{
  1477  	"PAYMENT":            0,
  1478  	"ATMENTION":          1,
  1479  	"CHANNELNAMEMENTION": 2,
  1480  	"MAYBEMENTION":       3,
  1481  	"LINK":               4,
  1482  	"MAILTO":             5,
  1483  	"KBFSPATH":           6,
  1484  	"EMOJI":              7,
  1485  }
  1486  
  1487  var UITextDecorationTypRevMap = map[UITextDecorationTyp]string{
  1488  	0: "PAYMENT",
  1489  	1: "ATMENTION",
  1490  	2: "CHANNELNAMEMENTION",
  1491  	3: "MAYBEMENTION",
  1492  	4: "LINK",
  1493  	5: "MAILTO",
  1494  	6: "KBFSPATH",
  1495  	7: "EMOJI",
  1496  }
  1497  
  1498  func (e UITextDecorationTyp) String() string {
  1499  	if v, ok := UITextDecorationTypRevMap[e]; ok {
  1500  		return v
  1501  	}
  1502  	return fmt.Sprintf("%v", int(e))
  1503  }
  1504  
  1505  type UIMaybeMentionStatus int
  1506  
  1507  const (
  1508  	UIMaybeMentionStatus_UNKNOWN UIMaybeMentionStatus = 0
  1509  	UIMaybeMentionStatus_USER    UIMaybeMentionStatus = 1
  1510  	UIMaybeMentionStatus_TEAM    UIMaybeMentionStatus = 2
  1511  	UIMaybeMentionStatus_NOTHING UIMaybeMentionStatus = 3
  1512  )
  1513  
  1514  func (o UIMaybeMentionStatus) DeepCopy() UIMaybeMentionStatus { return o }
  1515  
  1516  var UIMaybeMentionStatusMap = map[string]UIMaybeMentionStatus{
  1517  	"UNKNOWN": 0,
  1518  	"USER":    1,
  1519  	"TEAM":    2,
  1520  	"NOTHING": 3,
  1521  }
  1522  
  1523  var UIMaybeMentionStatusRevMap = map[UIMaybeMentionStatus]string{
  1524  	0: "UNKNOWN",
  1525  	1: "USER",
  1526  	2: "TEAM",
  1527  	3: "NOTHING",
  1528  }
  1529  
  1530  func (e UIMaybeMentionStatus) String() string {
  1531  	if v, ok := UIMaybeMentionStatusRevMap[e]; ok {
  1532  		return v
  1533  	}
  1534  	return fmt.Sprintf("%v", int(e))
  1535  }
  1536  
  1537  type UILinkDecoration struct {
  1538  	Url      string `codec:"url" json:"url"`
  1539  	Punycode string `codec:"punycode" json:"punycode"`
  1540  }
  1541  
  1542  func (o UILinkDecoration) DeepCopy() UILinkDecoration {
  1543  	return UILinkDecoration{
  1544  		Url:      o.Url,
  1545  		Punycode: o.Punycode,
  1546  	}
  1547  }
  1548  
  1549  type UIMaybeMentionInfo struct {
  1550  	Status__ UIMaybeMentionStatus `codec:"status" json:"status"`
  1551  	Team__   *UITeamMention       `codec:"team,omitempty" json:"team,omitempty"`
  1552  }
  1553  
  1554  func (o *UIMaybeMentionInfo) Status() (ret UIMaybeMentionStatus, err error) {
  1555  	switch o.Status__ {
  1556  	case UIMaybeMentionStatus_TEAM:
  1557  		if o.Team__ == nil {
  1558  			err = errors.New("unexpected nil value for Team__")
  1559  			return ret, err
  1560  		}
  1561  	}
  1562  	return o.Status__, nil
  1563  }
  1564  
  1565  func (o UIMaybeMentionInfo) Team() (res UITeamMention) {
  1566  	if o.Status__ != UIMaybeMentionStatus_TEAM {
  1567  		panic("wrong case accessed")
  1568  	}
  1569  	if o.Team__ == nil {
  1570  		return
  1571  	}
  1572  	return *o.Team__
  1573  }
  1574  
  1575  func NewUIMaybeMentionInfoWithUnknown() UIMaybeMentionInfo {
  1576  	return UIMaybeMentionInfo{
  1577  		Status__: UIMaybeMentionStatus_UNKNOWN,
  1578  	}
  1579  }
  1580  
  1581  func NewUIMaybeMentionInfoWithUser() UIMaybeMentionInfo {
  1582  	return UIMaybeMentionInfo{
  1583  		Status__: UIMaybeMentionStatus_USER,
  1584  	}
  1585  }
  1586  
  1587  func NewUIMaybeMentionInfoWithTeam(v UITeamMention) UIMaybeMentionInfo {
  1588  	return UIMaybeMentionInfo{
  1589  		Status__: UIMaybeMentionStatus_TEAM,
  1590  		Team__:   &v,
  1591  	}
  1592  }
  1593  
  1594  func NewUIMaybeMentionInfoWithNothing() UIMaybeMentionInfo {
  1595  	return UIMaybeMentionInfo{
  1596  		Status__: UIMaybeMentionStatus_NOTHING,
  1597  	}
  1598  }
  1599  
  1600  func (o UIMaybeMentionInfo) DeepCopy() UIMaybeMentionInfo {
  1601  	return UIMaybeMentionInfo{
  1602  		Status__: o.Status__.DeepCopy(),
  1603  		Team__: (func(x *UITeamMention) *UITeamMention {
  1604  			if x == nil {
  1605  				return nil
  1606  			}
  1607  			tmp := (*x).DeepCopy()
  1608  			return &tmp
  1609  		})(o.Team__),
  1610  	}
  1611  }
  1612  
  1613  type UITextDecoration struct {
  1614  	Typ__                UITextDecorationTyp   `codec:"typ" json:"typ"`
  1615  	Payment__            *TextPayment          `codec:"payment,omitempty" json:"payment,omitempty"`
  1616  	Atmention__          *string               `codec:"atmention,omitempty" json:"atmention,omitempty"`
  1617  	Channelnamemention__ *UIChannelNameMention `codec:"channelnamemention,omitempty" json:"channelnamemention,omitempty"`
  1618  	Maybemention__       *MaybeMention         `codec:"maybemention,omitempty" json:"maybemention,omitempty"`
  1619  	Link__               *UILinkDecoration     `codec:"link,omitempty" json:"link,omitempty"`
  1620  	Mailto__             *UILinkDecoration     `codec:"mailto,omitempty" json:"mailto,omitempty"`
  1621  	Kbfspath__           *KBFSPath             `codec:"kbfspath,omitempty" json:"kbfspath,omitempty"`
  1622  	Emoji__              *Emoji                `codec:"emoji,omitempty" json:"emoji,omitempty"`
  1623  }
  1624  
  1625  func (o *UITextDecoration) Typ() (ret UITextDecorationTyp, err error) {
  1626  	switch o.Typ__ {
  1627  	case UITextDecorationTyp_PAYMENT:
  1628  		if o.Payment__ == nil {
  1629  			err = errors.New("unexpected nil value for Payment__")
  1630  			return ret, err
  1631  		}
  1632  	case UITextDecorationTyp_ATMENTION:
  1633  		if o.Atmention__ == nil {
  1634  			err = errors.New("unexpected nil value for Atmention__")
  1635  			return ret, err
  1636  		}
  1637  	case UITextDecorationTyp_CHANNELNAMEMENTION:
  1638  		if o.Channelnamemention__ == nil {
  1639  			err = errors.New("unexpected nil value for Channelnamemention__")
  1640  			return ret, err
  1641  		}
  1642  	case UITextDecorationTyp_MAYBEMENTION:
  1643  		if o.Maybemention__ == nil {
  1644  			err = errors.New("unexpected nil value for Maybemention__")
  1645  			return ret, err
  1646  		}
  1647  	case UITextDecorationTyp_LINK:
  1648  		if o.Link__ == nil {
  1649  			err = errors.New("unexpected nil value for Link__")
  1650  			return ret, err
  1651  		}
  1652  	case UITextDecorationTyp_MAILTO:
  1653  		if o.Mailto__ == nil {
  1654  			err = errors.New("unexpected nil value for Mailto__")
  1655  			return ret, err
  1656  		}
  1657  	case UITextDecorationTyp_KBFSPATH:
  1658  		if o.Kbfspath__ == nil {
  1659  			err = errors.New("unexpected nil value for Kbfspath__")
  1660  			return ret, err
  1661  		}
  1662  	case UITextDecorationTyp_EMOJI:
  1663  		if o.Emoji__ == nil {
  1664  			err = errors.New("unexpected nil value for Emoji__")
  1665  			return ret, err
  1666  		}
  1667  	}
  1668  	return o.Typ__, nil
  1669  }
  1670  
  1671  func (o UITextDecoration) Payment() (res TextPayment) {
  1672  	if o.Typ__ != UITextDecorationTyp_PAYMENT {
  1673  		panic("wrong case accessed")
  1674  	}
  1675  	if o.Payment__ == nil {
  1676  		return
  1677  	}
  1678  	return *o.Payment__
  1679  }
  1680  
  1681  func (o UITextDecoration) Atmention() (res string) {
  1682  	if o.Typ__ != UITextDecorationTyp_ATMENTION {
  1683  		panic("wrong case accessed")
  1684  	}
  1685  	if o.Atmention__ == nil {
  1686  		return
  1687  	}
  1688  	return *o.Atmention__
  1689  }
  1690  
  1691  func (o UITextDecoration) Channelnamemention() (res UIChannelNameMention) {
  1692  	if o.Typ__ != UITextDecorationTyp_CHANNELNAMEMENTION {
  1693  		panic("wrong case accessed")
  1694  	}
  1695  	if o.Channelnamemention__ == nil {
  1696  		return
  1697  	}
  1698  	return *o.Channelnamemention__
  1699  }
  1700  
  1701  func (o UITextDecoration) Maybemention() (res MaybeMention) {
  1702  	if o.Typ__ != UITextDecorationTyp_MAYBEMENTION {
  1703  		panic("wrong case accessed")
  1704  	}
  1705  	if o.Maybemention__ == nil {
  1706  		return
  1707  	}
  1708  	return *o.Maybemention__
  1709  }
  1710  
  1711  func (o UITextDecoration) Link() (res UILinkDecoration) {
  1712  	if o.Typ__ != UITextDecorationTyp_LINK {
  1713  		panic("wrong case accessed")
  1714  	}
  1715  	if o.Link__ == nil {
  1716  		return
  1717  	}
  1718  	return *o.Link__
  1719  }
  1720  
  1721  func (o UITextDecoration) Mailto() (res UILinkDecoration) {
  1722  	if o.Typ__ != UITextDecorationTyp_MAILTO {
  1723  		panic("wrong case accessed")
  1724  	}
  1725  	if o.Mailto__ == nil {
  1726  		return
  1727  	}
  1728  	return *o.Mailto__
  1729  }
  1730  
  1731  func (o UITextDecoration) Kbfspath() (res KBFSPath) {
  1732  	if o.Typ__ != UITextDecorationTyp_KBFSPATH {
  1733  		panic("wrong case accessed")
  1734  	}
  1735  	if o.Kbfspath__ == nil {
  1736  		return
  1737  	}
  1738  	return *o.Kbfspath__
  1739  }
  1740  
  1741  func (o UITextDecoration) Emoji() (res Emoji) {
  1742  	if o.Typ__ != UITextDecorationTyp_EMOJI {
  1743  		panic("wrong case accessed")
  1744  	}
  1745  	if o.Emoji__ == nil {
  1746  		return
  1747  	}
  1748  	return *o.Emoji__
  1749  }
  1750  
  1751  func NewUITextDecorationWithPayment(v TextPayment) UITextDecoration {
  1752  	return UITextDecoration{
  1753  		Typ__:     UITextDecorationTyp_PAYMENT,
  1754  		Payment__: &v,
  1755  	}
  1756  }
  1757  
  1758  func NewUITextDecorationWithAtmention(v string) UITextDecoration {
  1759  	return UITextDecoration{
  1760  		Typ__:       UITextDecorationTyp_ATMENTION,
  1761  		Atmention__: &v,
  1762  	}
  1763  }
  1764  
  1765  func NewUITextDecorationWithChannelnamemention(v UIChannelNameMention) UITextDecoration {
  1766  	return UITextDecoration{
  1767  		Typ__:                UITextDecorationTyp_CHANNELNAMEMENTION,
  1768  		Channelnamemention__: &v,
  1769  	}
  1770  }
  1771  
  1772  func NewUITextDecorationWithMaybemention(v MaybeMention) UITextDecoration {
  1773  	return UITextDecoration{
  1774  		Typ__:          UITextDecorationTyp_MAYBEMENTION,
  1775  		Maybemention__: &v,
  1776  	}
  1777  }
  1778  
  1779  func NewUITextDecorationWithLink(v UILinkDecoration) UITextDecoration {
  1780  	return UITextDecoration{
  1781  		Typ__:  UITextDecorationTyp_LINK,
  1782  		Link__: &v,
  1783  	}
  1784  }
  1785  
  1786  func NewUITextDecorationWithMailto(v UILinkDecoration) UITextDecoration {
  1787  	return UITextDecoration{
  1788  		Typ__:    UITextDecorationTyp_MAILTO,
  1789  		Mailto__: &v,
  1790  	}
  1791  }
  1792  
  1793  func NewUITextDecorationWithKbfspath(v KBFSPath) UITextDecoration {
  1794  	return UITextDecoration{
  1795  		Typ__:      UITextDecorationTyp_KBFSPATH,
  1796  		Kbfspath__: &v,
  1797  	}
  1798  }
  1799  
  1800  func NewUITextDecorationWithEmoji(v Emoji) UITextDecoration {
  1801  	return UITextDecoration{
  1802  		Typ__:   UITextDecorationTyp_EMOJI,
  1803  		Emoji__: &v,
  1804  	}
  1805  }
  1806  
  1807  func (o UITextDecoration) DeepCopy() UITextDecoration {
  1808  	return UITextDecoration{
  1809  		Typ__: o.Typ__.DeepCopy(),
  1810  		Payment__: (func(x *TextPayment) *TextPayment {
  1811  			if x == nil {
  1812  				return nil
  1813  			}
  1814  			tmp := (*x).DeepCopy()
  1815  			return &tmp
  1816  		})(o.Payment__),
  1817  		Atmention__: (func(x *string) *string {
  1818  			if x == nil {
  1819  				return nil
  1820  			}
  1821  			tmp := (*x)
  1822  			return &tmp
  1823  		})(o.Atmention__),
  1824  		Channelnamemention__: (func(x *UIChannelNameMention) *UIChannelNameMention {
  1825  			if x == nil {
  1826  				return nil
  1827  			}
  1828  			tmp := (*x).DeepCopy()
  1829  			return &tmp
  1830  		})(o.Channelnamemention__),
  1831  		Maybemention__: (func(x *MaybeMention) *MaybeMention {
  1832  			if x == nil {
  1833  				return nil
  1834  			}
  1835  			tmp := (*x).DeepCopy()
  1836  			return &tmp
  1837  		})(o.Maybemention__),
  1838  		Link__: (func(x *UILinkDecoration) *UILinkDecoration {
  1839  			if x == nil {
  1840  				return nil
  1841  			}
  1842  			tmp := (*x).DeepCopy()
  1843  			return &tmp
  1844  		})(o.Link__),
  1845  		Mailto__: (func(x *UILinkDecoration) *UILinkDecoration {
  1846  			if x == nil {
  1847  				return nil
  1848  			}
  1849  			tmp := (*x).DeepCopy()
  1850  			return &tmp
  1851  		})(o.Mailto__),
  1852  		Kbfspath__: (func(x *KBFSPath) *KBFSPath {
  1853  			if x == nil {
  1854  				return nil
  1855  			}
  1856  			tmp := (*x).DeepCopy()
  1857  			return &tmp
  1858  		})(o.Kbfspath__),
  1859  		Emoji__: (func(x *Emoji) *Emoji {
  1860  			if x == nil {
  1861  				return nil
  1862  			}
  1863  			tmp := (*x).DeepCopy()
  1864  			return &tmp
  1865  		})(o.Emoji__),
  1866  	}
  1867  }
  1868  
  1869  type UIChatThreadStatusTyp int
  1870  
  1871  const (
  1872  	UIChatThreadStatusTyp_NONE       UIChatThreadStatusTyp = 0
  1873  	UIChatThreadStatusTyp_SERVER     UIChatThreadStatusTyp = 1
  1874  	UIChatThreadStatusTyp_VALIDATING UIChatThreadStatusTyp = 2
  1875  	UIChatThreadStatusTyp_VALIDATED  UIChatThreadStatusTyp = 3
  1876  )
  1877  
  1878  func (o UIChatThreadStatusTyp) DeepCopy() UIChatThreadStatusTyp { return o }
  1879  
  1880  var UIChatThreadStatusTypMap = map[string]UIChatThreadStatusTyp{
  1881  	"NONE":       0,
  1882  	"SERVER":     1,
  1883  	"VALIDATING": 2,
  1884  	"VALIDATED":  3,
  1885  }
  1886  
  1887  var UIChatThreadStatusTypRevMap = map[UIChatThreadStatusTyp]string{
  1888  	0: "NONE",
  1889  	1: "SERVER",
  1890  	2: "VALIDATING",
  1891  	3: "VALIDATED",
  1892  }
  1893  
  1894  func (e UIChatThreadStatusTyp) String() string {
  1895  	if v, ok := UIChatThreadStatusTypRevMap[e]; ok {
  1896  		return v
  1897  	}
  1898  	return fmt.Sprintf("%v", int(e))
  1899  }
  1900  
  1901  type UIChatThreadStatus struct {
  1902  	Typ__        UIChatThreadStatusTyp `codec:"typ" json:"typ"`
  1903  	Validating__ *int                  `codec:"validating,omitempty" json:"validating,omitempty"`
  1904  }
  1905  
  1906  func (o *UIChatThreadStatus) Typ() (ret UIChatThreadStatusTyp, err error) {
  1907  	switch o.Typ__ {
  1908  	case UIChatThreadStatusTyp_VALIDATING:
  1909  		if o.Validating__ == nil {
  1910  			err = errors.New("unexpected nil value for Validating__")
  1911  			return ret, err
  1912  		}
  1913  	}
  1914  	return o.Typ__, nil
  1915  }
  1916  
  1917  func (o UIChatThreadStatus) Validating() (res int) {
  1918  	if o.Typ__ != UIChatThreadStatusTyp_VALIDATING {
  1919  		panic("wrong case accessed")
  1920  	}
  1921  	if o.Validating__ == nil {
  1922  		return
  1923  	}
  1924  	return *o.Validating__
  1925  }
  1926  
  1927  func NewUIChatThreadStatusWithNone() UIChatThreadStatus {
  1928  	return UIChatThreadStatus{
  1929  		Typ__: UIChatThreadStatusTyp_NONE,
  1930  	}
  1931  }
  1932  
  1933  func NewUIChatThreadStatusWithServer() UIChatThreadStatus {
  1934  	return UIChatThreadStatus{
  1935  		Typ__: UIChatThreadStatusTyp_SERVER,
  1936  	}
  1937  }
  1938  
  1939  func NewUIChatThreadStatusWithValidating(v int) UIChatThreadStatus {
  1940  	return UIChatThreadStatus{
  1941  		Typ__:        UIChatThreadStatusTyp_VALIDATING,
  1942  		Validating__: &v,
  1943  	}
  1944  }
  1945  
  1946  func NewUIChatThreadStatusWithValidated() UIChatThreadStatus {
  1947  	return UIChatThreadStatus{
  1948  		Typ__: UIChatThreadStatusTyp_VALIDATED,
  1949  	}
  1950  }
  1951  
  1952  func (o UIChatThreadStatus) DeepCopy() UIChatThreadStatus {
  1953  	return UIChatThreadStatus{
  1954  		Typ__: o.Typ__.DeepCopy(),
  1955  		Validating__: (func(x *int) *int {
  1956  			if x == nil {
  1957  				return nil
  1958  			}
  1959  			tmp := (*x)
  1960  			return &tmp
  1961  		})(o.Validating__),
  1962  	}
  1963  }
  1964  
  1965  type UIChatSearchConvHit struct {
  1966  	ConvID   ConvIDStr    `codec:"convID" json:"convID"`
  1967  	TeamType TeamType     `codec:"teamType" json:"teamType"`
  1968  	Name     string       `codec:"name" json:"name"`
  1969  	Mtime    gregor1.Time `codec:"mtime" json:"mtime"`
  1970  }
  1971  
  1972  func (o UIChatSearchConvHit) DeepCopy() UIChatSearchConvHit {
  1973  	return UIChatSearchConvHit{
  1974  		ConvID:   o.ConvID.DeepCopy(),
  1975  		TeamType: o.TeamType.DeepCopy(),
  1976  		Name:     o.Name,
  1977  		Mtime:    o.Mtime.DeepCopy(),
  1978  	}
  1979  }
  1980  
  1981  type UIChatSearchConvHits struct {
  1982  	Hits          []UIChatSearchConvHit `codec:"hits" json:"hits"`
  1983  	UnreadMatches bool                  `codec:"unreadMatches" json:"unreadMatches"`
  1984  }
  1985  
  1986  func (o UIChatSearchConvHits) DeepCopy() UIChatSearchConvHits {
  1987  	return UIChatSearchConvHits{
  1988  		Hits: (func(x []UIChatSearchConvHit) []UIChatSearchConvHit {
  1989  			if x == nil {
  1990  				return nil
  1991  			}
  1992  			ret := make([]UIChatSearchConvHit, len(x))
  1993  			for i, v := range x {
  1994  				vCopy := v.DeepCopy()
  1995  				ret[i] = vCopy
  1996  			}
  1997  			return ret
  1998  		})(o.Hits),
  1999  		UnreadMatches: o.UnreadMatches,
  2000  	}
  2001  }
  2002  
  2003  type UIChatSearchTeamHits struct {
  2004  	Hits             []keybase1.TeamSearchItem `codec:"hits" json:"hits"`
  2005  	SuggestedMatches bool                      `codec:"suggestedMatches" json:"suggestedMatches"`
  2006  }
  2007  
  2008  func (o UIChatSearchTeamHits) DeepCopy() UIChatSearchTeamHits {
  2009  	return UIChatSearchTeamHits{
  2010  		Hits: (func(x []keybase1.TeamSearchItem) []keybase1.TeamSearchItem {
  2011  			if x == nil {
  2012  				return nil
  2013  			}
  2014  			ret := make([]keybase1.TeamSearchItem, len(x))
  2015  			for i, v := range x {
  2016  				vCopy := v.DeepCopy()
  2017  				ret[i] = vCopy
  2018  			}
  2019  			return ret
  2020  		})(o.Hits),
  2021  		SuggestedMatches: o.SuggestedMatches,
  2022  	}
  2023  }
  2024  
  2025  type UIChatSearchBotHits struct {
  2026  	Hits             []keybase1.FeaturedBot `codec:"hits" json:"hits"`
  2027  	SuggestedMatches bool                   `codec:"suggestedMatches" json:"suggestedMatches"`
  2028  }
  2029  
  2030  func (o UIChatSearchBotHits) DeepCopy() UIChatSearchBotHits {
  2031  	return UIChatSearchBotHits{
  2032  		Hits: (func(x []keybase1.FeaturedBot) []keybase1.FeaturedBot {
  2033  			if x == nil {
  2034  				return nil
  2035  			}
  2036  			ret := make([]keybase1.FeaturedBot, len(x))
  2037  			for i, v := range x {
  2038  				vCopy := v.DeepCopy()
  2039  				ret[i] = vCopy
  2040  			}
  2041  			return ret
  2042  		})(o.Hits),
  2043  		SuggestedMatches: o.SuggestedMatches,
  2044  	}
  2045  }
  2046  
  2047  type UIChatPayment struct {
  2048  	Username      string  `codec:"username" json:"username"`
  2049  	FullName      string  `codec:"fullName" json:"fullName"`
  2050  	XlmAmount     string  `codec:"xlmAmount" json:"xlmAmount"`
  2051  	Error         *string `codec:"error,omitempty" json:"error,omitempty"`
  2052  	DisplayAmount *string `codec:"displayAmount,omitempty" json:"displayAmount,omitempty"`
  2053  }
  2054  
  2055  func (o UIChatPayment) DeepCopy() UIChatPayment {
  2056  	return UIChatPayment{
  2057  		Username:  o.Username,
  2058  		FullName:  o.FullName,
  2059  		XlmAmount: o.XlmAmount,
  2060  		Error: (func(x *string) *string {
  2061  			if x == nil {
  2062  				return nil
  2063  			}
  2064  			tmp := (*x)
  2065  			return &tmp
  2066  		})(o.Error),
  2067  		DisplayAmount: (func(x *string) *string {
  2068  			if x == nil {
  2069  				return nil
  2070  			}
  2071  			tmp := (*x)
  2072  			return &tmp
  2073  		})(o.DisplayAmount),
  2074  	}
  2075  }
  2076  
  2077  type UIChatPaymentSummary struct {
  2078  	XlmTotal     string          `codec:"xlmTotal" json:"xlmTotal"`
  2079  	DisplayTotal string          `codec:"displayTotal" json:"displayTotal"`
  2080  	Payments     []UIChatPayment `codec:"payments" json:"payments"`
  2081  }
  2082  
  2083  func (o UIChatPaymentSummary) DeepCopy() UIChatPaymentSummary {
  2084  	return UIChatPaymentSummary{
  2085  		XlmTotal:     o.XlmTotal,
  2086  		DisplayTotal: o.DisplayTotal,
  2087  		Payments: (func(x []UIChatPayment) []UIChatPayment {
  2088  			if x == nil {
  2089  				return nil
  2090  			}
  2091  			ret := make([]UIChatPayment, len(x))
  2092  			for i, v := range x {
  2093  				vCopy := v.DeepCopy()
  2094  				ret[i] = vCopy
  2095  			}
  2096  			return ret
  2097  		})(o.Payments),
  2098  	}
  2099  }
  2100  
  2101  type GiphySearchResult struct {
  2102  	TargetUrl           string `codec:"targetUrl" json:"targetUrl"`
  2103  	PreferredPreviewUrl string `codec:"preferredPreviewUrl" json:"preferredPreviewUrl"`
  2104  	PreviewUrl          string `codec:"previewUrl" json:"previewUrl"`
  2105  	PreviewWidth        int    `codec:"previewWidth" json:"previewWidth"`
  2106  	PreviewHeight       int    `codec:"previewHeight" json:"previewHeight"`
  2107  	PreviewIsVideo      bool   `codec:"previewIsVideo" json:"previewIsVideo"`
  2108  }
  2109  
  2110  func (o GiphySearchResult) DeepCopy() GiphySearchResult {
  2111  	return GiphySearchResult{
  2112  		TargetUrl:           o.TargetUrl,
  2113  		PreferredPreviewUrl: o.PreferredPreviewUrl,
  2114  		PreviewUrl:          o.PreviewUrl,
  2115  		PreviewWidth:        o.PreviewWidth,
  2116  		PreviewHeight:       o.PreviewHeight,
  2117  		PreviewIsVideo:      o.PreviewIsVideo,
  2118  	}
  2119  }
  2120  
  2121  type GiphySearchResults struct {
  2122  	Results    []GiphySearchResult `codec:"results" json:"results"`
  2123  	GalleryUrl string              `codec:"galleryUrl" json:"galleryUrl"`
  2124  }
  2125  
  2126  func (o GiphySearchResults) DeepCopy() GiphySearchResults {
  2127  	return GiphySearchResults{
  2128  		Results: (func(x []GiphySearchResult) []GiphySearchResult {
  2129  			if x == nil {
  2130  				return nil
  2131  			}
  2132  			ret := make([]GiphySearchResult, len(x))
  2133  			for i, v := range x {
  2134  				vCopy := v.DeepCopy()
  2135  				ret[i] = vCopy
  2136  			}
  2137  			return ret
  2138  		})(o.Results),
  2139  		GalleryUrl: o.GalleryUrl,
  2140  	}
  2141  }
  2142  
  2143  type UICoinFlipPhase int
  2144  
  2145  const (
  2146  	UICoinFlipPhase_COMMITMENT UICoinFlipPhase = 0
  2147  	UICoinFlipPhase_REVEALS    UICoinFlipPhase = 1
  2148  	UICoinFlipPhase_COMPLETE   UICoinFlipPhase = 2
  2149  	UICoinFlipPhase_ERROR      UICoinFlipPhase = 3
  2150  )
  2151  
  2152  func (o UICoinFlipPhase) DeepCopy() UICoinFlipPhase { return o }
  2153  
  2154  var UICoinFlipPhaseMap = map[string]UICoinFlipPhase{
  2155  	"COMMITMENT": 0,
  2156  	"REVEALS":    1,
  2157  	"COMPLETE":   2,
  2158  	"ERROR":      3,
  2159  }
  2160  
  2161  var UICoinFlipPhaseRevMap = map[UICoinFlipPhase]string{
  2162  	0: "COMMITMENT",
  2163  	1: "REVEALS",
  2164  	2: "COMPLETE",
  2165  	3: "ERROR",
  2166  }
  2167  
  2168  func (e UICoinFlipPhase) String() string {
  2169  	if v, ok := UICoinFlipPhaseRevMap[e]; ok {
  2170  		return v
  2171  	}
  2172  	return fmt.Sprintf("%v", int(e))
  2173  }
  2174  
  2175  type UICoinFlipErrorParticipant struct {
  2176  	User   string `codec:"user" json:"user"`
  2177  	Device string `codec:"device" json:"device"`
  2178  }
  2179  
  2180  func (o UICoinFlipErrorParticipant) DeepCopy() UICoinFlipErrorParticipant {
  2181  	return UICoinFlipErrorParticipant{
  2182  		User:   o.User,
  2183  		Device: o.Device,
  2184  	}
  2185  }
  2186  
  2187  type UICoinFlipAbsenteeError struct {
  2188  	Absentees []UICoinFlipErrorParticipant `codec:"absentees" json:"absentees"`
  2189  }
  2190  
  2191  func (o UICoinFlipAbsenteeError) DeepCopy() UICoinFlipAbsenteeError {
  2192  	return UICoinFlipAbsenteeError{
  2193  		Absentees: (func(x []UICoinFlipErrorParticipant) []UICoinFlipErrorParticipant {
  2194  			if x == nil {
  2195  				return nil
  2196  			}
  2197  			ret := make([]UICoinFlipErrorParticipant, len(x))
  2198  			for i, v := range x {
  2199  				vCopy := v.DeepCopy()
  2200  				ret[i] = vCopy
  2201  			}
  2202  			return ret
  2203  		})(o.Absentees),
  2204  	}
  2205  }
  2206  
  2207  type UICoinFlipErrorTyp int
  2208  
  2209  const (
  2210  	UICoinFlipErrorTyp_GENERIC           UICoinFlipErrorTyp = 0
  2211  	UICoinFlipErrorTyp_ABSENTEE          UICoinFlipErrorTyp = 1
  2212  	UICoinFlipErrorTyp_TIMEOUT           UICoinFlipErrorTyp = 2
  2213  	UICoinFlipErrorTyp_ABORTED           UICoinFlipErrorTyp = 3
  2214  	UICoinFlipErrorTyp_DUPREG            UICoinFlipErrorTyp = 4
  2215  	UICoinFlipErrorTyp_DUPCOMMITCOMPLETE UICoinFlipErrorTyp = 5
  2216  	UICoinFlipErrorTyp_DUPREVEAL         UICoinFlipErrorTyp = 6
  2217  	UICoinFlipErrorTyp_COMMITMISMATCH    UICoinFlipErrorTyp = 7
  2218  )
  2219  
  2220  func (o UICoinFlipErrorTyp) DeepCopy() UICoinFlipErrorTyp { return o }
  2221  
  2222  var UICoinFlipErrorTypMap = map[string]UICoinFlipErrorTyp{
  2223  	"GENERIC":           0,
  2224  	"ABSENTEE":          1,
  2225  	"TIMEOUT":           2,
  2226  	"ABORTED":           3,
  2227  	"DUPREG":            4,
  2228  	"DUPCOMMITCOMPLETE": 5,
  2229  	"DUPREVEAL":         6,
  2230  	"COMMITMISMATCH":    7,
  2231  }
  2232  
  2233  var UICoinFlipErrorTypRevMap = map[UICoinFlipErrorTyp]string{
  2234  	0: "GENERIC",
  2235  	1: "ABSENTEE",
  2236  	2: "TIMEOUT",
  2237  	3: "ABORTED",
  2238  	4: "DUPREG",
  2239  	5: "DUPCOMMITCOMPLETE",
  2240  	6: "DUPREVEAL",
  2241  	7: "COMMITMISMATCH",
  2242  }
  2243  
  2244  func (e UICoinFlipErrorTyp) String() string {
  2245  	if v, ok := UICoinFlipErrorTypRevMap[e]; ok {
  2246  		return v
  2247  	}
  2248  	return fmt.Sprintf("%v", int(e))
  2249  }
  2250  
  2251  type UICoinFlipError struct {
  2252  	Typ__               UICoinFlipErrorTyp          `codec:"typ" json:"typ"`
  2253  	Generic__           *string                     `codec:"generic,omitempty" json:"generic,omitempty"`
  2254  	Absentee__          *UICoinFlipAbsenteeError    `codec:"absentee,omitempty" json:"absentee,omitempty"`
  2255  	Dupreg__            *UICoinFlipErrorParticipant `codec:"dupreg,omitempty" json:"dupreg,omitempty"`
  2256  	Dupcommitcomplete__ *UICoinFlipErrorParticipant `codec:"dupcommitcomplete,omitempty" json:"dupcommitcomplete,omitempty"`
  2257  	Dupreveal__         *UICoinFlipErrorParticipant `codec:"dupreveal,omitempty" json:"dupreveal,omitempty"`
  2258  	Commitmismatch__    *UICoinFlipErrorParticipant `codec:"commitmismatch,omitempty" json:"commitmismatch,omitempty"`
  2259  }
  2260  
  2261  func (o *UICoinFlipError) Typ() (ret UICoinFlipErrorTyp, err error) {
  2262  	switch o.Typ__ {
  2263  	case UICoinFlipErrorTyp_GENERIC:
  2264  		if o.Generic__ == nil {
  2265  			err = errors.New("unexpected nil value for Generic__")
  2266  			return ret, err
  2267  		}
  2268  	case UICoinFlipErrorTyp_ABSENTEE:
  2269  		if o.Absentee__ == nil {
  2270  			err = errors.New("unexpected nil value for Absentee__")
  2271  			return ret, err
  2272  		}
  2273  	case UICoinFlipErrorTyp_DUPREG:
  2274  		if o.Dupreg__ == nil {
  2275  			err = errors.New("unexpected nil value for Dupreg__")
  2276  			return ret, err
  2277  		}
  2278  	case UICoinFlipErrorTyp_DUPCOMMITCOMPLETE:
  2279  		if o.Dupcommitcomplete__ == nil {
  2280  			err = errors.New("unexpected nil value for Dupcommitcomplete__")
  2281  			return ret, err
  2282  		}
  2283  	case UICoinFlipErrorTyp_DUPREVEAL:
  2284  		if o.Dupreveal__ == nil {
  2285  			err = errors.New("unexpected nil value for Dupreveal__")
  2286  			return ret, err
  2287  		}
  2288  	case UICoinFlipErrorTyp_COMMITMISMATCH:
  2289  		if o.Commitmismatch__ == nil {
  2290  			err = errors.New("unexpected nil value for Commitmismatch__")
  2291  			return ret, err
  2292  		}
  2293  	}
  2294  	return o.Typ__, nil
  2295  }
  2296  
  2297  func (o UICoinFlipError) Generic() (res string) {
  2298  	if o.Typ__ != UICoinFlipErrorTyp_GENERIC {
  2299  		panic("wrong case accessed")
  2300  	}
  2301  	if o.Generic__ == nil {
  2302  		return
  2303  	}
  2304  	return *o.Generic__
  2305  }
  2306  
  2307  func (o UICoinFlipError) Absentee() (res UICoinFlipAbsenteeError) {
  2308  	if o.Typ__ != UICoinFlipErrorTyp_ABSENTEE {
  2309  		panic("wrong case accessed")
  2310  	}
  2311  	if o.Absentee__ == nil {
  2312  		return
  2313  	}
  2314  	return *o.Absentee__
  2315  }
  2316  
  2317  func (o UICoinFlipError) Dupreg() (res UICoinFlipErrorParticipant) {
  2318  	if o.Typ__ != UICoinFlipErrorTyp_DUPREG {
  2319  		panic("wrong case accessed")
  2320  	}
  2321  	if o.Dupreg__ == nil {
  2322  		return
  2323  	}
  2324  	return *o.Dupreg__
  2325  }
  2326  
  2327  func (o UICoinFlipError) Dupcommitcomplete() (res UICoinFlipErrorParticipant) {
  2328  	if o.Typ__ != UICoinFlipErrorTyp_DUPCOMMITCOMPLETE {
  2329  		panic("wrong case accessed")
  2330  	}
  2331  	if o.Dupcommitcomplete__ == nil {
  2332  		return
  2333  	}
  2334  	return *o.Dupcommitcomplete__
  2335  }
  2336  
  2337  func (o UICoinFlipError) Dupreveal() (res UICoinFlipErrorParticipant) {
  2338  	if o.Typ__ != UICoinFlipErrorTyp_DUPREVEAL {
  2339  		panic("wrong case accessed")
  2340  	}
  2341  	if o.Dupreveal__ == nil {
  2342  		return
  2343  	}
  2344  	return *o.Dupreveal__
  2345  }
  2346  
  2347  func (o UICoinFlipError) Commitmismatch() (res UICoinFlipErrorParticipant) {
  2348  	if o.Typ__ != UICoinFlipErrorTyp_COMMITMISMATCH {
  2349  		panic("wrong case accessed")
  2350  	}
  2351  	if o.Commitmismatch__ == nil {
  2352  		return
  2353  	}
  2354  	return *o.Commitmismatch__
  2355  }
  2356  
  2357  func NewUICoinFlipErrorWithGeneric(v string) UICoinFlipError {
  2358  	return UICoinFlipError{
  2359  		Typ__:     UICoinFlipErrorTyp_GENERIC,
  2360  		Generic__: &v,
  2361  	}
  2362  }
  2363  
  2364  func NewUICoinFlipErrorWithAbsentee(v UICoinFlipAbsenteeError) UICoinFlipError {
  2365  	return UICoinFlipError{
  2366  		Typ__:      UICoinFlipErrorTyp_ABSENTEE,
  2367  		Absentee__: &v,
  2368  	}
  2369  }
  2370  
  2371  func NewUICoinFlipErrorWithTimeout() UICoinFlipError {
  2372  	return UICoinFlipError{
  2373  		Typ__: UICoinFlipErrorTyp_TIMEOUT,
  2374  	}
  2375  }
  2376  
  2377  func NewUICoinFlipErrorWithAborted() UICoinFlipError {
  2378  	return UICoinFlipError{
  2379  		Typ__: UICoinFlipErrorTyp_ABORTED,
  2380  	}
  2381  }
  2382  
  2383  func NewUICoinFlipErrorWithDupreg(v UICoinFlipErrorParticipant) UICoinFlipError {
  2384  	return UICoinFlipError{
  2385  		Typ__:    UICoinFlipErrorTyp_DUPREG,
  2386  		Dupreg__: &v,
  2387  	}
  2388  }
  2389  
  2390  func NewUICoinFlipErrorWithDupcommitcomplete(v UICoinFlipErrorParticipant) UICoinFlipError {
  2391  	return UICoinFlipError{
  2392  		Typ__:               UICoinFlipErrorTyp_DUPCOMMITCOMPLETE,
  2393  		Dupcommitcomplete__: &v,
  2394  	}
  2395  }
  2396  
  2397  func NewUICoinFlipErrorWithDupreveal(v UICoinFlipErrorParticipant) UICoinFlipError {
  2398  	return UICoinFlipError{
  2399  		Typ__:       UICoinFlipErrorTyp_DUPREVEAL,
  2400  		Dupreveal__: &v,
  2401  	}
  2402  }
  2403  
  2404  func NewUICoinFlipErrorWithCommitmismatch(v UICoinFlipErrorParticipant) UICoinFlipError {
  2405  	return UICoinFlipError{
  2406  		Typ__:            UICoinFlipErrorTyp_COMMITMISMATCH,
  2407  		Commitmismatch__: &v,
  2408  	}
  2409  }
  2410  
  2411  func (o UICoinFlipError) DeepCopy() UICoinFlipError {
  2412  	return UICoinFlipError{
  2413  		Typ__: o.Typ__.DeepCopy(),
  2414  		Generic__: (func(x *string) *string {
  2415  			if x == nil {
  2416  				return nil
  2417  			}
  2418  			tmp := (*x)
  2419  			return &tmp
  2420  		})(o.Generic__),
  2421  		Absentee__: (func(x *UICoinFlipAbsenteeError) *UICoinFlipAbsenteeError {
  2422  			if x == nil {
  2423  				return nil
  2424  			}
  2425  			tmp := (*x).DeepCopy()
  2426  			return &tmp
  2427  		})(o.Absentee__),
  2428  		Dupreg__: (func(x *UICoinFlipErrorParticipant) *UICoinFlipErrorParticipant {
  2429  			if x == nil {
  2430  				return nil
  2431  			}
  2432  			tmp := (*x).DeepCopy()
  2433  			return &tmp
  2434  		})(o.Dupreg__),
  2435  		Dupcommitcomplete__: (func(x *UICoinFlipErrorParticipant) *UICoinFlipErrorParticipant {
  2436  			if x == nil {
  2437  				return nil
  2438  			}
  2439  			tmp := (*x).DeepCopy()
  2440  			return &tmp
  2441  		})(o.Dupcommitcomplete__),
  2442  		Dupreveal__: (func(x *UICoinFlipErrorParticipant) *UICoinFlipErrorParticipant {
  2443  			if x == nil {
  2444  				return nil
  2445  			}
  2446  			tmp := (*x).DeepCopy()
  2447  			return &tmp
  2448  		})(o.Dupreveal__),
  2449  		Commitmismatch__: (func(x *UICoinFlipErrorParticipant) *UICoinFlipErrorParticipant {
  2450  			if x == nil {
  2451  				return nil
  2452  			}
  2453  			tmp := (*x).DeepCopy()
  2454  			return &tmp
  2455  		})(o.Commitmismatch__),
  2456  	}
  2457  }
  2458  
  2459  type UICoinFlipResultTyp int
  2460  
  2461  const (
  2462  	UICoinFlipResultTyp_NUMBER  UICoinFlipResultTyp = 0
  2463  	UICoinFlipResultTyp_SHUFFLE UICoinFlipResultTyp = 1
  2464  	UICoinFlipResultTyp_DECK    UICoinFlipResultTyp = 2
  2465  	UICoinFlipResultTyp_HANDS   UICoinFlipResultTyp = 3
  2466  	UICoinFlipResultTyp_COIN    UICoinFlipResultTyp = 4
  2467  )
  2468  
  2469  func (o UICoinFlipResultTyp) DeepCopy() UICoinFlipResultTyp { return o }
  2470  
  2471  var UICoinFlipResultTypMap = map[string]UICoinFlipResultTyp{
  2472  	"NUMBER":  0,
  2473  	"SHUFFLE": 1,
  2474  	"DECK":    2,
  2475  	"HANDS":   3,
  2476  	"COIN":    4,
  2477  }
  2478  
  2479  var UICoinFlipResultTypRevMap = map[UICoinFlipResultTyp]string{
  2480  	0: "NUMBER",
  2481  	1: "SHUFFLE",
  2482  	2: "DECK",
  2483  	3: "HANDS",
  2484  	4: "COIN",
  2485  }
  2486  
  2487  func (e UICoinFlipResultTyp) String() string {
  2488  	if v, ok := UICoinFlipResultTypRevMap[e]; ok {
  2489  		return v
  2490  	}
  2491  	return fmt.Sprintf("%v", int(e))
  2492  }
  2493  
  2494  type UICoinFlipHand struct {
  2495  	Target string `codec:"target" json:"target"`
  2496  	Hand   []int  `codec:"hand" json:"hand"`
  2497  }
  2498  
  2499  func (o UICoinFlipHand) DeepCopy() UICoinFlipHand {
  2500  	return UICoinFlipHand{
  2501  		Target: o.Target,
  2502  		Hand: (func(x []int) []int {
  2503  			if x == nil {
  2504  				return nil
  2505  			}
  2506  			ret := make([]int, len(x))
  2507  			for i, v := range x {
  2508  				vCopy := v
  2509  				ret[i] = vCopy
  2510  			}
  2511  			return ret
  2512  		})(o.Hand),
  2513  	}
  2514  }
  2515  
  2516  type UICoinFlipResult struct {
  2517  	Typ__     UICoinFlipResultTyp `codec:"typ" json:"typ"`
  2518  	Number__  *string             `codec:"number,omitempty" json:"number,omitempty"`
  2519  	Shuffle__ *[]string           `codec:"shuffle,omitempty" json:"shuffle,omitempty"`
  2520  	Deck__    *[]int              `codec:"deck,omitempty" json:"deck,omitempty"`
  2521  	Hands__   *[]UICoinFlipHand   `codec:"hands,omitempty" json:"hands,omitempty"`
  2522  	Coin__    *bool               `codec:"coin,omitempty" json:"coin,omitempty"`
  2523  }
  2524  
  2525  func (o *UICoinFlipResult) Typ() (ret UICoinFlipResultTyp, err error) {
  2526  	switch o.Typ__ {
  2527  	case UICoinFlipResultTyp_NUMBER:
  2528  		if o.Number__ == nil {
  2529  			err = errors.New("unexpected nil value for Number__")
  2530  			return ret, err
  2531  		}
  2532  	case UICoinFlipResultTyp_SHUFFLE:
  2533  		if o.Shuffle__ == nil {
  2534  			err = errors.New("unexpected nil value for Shuffle__")
  2535  			return ret, err
  2536  		}
  2537  	case UICoinFlipResultTyp_DECK:
  2538  		if o.Deck__ == nil {
  2539  			err = errors.New("unexpected nil value for Deck__")
  2540  			return ret, err
  2541  		}
  2542  	case UICoinFlipResultTyp_HANDS:
  2543  		if o.Hands__ == nil {
  2544  			err = errors.New("unexpected nil value for Hands__")
  2545  			return ret, err
  2546  		}
  2547  	case UICoinFlipResultTyp_COIN:
  2548  		if o.Coin__ == nil {
  2549  			err = errors.New("unexpected nil value for Coin__")
  2550  			return ret, err
  2551  		}
  2552  	}
  2553  	return o.Typ__, nil
  2554  }
  2555  
  2556  func (o UICoinFlipResult) Number() (res string) {
  2557  	if o.Typ__ != UICoinFlipResultTyp_NUMBER {
  2558  		panic("wrong case accessed")
  2559  	}
  2560  	if o.Number__ == nil {
  2561  		return
  2562  	}
  2563  	return *o.Number__
  2564  }
  2565  
  2566  func (o UICoinFlipResult) Shuffle() (res []string) {
  2567  	if o.Typ__ != UICoinFlipResultTyp_SHUFFLE {
  2568  		panic("wrong case accessed")
  2569  	}
  2570  	if o.Shuffle__ == nil {
  2571  		return
  2572  	}
  2573  	return *o.Shuffle__
  2574  }
  2575  
  2576  func (o UICoinFlipResult) Deck() (res []int) {
  2577  	if o.Typ__ != UICoinFlipResultTyp_DECK {
  2578  		panic("wrong case accessed")
  2579  	}
  2580  	if o.Deck__ == nil {
  2581  		return
  2582  	}
  2583  	return *o.Deck__
  2584  }
  2585  
  2586  func (o UICoinFlipResult) Hands() (res []UICoinFlipHand) {
  2587  	if o.Typ__ != UICoinFlipResultTyp_HANDS {
  2588  		panic("wrong case accessed")
  2589  	}
  2590  	if o.Hands__ == nil {
  2591  		return
  2592  	}
  2593  	return *o.Hands__
  2594  }
  2595  
  2596  func (o UICoinFlipResult) Coin() (res bool) {
  2597  	if o.Typ__ != UICoinFlipResultTyp_COIN {
  2598  		panic("wrong case accessed")
  2599  	}
  2600  	if o.Coin__ == nil {
  2601  		return
  2602  	}
  2603  	return *o.Coin__
  2604  }
  2605  
  2606  func NewUICoinFlipResultWithNumber(v string) UICoinFlipResult {
  2607  	return UICoinFlipResult{
  2608  		Typ__:    UICoinFlipResultTyp_NUMBER,
  2609  		Number__: &v,
  2610  	}
  2611  }
  2612  
  2613  func NewUICoinFlipResultWithShuffle(v []string) UICoinFlipResult {
  2614  	return UICoinFlipResult{
  2615  		Typ__:     UICoinFlipResultTyp_SHUFFLE,
  2616  		Shuffle__: &v,
  2617  	}
  2618  }
  2619  
  2620  func NewUICoinFlipResultWithDeck(v []int) UICoinFlipResult {
  2621  	return UICoinFlipResult{
  2622  		Typ__:  UICoinFlipResultTyp_DECK,
  2623  		Deck__: &v,
  2624  	}
  2625  }
  2626  
  2627  func NewUICoinFlipResultWithHands(v []UICoinFlipHand) UICoinFlipResult {
  2628  	return UICoinFlipResult{
  2629  		Typ__:   UICoinFlipResultTyp_HANDS,
  2630  		Hands__: &v,
  2631  	}
  2632  }
  2633  
  2634  func NewUICoinFlipResultWithCoin(v bool) UICoinFlipResult {
  2635  	return UICoinFlipResult{
  2636  		Typ__:  UICoinFlipResultTyp_COIN,
  2637  		Coin__: &v,
  2638  	}
  2639  }
  2640  
  2641  func (o UICoinFlipResult) DeepCopy() UICoinFlipResult {
  2642  	return UICoinFlipResult{
  2643  		Typ__: o.Typ__.DeepCopy(),
  2644  		Number__: (func(x *string) *string {
  2645  			if x == nil {
  2646  				return nil
  2647  			}
  2648  			tmp := (*x)
  2649  			return &tmp
  2650  		})(o.Number__),
  2651  		Shuffle__: (func(x *[]string) *[]string {
  2652  			if x == nil {
  2653  				return nil
  2654  			}
  2655  			tmp := (func(x []string) []string {
  2656  				if x == nil {
  2657  					return nil
  2658  				}
  2659  				ret := make([]string, len(x))
  2660  				for i, v := range x {
  2661  					vCopy := v
  2662  					ret[i] = vCopy
  2663  				}
  2664  				return ret
  2665  			})((*x))
  2666  			return &tmp
  2667  		})(o.Shuffle__),
  2668  		Deck__: (func(x *[]int) *[]int {
  2669  			if x == nil {
  2670  				return nil
  2671  			}
  2672  			tmp := (func(x []int) []int {
  2673  				if x == nil {
  2674  					return nil
  2675  				}
  2676  				ret := make([]int, len(x))
  2677  				for i, v := range x {
  2678  					vCopy := v
  2679  					ret[i] = vCopy
  2680  				}
  2681  				return ret
  2682  			})((*x))
  2683  			return &tmp
  2684  		})(o.Deck__),
  2685  		Hands__: (func(x *[]UICoinFlipHand) *[]UICoinFlipHand {
  2686  			if x == nil {
  2687  				return nil
  2688  			}
  2689  			tmp := (func(x []UICoinFlipHand) []UICoinFlipHand {
  2690  				if x == nil {
  2691  					return nil
  2692  				}
  2693  				ret := make([]UICoinFlipHand, len(x))
  2694  				for i, v := range x {
  2695  					vCopy := v.DeepCopy()
  2696  					ret[i] = vCopy
  2697  				}
  2698  				return ret
  2699  			})((*x))
  2700  			return &tmp
  2701  		})(o.Hands__),
  2702  		Coin__: (func(x *bool) *bool {
  2703  			if x == nil {
  2704  				return nil
  2705  			}
  2706  			tmp := (*x)
  2707  			return &tmp
  2708  		})(o.Coin__),
  2709  	}
  2710  }
  2711  
  2712  type UICoinFlipParticipant struct {
  2713  	Uid        string  `codec:"uid" json:"uid"`
  2714  	DeviceID   string  `codec:"deviceID" json:"deviceID"`
  2715  	Username   string  `codec:"username" json:"username"`
  2716  	DeviceName string  `codec:"deviceName" json:"deviceName"`
  2717  	Commitment string  `codec:"commitment" json:"commitment"`
  2718  	Reveal     *string `codec:"reveal,omitempty" json:"reveal,omitempty"`
  2719  }
  2720  
  2721  func (o UICoinFlipParticipant) DeepCopy() UICoinFlipParticipant {
  2722  	return UICoinFlipParticipant{
  2723  		Uid:        o.Uid,
  2724  		DeviceID:   o.DeviceID,
  2725  		Username:   o.Username,
  2726  		DeviceName: o.DeviceName,
  2727  		Commitment: o.Commitment,
  2728  		Reveal: (func(x *string) *string {
  2729  			if x == nil {
  2730  				return nil
  2731  			}
  2732  			tmp := (*x)
  2733  			return &tmp
  2734  		})(o.Reveal),
  2735  	}
  2736  }
  2737  
  2738  type UICoinFlipStatus struct {
  2739  	GameID                  FlipGameIDStr           `codec:"gameID" json:"gameID"`
  2740  	Phase                   UICoinFlipPhase         `codec:"phase" json:"phase"`
  2741  	ProgressText            string                  `codec:"progressText" json:"progressText"`
  2742  	ResultText              string                  `codec:"resultText" json:"resultText"`
  2743  	CommitmentVisualization string                  `codec:"commitmentVisualization" json:"commitmentVisualization"`
  2744  	RevealVisualization     string                  `codec:"revealVisualization" json:"revealVisualization"`
  2745  	Participants            []UICoinFlipParticipant `codec:"participants" json:"participants"`
  2746  	ErrorInfo               *UICoinFlipError        `codec:"errorInfo,omitempty" json:"errorInfo,omitempty"`
  2747  	ResultInfo              *UICoinFlipResult       `codec:"resultInfo,omitempty" json:"resultInfo,omitempty"`
  2748  }
  2749  
  2750  func (o UICoinFlipStatus) DeepCopy() UICoinFlipStatus {
  2751  	return UICoinFlipStatus{
  2752  		GameID:                  o.GameID.DeepCopy(),
  2753  		Phase:                   o.Phase.DeepCopy(),
  2754  		ProgressText:            o.ProgressText,
  2755  		ResultText:              o.ResultText,
  2756  		CommitmentVisualization: o.CommitmentVisualization,
  2757  		RevealVisualization:     o.RevealVisualization,
  2758  		Participants: (func(x []UICoinFlipParticipant) []UICoinFlipParticipant {
  2759  			if x == nil {
  2760  				return nil
  2761  			}
  2762  			ret := make([]UICoinFlipParticipant, len(x))
  2763  			for i, v := range x {
  2764  				vCopy := v.DeepCopy()
  2765  				ret[i] = vCopy
  2766  			}
  2767  			return ret
  2768  		})(o.Participants),
  2769  		ErrorInfo: (func(x *UICoinFlipError) *UICoinFlipError {
  2770  			if x == nil {
  2771  				return nil
  2772  			}
  2773  			tmp := (*x).DeepCopy()
  2774  			return &tmp
  2775  		})(o.ErrorInfo),
  2776  		ResultInfo: (func(x *UICoinFlipResult) *UICoinFlipResult {
  2777  			if x == nil {
  2778  				return nil
  2779  			}
  2780  			tmp := (*x).DeepCopy()
  2781  			return &tmp
  2782  		})(o.ResultInfo),
  2783  	}
  2784  }
  2785  
  2786  type UICommandMarkdown struct {
  2787  	Body  string  `codec:"body" json:"body"`
  2788  	Title *string `codec:"title,omitempty" json:"title,omitempty"`
  2789  }
  2790  
  2791  func (o UICommandMarkdown) DeepCopy() UICommandMarkdown {
  2792  	return UICommandMarkdown{
  2793  		Body: o.Body,
  2794  		Title: (func(x *string) *string {
  2795  			if x == nil {
  2796  				return nil
  2797  			}
  2798  			tmp := (*x)
  2799  			return &tmp
  2800  		})(o.Title),
  2801  	}
  2802  }
  2803  
  2804  type LocationWatchID uint64
  2805  
  2806  func (o LocationWatchID) DeepCopy() LocationWatchID {
  2807  	return o
  2808  }
  2809  
  2810  type UIWatchPositionPerm int
  2811  
  2812  const (
  2813  	UIWatchPositionPerm_BASE   UIWatchPositionPerm = 0
  2814  	UIWatchPositionPerm_ALWAYS UIWatchPositionPerm = 1
  2815  )
  2816  
  2817  func (o UIWatchPositionPerm) DeepCopy() UIWatchPositionPerm { return o }
  2818  
  2819  var UIWatchPositionPermMap = map[string]UIWatchPositionPerm{
  2820  	"BASE":   0,
  2821  	"ALWAYS": 1,
  2822  }
  2823  
  2824  var UIWatchPositionPermRevMap = map[UIWatchPositionPerm]string{
  2825  	0: "BASE",
  2826  	1: "ALWAYS",
  2827  }
  2828  
  2829  func (e UIWatchPositionPerm) String() string {
  2830  	if v, ok := UIWatchPositionPermRevMap[e]; ok {
  2831  		return v
  2832  	}
  2833  	return fmt.Sprintf("%v", int(e))
  2834  }
  2835  
  2836  type UICommandStatusDisplayTyp int
  2837  
  2838  const (
  2839  	UICommandStatusDisplayTyp_STATUS  UICommandStatusDisplayTyp = 0
  2840  	UICommandStatusDisplayTyp_WARNING UICommandStatusDisplayTyp = 1
  2841  	UICommandStatusDisplayTyp_ERROR   UICommandStatusDisplayTyp = 2
  2842  )
  2843  
  2844  func (o UICommandStatusDisplayTyp) DeepCopy() UICommandStatusDisplayTyp { return o }
  2845  
  2846  var UICommandStatusDisplayTypMap = map[string]UICommandStatusDisplayTyp{
  2847  	"STATUS":  0,
  2848  	"WARNING": 1,
  2849  	"ERROR":   2,
  2850  }
  2851  
  2852  var UICommandStatusDisplayTypRevMap = map[UICommandStatusDisplayTyp]string{
  2853  	0: "STATUS",
  2854  	1: "WARNING",
  2855  	2: "ERROR",
  2856  }
  2857  
  2858  func (e UICommandStatusDisplayTyp) String() string {
  2859  	if v, ok := UICommandStatusDisplayTypRevMap[e]; ok {
  2860  		return v
  2861  	}
  2862  	return fmt.Sprintf("%v", int(e))
  2863  }
  2864  
  2865  type UICommandStatusActionTyp int
  2866  
  2867  const (
  2868  	UICommandStatusActionTyp_APPSETTINGS UICommandStatusActionTyp = 0
  2869  )
  2870  
  2871  func (o UICommandStatusActionTyp) DeepCopy() UICommandStatusActionTyp { return o }
  2872  
  2873  var UICommandStatusActionTypMap = map[string]UICommandStatusActionTyp{
  2874  	"APPSETTINGS": 0,
  2875  }
  2876  
  2877  var UICommandStatusActionTypRevMap = map[UICommandStatusActionTyp]string{
  2878  	0: "APPSETTINGS",
  2879  }
  2880  
  2881  func (e UICommandStatusActionTyp) String() string {
  2882  	if v, ok := UICommandStatusActionTypRevMap[e]; ok {
  2883  		return v
  2884  	}
  2885  	return fmt.Sprintf("%v", int(e))
  2886  }
  2887  
  2888  type UIBotCommandsUpdateStatusTyp int
  2889  
  2890  const (
  2891  	UIBotCommandsUpdateStatusTyp_UPTODATE UIBotCommandsUpdateStatusTyp = 0
  2892  	UIBotCommandsUpdateStatusTyp_UPDATING UIBotCommandsUpdateStatusTyp = 1
  2893  	UIBotCommandsUpdateStatusTyp_FAILED   UIBotCommandsUpdateStatusTyp = 2
  2894  	UIBotCommandsUpdateStatusTyp_BLANK    UIBotCommandsUpdateStatusTyp = 3
  2895  )
  2896  
  2897  func (o UIBotCommandsUpdateStatusTyp) DeepCopy() UIBotCommandsUpdateStatusTyp { return o }
  2898  
  2899  var UIBotCommandsUpdateStatusTypMap = map[string]UIBotCommandsUpdateStatusTyp{
  2900  	"UPTODATE": 0,
  2901  	"UPDATING": 1,
  2902  	"FAILED":   2,
  2903  	"BLANK":    3,
  2904  }
  2905  
  2906  var UIBotCommandsUpdateStatusTypRevMap = map[UIBotCommandsUpdateStatusTyp]string{
  2907  	0: "UPTODATE",
  2908  	1: "UPDATING",
  2909  	2: "FAILED",
  2910  	3: "BLANK",
  2911  }
  2912  
  2913  func (e UIBotCommandsUpdateStatusTyp) String() string {
  2914  	if v, ok := UIBotCommandsUpdateStatusTypRevMap[e]; ok {
  2915  		return v
  2916  	}
  2917  	return fmt.Sprintf("%v", int(e))
  2918  }
  2919  
  2920  type UIBotCommandsUpdateSettings struct {
  2921  	Settings map[string]keybase1.TeamBotSettings `codec:"settings" json:"settings"`
  2922  }
  2923  
  2924  func (o UIBotCommandsUpdateSettings) DeepCopy() UIBotCommandsUpdateSettings {
  2925  	return UIBotCommandsUpdateSettings{
  2926  		Settings: (func(x map[string]keybase1.TeamBotSettings) map[string]keybase1.TeamBotSettings {
  2927  			if x == nil {
  2928  				return nil
  2929  			}
  2930  			ret := make(map[string]keybase1.TeamBotSettings, len(x))
  2931  			for k, v := range x {
  2932  				kCopy := k
  2933  				vCopy := v.DeepCopy()
  2934  				ret[kCopy] = vCopy
  2935  			}
  2936  			return ret
  2937  		})(o.Settings),
  2938  	}
  2939  }
  2940  
  2941  type UIBotCommandsUpdateStatus struct {
  2942  	Typ__      UIBotCommandsUpdateStatusTyp `codec:"typ" json:"typ"`
  2943  	Uptodate__ *UIBotCommandsUpdateSettings `codec:"uptodate,omitempty" json:"uptodate,omitempty"`
  2944  }
  2945  
  2946  func (o *UIBotCommandsUpdateStatus) Typ() (ret UIBotCommandsUpdateStatusTyp, err error) {
  2947  	switch o.Typ__ {
  2948  	case UIBotCommandsUpdateStatusTyp_UPTODATE:
  2949  		if o.Uptodate__ == nil {
  2950  			err = errors.New("unexpected nil value for Uptodate__")
  2951  			return ret, err
  2952  		}
  2953  	}
  2954  	return o.Typ__, nil
  2955  }
  2956  
  2957  func (o UIBotCommandsUpdateStatus) Uptodate() (res UIBotCommandsUpdateSettings) {
  2958  	if o.Typ__ != UIBotCommandsUpdateStatusTyp_UPTODATE {
  2959  		panic("wrong case accessed")
  2960  	}
  2961  	if o.Uptodate__ == nil {
  2962  		return
  2963  	}
  2964  	return *o.Uptodate__
  2965  }
  2966  
  2967  func NewUIBotCommandsUpdateStatusWithUptodate(v UIBotCommandsUpdateSettings) UIBotCommandsUpdateStatus {
  2968  	return UIBotCommandsUpdateStatus{
  2969  		Typ__:      UIBotCommandsUpdateStatusTyp_UPTODATE,
  2970  		Uptodate__: &v,
  2971  	}
  2972  }
  2973  
  2974  func NewUIBotCommandsUpdateStatusWithUpdating() UIBotCommandsUpdateStatus {
  2975  	return UIBotCommandsUpdateStatus{
  2976  		Typ__: UIBotCommandsUpdateStatusTyp_UPDATING,
  2977  	}
  2978  }
  2979  
  2980  func NewUIBotCommandsUpdateStatusWithFailed() UIBotCommandsUpdateStatus {
  2981  	return UIBotCommandsUpdateStatus{
  2982  		Typ__: UIBotCommandsUpdateStatusTyp_FAILED,
  2983  	}
  2984  }
  2985  
  2986  func NewUIBotCommandsUpdateStatusWithBlank() UIBotCommandsUpdateStatus {
  2987  	return UIBotCommandsUpdateStatus{
  2988  		Typ__: UIBotCommandsUpdateStatusTyp_BLANK,
  2989  	}
  2990  }
  2991  
  2992  func (o UIBotCommandsUpdateStatus) DeepCopy() UIBotCommandsUpdateStatus {
  2993  	return UIBotCommandsUpdateStatus{
  2994  		Typ__: o.Typ__.DeepCopy(),
  2995  		Uptodate__: (func(x *UIBotCommandsUpdateSettings) *UIBotCommandsUpdateSettings {
  2996  			if x == nil {
  2997  				return nil
  2998  			}
  2999  			tmp := (*x).DeepCopy()
  3000  			return &tmp
  3001  		})(o.Uptodate__),
  3002  	}
  3003  }
  3004  
  3005  type ChatInboxLayoutArg struct {
  3006  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3007  	Layout    string `codec:"layout" json:"layout"`
  3008  }
  3009  
  3010  type ChatInboxUnverifiedArg struct {
  3011  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3012  	Inbox     string `codec:"inbox" json:"inbox"`
  3013  }
  3014  
  3015  type ChatInboxConversationArg struct {
  3016  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3017  	Convs     string `codec:"convs" json:"convs"`
  3018  }
  3019  
  3020  type ChatInboxFailedArg struct {
  3021  	SessionID int              `codec:"sessionID" json:"sessionID"`
  3022  	ConvID    ConversationID   `codec:"convID" json:"convID"`
  3023  	Error     InboxUIItemError `codec:"error" json:"error"`
  3024  }
  3025  
  3026  type ChatThreadCachedArg struct {
  3027  	SessionID int     `codec:"sessionID" json:"sessionID"`
  3028  	Thread    *string `codec:"thread,omitempty" json:"thread,omitempty"`
  3029  }
  3030  
  3031  type ChatThreadFullArg struct {
  3032  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3033  	Thread    string `codec:"thread" json:"thread"`
  3034  }
  3035  
  3036  type ChatThreadStatusArg struct {
  3037  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3038  	Status    UIChatThreadStatus `codec:"status" json:"status"`
  3039  }
  3040  
  3041  type ChatSearchHitArg struct {
  3042  	SessionID int           `codec:"sessionID" json:"sessionID"`
  3043  	SearchHit ChatSearchHit `codec:"searchHit" json:"searchHit"`
  3044  }
  3045  
  3046  type ChatSearchDoneArg struct {
  3047  	SessionID int `codec:"sessionID" json:"sessionID"`
  3048  	NumHits   int `codec:"numHits" json:"numHits"`
  3049  }
  3050  
  3051  type ChatSearchInboxStartArg struct {
  3052  	SessionID int `codec:"sessionID" json:"sessionID"`
  3053  }
  3054  
  3055  type ChatSearchInboxHitArg struct {
  3056  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3057  	SearchHit ChatSearchInboxHit `codec:"searchHit" json:"searchHit"`
  3058  }
  3059  
  3060  type ChatSearchInboxDoneArg struct {
  3061  	SessionID int                 `codec:"sessionID" json:"sessionID"`
  3062  	Res       ChatSearchInboxDone `codec:"res" json:"res"`
  3063  }
  3064  
  3065  type ChatSearchIndexStatusArg struct {
  3066  	SessionID int                   `codec:"sessionID" json:"sessionID"`
  3067  	Status    ChatSearchIndexStatus `codec:"status" json:"status"`
  3068  }
  3069  
  3070  type ChatSearchConvHitsArg struct {
  3071  	SessionID int                  `codec:"sessionID" json:"sessionID"`
  3072  	Hits      UIChatSearchConvHits `codec:"hits" json:"hits"`
  3073  }
  3074  
  3075  type ChatSearchTeamHitsArg struct {
  3076  	SessionID int                  `codec:"sessionID" json:"sessionID"`
  3077  	Hits      UIChatSearchTeamHits `codec:"hits" json:"hits"`
  3078  }
  3079  
  3080  type ChatSearchBotHitsArg struct {
  3081  	SessionID int                 `codec:"sessionID" json:"sessionID"`
  3082  	Hits      UIChatSearchBotHits `codec:"hits" json:"hits"`
  3083  }
  3084  
  3085  type ChatConfirmChannelDeleteArg struct {
  3086  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3087  	Channel   string `codec:"channel" json:"channel"`
  3088  }
  3089  
  3090  type ChatStellarShowConfirmArg struct {
  3091  	SessionID int `codec:"sessionID" json:"sessionID"`
  3092  }
  3093  
  3094  type ChatStellarDataConfirmArg struct {
  3095  	SessionID int                  `codec:"sessionID" json:"sessionID"`
  3096  	Summary   UIChatPaymentSummary `codec:"summary" json:"summary"`
  3097  }
  3098  
  3099  type ChatStellarDataErrorArg struct {
  3100  	SessionID int             `codec:"sessionID" json:"sessionID"`
  3101  	Error     keybase1.Status `codec:"error" json:"error"`
  3102  }
  3103  
  3104  type ChatStellarDoneArg struct {
  3105  	SessionID int  `codec:"sessionID" json:"sessionID"`
  3106  	Canceled  bool `codec:"canceled" json:"canceled"`
  3107  }
  3108  
  3109  type ChatGiphySearchResultsArg struct {
  3110  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3111  	ConvID    ConvIDStr          `codec:"convID" json:"convID"`
  3112  	Results   GiphySearchResults `codec:"results" json:"results"`
  3113  }
  3114  
  3115  type ChatGiphyToggleResultWindowArg struct {
  3116  	SessionID  int       `codec:"sessionID" json:"sessionID"`
  3117  	ConvID     ConvIDStr `codec:"convID" json:"convID"`
  3118  	Show       bool      `codec:"show" json:"show"`
  3119  	ClearInput bool      `codec:"clearInput" json:"clearInput"`
  3120  }
  3121  
  3122  type ChatShowManageChannelsArg struct {
  3123  	SessionID int    `codec:"sessionID" json:"sessionID"`
  3124  	Teamname  string `codec:"teamname" json:"teamname"`
  3125  }
  3126  
  3127  type ChatCoinFlipStatusArg struct {
  3128  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3129  	Statuses  []UICoinFlipStatus `codec:"statuses" json:"statuses"`
  3130  }
  3131  
  3132  type ChatCommandMarkdownArg struct {
  3133  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3134  	ConvID    ConvIDStr          `codec:"convID" json:"convID"`
  3135  	Md        *UICommandMarkdown `codec:"md,omitempty" json:"md,omitempty"`
  3136  }
  3137  
  3138  type ChatMaybeMentionUpdateArg struct {
  3139  	SessionID int                `codec:"sessionID" json:"sessionID"`
  3140  	TeamName  string             `codec:"teamName" json:"teamName"`
  3141  	Channel   string             `codec:"channel" json:"channel"`
  3142  	Info      UIMaybeMentionInfo `codec:"info" json:"info"`
  3143  }
  3144  
  3145  type ChatLoadGalleryHitArg struct {
  3146  	SessionID int       `codec:"sessionID" json:"sessionID"`
  3147  	Message   UIMessage `codec:"message" json:"message"`
  3148  }
  3149  
  3150  type ChatWatchPositionArg struct {
  3151  	SessionID int                 `codec:"sessionID" json:"sessionID"`
  3152  	ConvID    ConversationID      `codec:"convID" json:"convID"`
  3153  	Perm      UIWatchPositionPerm `codec:"perm" json:"perm"`
  3154  }
  3155  
  3156  type ChatClearWatchArg struct {
  3157  	SessionID int             `codec:"sessionID" json:"sessionID"`
  3158  	Id        LocationWatchID `codec:"id" json:"id"`
  3159  }
  3160  
  3161  type ChatCommandStatusArg struct {
  3162  	SessionID   int                        `codec:"sessionID" json:"sessionID"`
  3163  	ConvID      ConvIDStr                  `codec:"convID" json:"convID"`
  3164  	DisplayText string                     `codec:"displayText" json:"displayText"`
  3165  	Typ         UICommandStatusDisplayTyp  `codec:"typ" json:"typ"`
  3166  	Actions     []UICommandStatusActionTyp `codec:"actions" json:"actions"`
  3167  }
  3168  
  3169  type ChatBotCommandsUpdateStatusArg struct {
  3170  	SessionID int                       `codec:"sessionID" json:"sessionID"`
  3171  	ConvID    ConvIDStr                 `codec:"convID" json:"convID"`
  3172  	Status    UIBotCommandsUpdateStatus `codec:"status" json:"status"`
  3173  }
  3174  
  3175  type TriggerContactSyncArg struct {
  3176  	SessionID int `codec:"sessionID" json:"sessionID"`
  3177  }
  3178  
  3179  type ChatUiInterface interface {
  3180  	ChatInboxLayout(context.Context, ChatInboxLayoutArg) error
  3181  	ChatInboxUnverified(context.Context, ChatInboxUnverifiedArg) error
  3182  	ChatInboxConversation(context.Context, ChatInboxConversationArg) error
  3183  	ChatInboxFailed(context.Context, ChatInboxFailedArg) error
  3184  	ChatThreadCached(context.Context, ChatThreadCachedArg) error
  3185  	ChatThreadFull(context.Context, ChatThreadFullArg) error
  3186  	ChatThreadStatus(context.Context, ChatThreadStatusArg) error
  3187  	ChatSearchHit(context.Context, ChatSearchHitArg) error
  3188  	ChatSearchDone(context.Context, ChatSearchDoneArg) error
  3189  	ChatSearchInboxStart(context.Context, int) error
  3190  	ChatSearchInboxHit(context.Context, ChatSearchInboxHitArg) error
  3191  	ChatSearchInboxDone(context.Context, ChatSearchInboxDoneArg) error
  3192  	ChatSearchIndexStatus(context.Context, ChatSearchIndexStatusArg) error
  3193  	ChatSearchConvHits(context.Context, ChatSearchConvHitsArg) error
  3194  	ChatSearchTeamHits(context.Context, ChatSearchTeamHitsArg) error
  3195  	ChatSearchBotHits(context.Context, ChatSearchBotHitsArg) error
  3196  	ChatConfirmChannelDelete(context.Context, ChatConfirmChannelDeleteArg) (bool, error)
  3197  	ChatStellarShowConfirm(context.Context, int) error
  3198  	ChatStellarDataConfirm(context.Context, ChatStellarDataConfirmArg) (bool, error)
  3199  	ChatStellarDataError(context.Context, ChatStellarDataErrorArg) (bool, error)
  3200  	ChatStellarDone(context.Context, ChatStellarDoneArg) error
  3201  	ChatGiphySearchResults(context.Context, ChatGiphySearchResultsArg) error
  3202  	ChatGiphyToggleResultWindow(context.Context, ChatGiphyToggleResultWindowArg) error
  3203  	ChatShowManageChannels(context.Context, ChatShowManageChannelsArg) error
  3204  	ChatCoinFlipStatus(context.Context, ChatCoinFlipStatusArg) error
  3205  	ChatCommandMarkdown(context.Context, ChatCommandMarkdownArg) error
  3206  	ChatMaybeMentionUpdate(context.Context, ChatMaybeMentionUpdateArg) error
  3207  	ChatLoadGalleryHit(context.Context, ChatLoadGalleryHitArg) error
  3208  	ChatWatchPosition(context.Context, ChatWatchPositionArg) (LocationWatchID, error)
  3209  	ChatClearWatch(context.Context, ChatClearWatchArg) error
  3210  	ChatCommandStatus(context.Context, ChatCommandStatusArg) error
  3211  	ChatBotCommandsUpdateStatus(context.Context, ChatBotCommandsUpdateStatusArg) error
  3212  	TriggerContactSync(context.Context, int) error
  3213  }
  3214  
  3215  func ChatUiProtocol(i ChatUiInterface) rpc.Protocol {
  3216  	return rpc.Protocol{
  3217  		Name: "chat.1.chatUi",
  3218  		Methods: map[string]rpc.ServeHandlerDescription{
  3219  			"chatInboxLayout": {
  3220  				MakeArg: func() interface{} {
  3221  					var ret [1]ChatInboxLayoutArg
  3222  					return &ret
  3223  				},
  3224  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3225  					typedArgs, ok := args.(*[1]ChatInboxLayoutArg)
  3226  					if !ok {
  3227  						err = rpc.NewTypeError((*[1]ChatInboxLayoutArg)(nil), args)
  3228  						return
  3229  					}
  3230  					err = i.ChatInboxLayout(ctx, typedArgs[0])
  3231  					return
  3232  				},
  3233  			},
  3234  			"chatInboxUnverified": {
  3235  				MakeArg: func() interface{} {
  3236  					var ret [1]ChatInboxUnverifiedArg
  3237  					return &ret
  3238  				},
  3239  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3240  					typedArgs, ok := args.(*[1]ChatInboxUnverifiedArg)
  3241  					if !ok {
  3242  						err = rpc.NewTypeError((*[1]ChatInboxUnverifiedArg)(nil), args)
  3243  						return
  3244  					}
  3245  					err = i.ChatInboxUnverified(ctx, typedArgs[0])
  3246  					return
  3247  				},
  3248  			},
  3249  			"chatInboxConversation": {
  3250  				MakeArg: func() interface{} {
  3251  					var ret [1]ChatInboxConversationArg
  3252  					return &ret
  3253  				},
  3254  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3255  					typedArgs, ok := args.(*[1]ChatInboxConversationArg)
  3256  					if !ok {
  3257  						err = rpc.NewTypeError((*[1]ChatInboxConversationArg)(nil), args)
  3258  						return
  3259  					}
  3260  					err = i.ChatInboxConversation(ctx, typedArgs[0])
  3261  					return
  3262  				},
  3263  			},
  3264  			"chatInboxFailed": {
  3265  				MakeArg: func() interface{} {
  3266  					var ret [1]ChatInboxFailedArg
  3267  					return &ret
  3268  				},
  3269  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3270  					typedArgs, ok := args.(*[1]ChatInboxFailedArg)
  3271  					if !ok {
  3272  						err = rpc.NewTypeError((*[1]ChatInboxFailedArg)(nil), args)
  3273  						return
  3274  					}
  3275  					err = i.ChatInboxFailed(ctx, typedArgs[0])
  3276  					return
  3277  				},
  3278  			},
  3279  			"chatThreadCached": {
  3280  				MakeArg: func() interface{} {
  3281  					var ret [1]ChatThreadCachedArg
  3282  					return &ret
  3283  				},
  3284  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3285  					typedArgs, ok := args.(*[1]ChatThreadCachedArg)
  3286  					if !ok {
  3287  						err = rpc.NewTypeError((*[1]ChatThreadCachedArg)(nil), args)
  3288  						return
  3289  					}
  3290  					err = i.ChatThreadCached(ctx, typedArgs[0])
  3291  					return
  3292  				},
  3293  			},
  3294  			"chatThreadFull": {
  3295  				MakeArg: func() interface{} {
  3296  					var ret [1]ChatThreadFullArg
  3297  					return &ret
  3298  				},
  3299  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3300  					typedArgs, ok := args.(*[1]ChatThreadFullArg)
  3301  					if !ok {
  3302  						err = rpc.NewTypeError((*[1]ChatThreadFullArg)(nil), args)
  3303  						return
  3304  					}
  3305  					err = i.ChatThreadFull(ctx, typedArgs[0])
  3306  					return
  3307  				},
  3308  			},
  3309  			"chatThreadStatus": {
  3310  				MakeArg: func() interface{} {
  3311  					var ret [1]ChatThreadStatusArg
  3312  					return &ret
  3313  				},
  3314  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3315  					typedArgs, ok := args.(*[1]ChatThreadStatusArg)
  3316  					if !ok {
  3317  						err = rpc.NewTypeError((*[1]ChatThreadStatusArg)(nil), args)
  3318  						return
  3319  					}
  3320  					err = i.ChatThreadStatus(ctx, typedArgs[0])
  3321  					return
  3322  				},
  3323  			},
  3324  			"chatSearchHit": {
  3325  				MakeArg: func() interface{} {
  3326  					var ret [1]ChatSearchHitArg
  3327  					return &ret
  3328  				},
  3329  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3330  					typedArgs, ok := args.(*[1]ChatSearchHitArg)
  3331  					if !ok {
  3332  						err = rpc.NewTypeError((*[1]ChatSearchHitArg)(nil), args)
  3333  						return
  3334  					}
  3335  					err = i.ChatSearchHit(ctx, typedArgs[0])
  3336  					return
  3337  				},
  3338  			},
  3339  			"chatSearchDone": {
  3340  				MakeArg: func() interface{} {
  3341  					var ret [1]ChatSearchDoneArg
  3342  					return &ret
  3343  				},
  3344  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3345  					typedArgs, ok := args.(*[1]ChatSearchDoneArg)
  3346  					if !ok {
  3347  						err = rpc.NewTypeError((*[1]ChatSearchDoneArg)(nil), args)
  3348  						return
  3349  					}
  3350  					err = i.ChatSearchDone(ctx, typedArgs[0])
  3351  					return
  3352  				},
  3353  			},
  3354  			"chatSearchInboxStart": {
  3355  				MakeArg: func() interface{} {
  3356  					var ret [1]ChatSearchInboxStartArg
  3357  					return &ret
  3358  				},
  3359  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3360  					typedArgs, ok := args.(*[1]ChatSearchInboxStartArg)
  3361  					if !ok {
  3362  						err = rpc.NewTypeError((*[1]ChatSearchInboxStartArg)(nil), args)
  3363  						return
  3364  					}
  3365  					err = i.ChatSearchInboxStart(ctx, typedArgs[0].SessionID)
  3366  					return
  3367  				},
  3368  			},
  3369  			"chatSearchInboxHit": {
  3370  				MakeArg: func() interface{} {
  3371  					var ret [1]ChatSearchInboxHitArg
  3372  					return &ret
  3373  				},
  3374  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3375  					typedArgs, ok := args.(*[1]ChatSearchInboxHitArg)
  3376  					if !ok {
  3377  						err = rpc.NewTypeError((*[1]ChatSearchInboxHitArg)(nil), args)
  3378  						return
  3379  					}
  3380  					err = i.ChatSearchInboxHit(ctx, typedArgs[0])
  3381  					return
  3382  				},
  3383  			},
  3384  			"chatSearchInboxDone": {
  3385  				MakeArg: func() interface{} {
  3386  					var ret [1]ChatSearchInboxDoneArg
  3387  					return &ret
  3388  				},
  3389  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3390  					typedArgs, ok := args.(*[1]ChatSearchInboxDoneArg)
  3391  					if !ok {
  3392  						err = rpc.NewTypeError((*[1]ChatSearchInboxDoneArg)(nil), args)
  3393  						return
  3394  					}
  3395  					err = i.ChatSearchInboxDone(ctx, typedArgs[0])
  3396  					return
  3397  				},
  3398  			},
  3399  			"chatSearchIndexStatus": {
  3400  				MakeArg: func() interface{} {
  3401  					var ret [1]ChatSearchIndexStatusArg
  3402  					return &ret
  3403  				},
  3404  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3405  					typedArgs, ok := args.(*[1]ChatSearchIndexStatusArg)
  3406  					if !ok {
  3407  						err = rpc.NewTypeError((*[1]ChatSearchIndexStatusArg)(nil), args)
  3408  						return
  3409  					}
  3410  					err = i.ChatSearchIndexStatus(ctx, typedArgs[0])
  3411  					return
  3412  				},
  3413  			},
  3414  			"chatSearchConvHits": {
  3415  				MakeArg: func() interface{} {
  3416  					var ret [1]ChatSearchConvHitsArg
  3417  					return &ret
  3418  				},
  3419  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3420  					typedArgs, ok := args.(*[1]ChatSearchConvHitsArg)
  3421  					if !ok {
  3422  						err = rpc.NewTypeError((*[1]ChatSearchConvHitsArg)(nil), args)
  3423  						return
  3424  					}
  3425  					err = i.ChatSearchConvHits(ctx, typedArgs[0])
  3426  					return
  3427  				},
  3428  			},
  3429  			"chatSearchTeamHits": {
  3430  				MakeArg: func() interface{} {
  3431  					var ret [1]ChatSearchTeamHitsArg
  3432  					return &ret
  3433  				},
  3434  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3435  					typedArgs, ok := args.(*[1]ChatSearchTeamHitsArg)
  3436  					if !ok {
  3437  						err = rpc.NewTypeError((*[1]ChatSearchTeamHitsArg)(nil), args)
  3438  						return
  3439  					}
  3440  					err = i.ChatSearchTeamHits(ctx, typedArgs[0])
  3441  					return
  3442  				},
  3443  			},
  3444  			"chatSearchBotHits": {
  3445  				MakeArg: func() interface{} {
  3446  					var ret [1]ChatSearchBotHitsArg
  3447  					return &ret
  3448  				},
  3449  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3450  					typedArgs, ok := args.(*[1]ChatSearchBotHitsArg)
  3451  					if !ok {
  3452  						err = rpc.NewTypeError((*[1]ChatSearchBotHitsArg)(nil), args)
  3453  						return
  3454  					}
  3455  					err = i.ChatSearchBotHits(ctx, typedArgs[0])
  3456  					return
  3457  				},
  3458  			},
  3459  			"chatConfirmChannelDelete": {
  3460  				MakeArg: func() interface{} {
  3461  					var ret [1]ChatConfirmChannelDeleteArg
  3462  					return &ret
  3463  				},
  3464  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3465  					typedArgs, ok := args.(*[1]ChatConfirmChannelDeleteArg)
  3466  					if !ok {
  3467  						err = rpc.NewTypeError((*[1]ChatConfirmChannelDeleteArg)(nil), args)
  3468  						return
  3469  					}
  3470  					ret, err = i.ChatConfirmChannelDelete(ctx, typedArgs[0])
  3471  					return
  3472  				},
  3473  			},
  3474  			"chatStellarShowConfirm": {
  3475  				MakeArg: func() interface{} {
  3476  					var ret [1]ChatStellarShowConfirmArg
  3477  					return &ret
  3478  				},
  3479  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3480  					typedArgs, ok := args.(*[1]ChatStellarShowConfirmArg)
  3481  					if !ok {
  3482  						err = rpc.NewTypeError((*[1]ChatStellarShowConfirmArg)(nil), args)
  3483  						return
  3484  					}
  3485  					err = i.ChatStellarShowConfirm(ctx, typedArgs[0].SessionID)
  3486  					return
  3487  				},
  3488  			},
  3489  			"chatStellarDataConfirm": {
  3490  				MakeArg: func() interface{} {
  3491  					var ret [1]ChatStellarDataConfirmArg
  3492  					return &ret
  3493  				},
  3494  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3495  					typedArgs, ok := args.(*[1]ChatStellarDataConfirmArg)
  3496  					if !ok {
  3497  						err = rpc.NewTypeError((*[1]ChatStellarDataConfirmArg)(nil), args)
  3498  						return
  3499  					}
  3500  					ret, err = i.ChatStellarDataConfirm(ctx, typedArgs[0])
  3501  					return
  3502  				},
  3503  			},
  3504  			"chatStellarDataError": {
  3505  				MakeArg: func() interface{} {
  3506  					var ret [1]ChatStellarDataErrorArg
  3507  					return &ret
  3508  				},
  3509  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3510  					typedArgs, ok := args.(*[1]ChatStellarDataErrorArg)
  3511  					if !ok {
  3512  						err = rpc.NewTypeError((*[1]ChatStellarDataErrorArg)(nil), args)
  3513  						return
  3514  					}
  3515  					ret, err = i.ChatStellarDataError(ctx, typedArgs[0])
  3516  					return
  3517  				},
  3518  			},
  3519  			"chatStellarDone": {
  3520  				MakeArg: func() interface{} {
  3521  					var ret [1]ChatStellarDoneArg
  3522  					return &ret
  3523  				},
  3524  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3525  					typedArgs, ok := args.(*[1]ChatStellarDoneArg)
  3526  					if !ok {
  3527  						err = rpc.NewTypeError((*[1]ChatStellarDoneArg)(nil), args)
  3528  						return
  3529  					}
  3530  					err = i.ChatStellarDone(ctx, typedArgs[0])
  3531  					return
  3532  				},
  3533  			},
  3534  			"chatGiphySearchResults": {
  3535  				MakeArg: func() interface{} {
  3536  					var ret [1]ChatGiphySearchResultsArg
  3537  					return &ret
  3538  				},
  3539  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3540  					typedArgs, ok := args.(*[1]ChatGiphySearchResultsArg)
  3541  					if !ok {
  3542  						err = rpc.NewTypeError((*[1]ChatGiphySearchResultsArg)(nil), args)
  3543  						return
  3544  					}
  3545  					err = i.ChatGiphySearchResults(ctx, typedArgs[0])
  3546  					return
  3547  				},
  3548  			},
  3549  			"chatGiphyToggleResultWindow": {
  3550  				MakeArg: func() interface{} {
  3551  					var ret [1]ChatGiphyToggleResultWindowArg
  3552  					return &ret
  3553  				},
  3554  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3555  					typedArgs, ok := args.(*[1]ChatGiphyToggleResultWindowArg)
  3556  					if !ok {
  3557  						err = rpc.NewTypeError((*[1]ChatGiphyToggleResultWindowArg)(nil), args)
  3558  						return
  3559  					}
  3560  					err = i.ChatGiphyToggleResultWindow(ctx, typedArgs[0])
  3561  					return
  3562  				},
  3563  			},
  3564  			"chatShowManageChannels": {
  3565  				MakeArg: func() interface{} {
  3566  					var ret [1]ChatShowManageChannelsArg
  3567  					return &ret
  3568  				},
  3569  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3570  					typedArgs, ok := args.(*[1]ChatShowManageChannelsArg)
  3571  					if !ok {
  3572  						err = rpc.NewTypeError((*[1]ChatShowManageChannelsArg)(nil), args)
  3573  						return
  3574  					}
  3575  					err = i.ChatShowManageChannels(ctx, typedArgs[0])
  3576  					return
  3577  				},
  3578  			},
  3579  			"chatCoinFlipStatus": {
  3580  				MakeArg: func() interface{} {
  3581  					var ret [1]ChatCoinFlipStatusArg
  3582  					return &ret
  3583  				},
  3584  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3585  					typedArgs, ok := args.(*[1]ChatCoinFlipStatusArg)
  3586  					if !ok {
  3587  						err = rpc.NewTypeError((*[1]ChatCoinFlipStatusArg)(nil), args)
  3588  						return
  3589  					}
  3590  					err = i.ChatCoinFlipStatus(ctx, typedArgs[0])
  3591  					return
  3592  				},
  3593  			},
  3594  			"chatCommandMarkdown": {
  3595  				MakeArg: func() interface{} {
  3596  					var ret [1]ChatCommandMarkdownArg
  3597  					return &ret
  3598  				},
  3599  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3600  					typedArgs, ok := args.(*[1]ChatCommandMarkdownArg)
  3601  					if !ok {
  3602  						err = rpc.NewTypeError((*[1]ChatCommandMarkdownArg)(nil), args)
  3603  						return
  3604  					}
  3605  					err = i.ChatCommandMarkdown(ctx, typedArgs[0])
  3606  					return
  3607  				},
  3608  			},
  3609  			"chatMaybeMentionUpdate": {
  3610  				MakeArg: func() interface{} {
  3611  					var ret [1]ChatMaybeMentionUpdateArg
  3612  					return &ret
  3613  				},
  3614  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3615  					typedArgs, ok := args.(*[1]ChatMaybeMentionUpdateArg)
  3616  					if !ok {
  3617  						err = rpc.NewTypeError((*[1]ChatMaybeMentionUpdateArg)(nil), args)
  3618  						return
  3619  					}
  3620  					err = i.ChatMaybeMentionUpdate(ctx, typedArgs[0])
  3621  					return
  3622  				},
  3623  			},
  3624  			"chatLoadGalleryHit": {
  3625  				MakeArg: func() interface{} {
  3626  					var ret [1]ChatLoadGalleryHitArg
  3627  					return &ret
  3628  				},
  3629  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3630  					typedArgs, ok := args.(*[1]ChatLoadGalleryHitArg)
  3631  					if !ok {
  3632  						err = rpc.NewTypeError((*[1]ChatLoadGalleryHitArg)(nil), args)
  3633  						return
  3634  					}
  3635  					err = i.ChatLoadGalleryHit(ctx, typedArgs[0])
  3636  					return
  3637  				},
  3638  			},
  3639  			"chatWatchPosition": {
  3640  				MakeArg: func() interface{} {
  3641  					var ret [1]ChatWatchPositionArg
  3642  					return &ret
  3643  				},
  3644  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3645  					typedArgs, ok := args.(*[1]ChatWatchPositionArg)
  3646  					if !ok {
  3647  						err = rpc.NewTypeError((*[1]ChatWatchPositionArg)(nil), args)
  3648  						return
  3649  					}
  3650  					ret, err = i.ChatWatchPosition(ctx, typedArgs[0])
  3651  					return
  3652  				},
  3653  			},
  3654  			"chatClearWatch": {
  3655  				MakeArg: func() interface{} {
  3656  					var ret [1]ChatClearWatchArg
  3657  					return &ret
  3658  				},
  3659  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3660  					typedArgs, ok := args.(*[1]ChatClearWatchArg)
  3661  					if !ok {
  3662  						err = rpc.NewTypeError((*[1]ChatClearWatchArg)(nil), args)
  3663  						return
  3664  					}
  3665  					err = i.ChatClearWatch(ctx, typedArgs[0])
  3666  					return
  3667  				},
  3668  			},
  3669  			"chatCommandStatus": {
  3670  				MakeArg: func() interface{} {
  3671  					var ret [1]ChatCommandStatusArg
  3672  					return &ret
  3673  				},
  3674  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3675  					typedArgs, ok := args.(*[1]ChatCommandStatusArg)
  3676  					if !ok {
  3677  						err = rpc.NewTypeError((*[1]ChatCommandStatusArg)(nil), args)
  3678  						return
  3679  					}
  3680  					err = i.ChatCommandStatus(ctx, typedArgs[0])
  3681  					return
  3682  				},
  3683  			},
  3684  			"chatBotCommandsUpdateStatus": {
  3685  				MakeArg: func() interface{} {
  3686  					var ret [1]ChatBotCommandsUpdateStatusArg
  3687  					return &ret
  3688  				},
  3689  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3690  					typedArgs, ok := args.(*[1]ChatBotCommandsUpdateStatusArg)
  3691  					if !ok {
  3692  						err = rpc.NewTypeError((*[1]ChatBotCommandsUpdateStatusArg)(nil), args)
  3693  						return
  3694  					}
  3695  					err = i.ChatBotCommandsUpdateStatus(ctx, typedArgs[0])
  3696  					return
  3697  				},
  3698  			},
  3699  			"triggerContactSync": {
  3700  				MakeArg: func() interface{} {
  3701  					var ret [1]TriggerContactSyncArg
  3702  					return &ret
  3703  				},
  3704  				Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) {
  3705  					typedArgs, ok := args.(*[1]TriggerContactSyncArg)
  3706  					if !ok {
  3707  						err = rpc.NewTypeError((*[1]TriggerContactSyncArg)(nil), args)
  3708  						return
  3709  					}
  3710  					err = i.TriggerContactSync(ctx, typedArgs[0].SessionID)
  3711  					return
  3712  				},
  3713  			},
  3714  		},
  3715  	}
  3716  }
  3717  
  3718  type ChatUiClient struct {
  3719  	Cli rpc.GenericClient
  3720  }
  3721  
  3722  func (c ChatUiClient) ChatInboxLayout(ctx context.Context, __arg ChatInboxLayoutArg) (err error) {
  3723  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatInboxLayout", []interface{}{__arg}, nil, 0*time.Millisecond)
  3724  	return
  3725  }
  3726  
  3727  func (c ChatUiClient) ChatInboxUnverified(ctx context.Context, __arg ChatInboxUnverifiedArg) (err error) {
  3728  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatInboxUnverified", []interface{}{__arg}, nil, 0*time.Millisecond)
  3729  	return
  3730  }
  3731  
  3732  func (c ChatUiClient) ChatInboxConversation(ctx context.Context, __arg ChatInboxConversationArg) (err error) {
  3733  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatInboxConversation", []interface{}{__arg}, nil, 0*time.Millisecond)
  3734  	return
  3735  }
  3736  
  3737  func (c ChatUiClient) ChatInboxFailed(ctx context.Context, __arg ChatInboxFailedArg) (err error) {
  3738  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatInboxFailed", []interface{}{__arg}, nil, 0*time.Millisecond)
  3739  	return
  3740  }
  3741  
  3742  func (c ChatUiClient) ChatThreadCached(ctx context.Context, __arg ChatThreadCachedArg) (err error) {
  3743  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatThreadCached", []interface{}{__arg}, nil, 0*time.Millisecond)
  3744  	return
  3745  }
  3746  
  3747  func (c ChatUiClient) ChatThreadFull(ctx context.Context, __arg ChatThreadFullArg) (err error) {
  3748  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatThreadFull", []interface{}{__arg}, nil, 0*time.Millisecond)
  3749  	return
  3750  }
  3751  
  3752  func (c ChatUiClient) ChatThreadStatus(ctx context.Context, __arg ChatThreadStatusArg) (err error) {
  3753  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatThreadStatus", []interface{}{__arg}, nil, 0*time.Millisecond)
  3754  	return
  3755  }
  3756  
  3757  func (c ChatUiClient) ChatSearchHit(ctx context.Context, __arg ChatSearchHitArg) (err error) {
  3758  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchHit", []interface{}{__arg}, nil, 0*time.Millisecond)
  3759  	return
  3760  }
  3761  
  3762  func (c ChatUiClient) ChatSearchDone(ctx context.Context, __arg ChatSearchDoneArg) (err error) {
  3763  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchDone", []interface{}{__arg}, nil, 0*time.Millisecond)
  3764  	return
  3765  }
  3766  
  3767  func (c ChatUiClient) ChatSearchInboxStart(ctx context.Context, sessionID int) (err error) {
  3768  	__arg := ChatSearchInboxStartArg{SessionID: sessionID}
  3769  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchInboxStart", []interface{}{__arg}, nil, 0*time.Millisecond)
  3770  	return
  3771  }
  3772  
  3773  func (c ChatUiClient) ChatSearchInboxHit(ctx context.Context, __arg ChatSearchInboxHitArg) (err error) {
  3774  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchInboxHit", []interface{}{__arg}, nil, 0*time.Millisecond)
  3775  	return
  3776  }
  3777  
  3778  func (c ChatUiClient) ChatSearchInboxDone(ctx context.Context, __arg ChatSearchInboxDoneArg) (err error) {
  3779  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchInboxDone", []interface{}{__arg}, nil, 0*time.Millisecond)
  3780  	return
  3781  }
  3782  
  3783  func (c ChatUiClient) ChatSearchIndexStatus(ctx context.Context, __arg ChatSearchIndexStatusArg) (err error) {
  3784  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchIndexStatus", []interface{}{__arg}, nil, 0*time.Millisecond)
  3785  	return
  3786  }
  3787  
  3788  func (c ChatUiClient) ChatSearchConvHits(ctx context.Context, __arg ChatSearchConvHitsArg) (err error) {
  3789  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchConvHits", []interface{}{__arg}, nil, 0*time.Millisecond)
  3790  	return
  3791  }
  3792  
  3793  func (c ChatUiClient) ChatSearchTeamHits(ctx context.Context, __arg ChatSearchTeamHitsArg) (err error) {
  3794  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchTeamHits", []interface{}{__arg}, nil, 0*time.Millisecond)
  3795  	return
  3796  }
  3797  
  3798  func (c ChatUiClient) ChatSearchBotHits(ctx context.Context, __arg ChatSearchBotHitsArg) (err error) {
  3799  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatSearchBotHits", []interface{}{__arg}, nil, 0*time.Millisecond)
  3800  	return
  3801  }
  3802  
  3803  func (c ChatUiClient) ChatConfirmChannelDelete(ctx context.Context, __arg ChatConfirmChannelDeleteArg) (res bool, err error) {
  3804  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatConfirmChannelDelete", []interface{}{__arg}, &res, 0*time.Millisecond)
  3805  	return
  3806  }
  3807  
  3808  func (c ChatUiClient) ChatStellarShowConfirm(ctx context.Context, sessionID int) (err error) {
  3809  	__arg := ChatStellarShowConfirmArg{SessionID: sessionID}
  3810  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatStellarShowConfirm", []interface{}{__arg}, nil, 0*time.Millisecond)
  3811  	return
  3812  }
  3813  
  3814  func (c ChatUiClient) ChatStellarDataConfirm(ctx context.Context, __arg ChatStellarDataConfirmArg) (res bool, err error) {
  3815  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatStellarDataConfirm", []interface{}{__arg}, &res, 0*time.Millisecond)
  3816  	return
  3817  }
  3818  
  3819  func (c ChatUiClient) ChatStellarDataError(ctx context.Context, __arg ChatStellarDataErrorArg) (res bool, err error) {
  3820  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatStellarDataError", []interface{}{__arg}, &res, 0*time.Millisecond)
  3821  	return
  3822  }
  3823  
  3824  func (c ChatUiClient) ChatStellarDone(ctx context.Context, __arg ChatStellarDoneArg) (err error) {
  3825  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatStellarDone", []interface{}{__arg}, nil, 0*time.Millisecond)
  3826  	return
  3827  }
  3828  
  3829  func (c ChatUiClient) ChatGiphySearchResults(ctx context.Context, __arg ChatGiphySearchResultsArg) (err error) {
  3830  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatGiphySearchResults", []interface{}{__arg}, nil, 0*time.Millisecond)
  3831  	return
  3832  }
  3833  
  3834  func (c ChatUiClient) ChatGiphyToggleResultWindow(ctx context.Context, __arg ChatGiphyToggleResultWindowArg) (err error) {
  3835  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatGiphyToggleResultWindow", []interface{}{__arg}, nil, 0*time.Millisecond)
  3836  	return
  3837  }
  3838  
  3839  func (c ChatUiClient) ChatShowManageChannels(ctx context.Context, __arg ChatShowManageChannelsArg) (err error) {
  3840  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatShowManageChannels", []interface{}{__arg}, nil, 0*time.Millisecond)
  3841  	return
  3842  }
  3843  
  3844  func (c ChatUiClient) ChatCoinFlipStatus(ctx context.Context, __arg ChatCoinFlipStatusArg) (err error) {
  3845  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatCoinFlipStatus", []interface{}{__arg}, nil, 0*time.Millisecond)
  3846  	return
  3847  }
  3848  
  3849  func (c ChatUiClient) ChatCommandMarkdown(ctx context.Context, __arg ChatCommandMarkdownArg) (err error) {
  3850  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatCommandMarkdown", []interface{}{__arg}, nil, 0*time.Millisecond)
  3851  	return
  3852  }
  3853  
  3854  func (c ChatUiClient) ChatMaybeMentionUpdate(ctx context.Context, __arg ChatMaybeMentionUpdateArg) (err error) {
  3855  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatMaybeMentionUpdate", []interface{}{__arg}, nil, 0*time.Millisecond)
  3856  	return
  3857  }
  3858  
  3859  func (c ChatUiClient) ChatLoadGalleryHit(ctx context.Context, __arg ChatLoadGalleryHitArg) (err error) {
  3860  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatLoadGalleryHit", []interface{}{__arg}, nil, 0*time.Millisecond)
  3861  	return
  3862  }
  3863  
  3864  func (c ChatUiClient) ChatWatchPosition(ctx context.Context, __arg ChatWatchPositionArg) (res LocationWatchID, err error) {
  3865  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatWatchPosition", []interface{}{__arg}, &res, 0*time.Millisecond)
  3866  	return
  3867  }
  3868  
  3869  func (c ChatUiClient) ChatClearWatch(ctx context.Context, __arg ChatClearWatchArg) (err error) {
  3870  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatClearWatch", []interface{}{__arg}, nil, 0*time.Millisecond)
  3871  	return
  3872  }
  3873  
  3874  func (c ChatUiClient) ChatCommandStatus(ctx context.Context, __arg ChatCommandStatusArg) (err error) {
  3875  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatCommandStatus", []interface{}{__arg}, nil, 0*time.Millisecond)
  3876  	return
  3877  }
  3878  
  3879  func (c ChatUiClient) ChatBotCommandsUpdateStatus(ctx context.Context, __arg ChatBotCommandsUpdateStatusArg) (err error) {
  3880  	err = c.Cli.Call(ctx, "chat.1.chatUi.chatBotCommandsUpdateStatus", []interface{}{__arg}, nil, 0*time.Millisecond)
  3881  	return
  3882  }
  3883  
  3884  func (c ChatUiClient) TriggerContactSync(ctx context.Context, sessionID int) (err error) {
  3885  	__arg := TriggerContactSyncArg{SessionID: sessionID}
  3886  	err = c.Cli.Call(ctx, "chat.1.chatUi.triggerContactSync", []interface{}{__arg}, nil, 0*time.Millisecond)
  3887  	return
  3888  }