1// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.
   2
   3package protocol
   4
   5import (
   6	json "encoding/json"
   7	easyjson "github.com/mailru/easyjson"
   8	jlexer "github.com/mailru/easyjson/jlexer"
   9	jwriter "github.com/mailru/easyjson/jwriter"
  10	game "github.com/zikaeroh/codies/internal/game"
  11)
  12
  13// suppress unused package warning
  14var (
  15	_ *json.RawMessage
  16	_ *jlexer.Lexer
  17	_ *jwriter.Writer
  18	_ easyjson.Marshaler
  19)
  20
  21func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol(in *jlexer.Lexer, out *TimeResponse) {
  22	isTopLevel := in.IsStart()
  23	if in.IsNull() {
  24		if isTopLevel {
  25			in.Consumed()
  26		}
  27		in.Skip()
  28		return
  29	}
  30	in.Delim('{')
  31	for !in.IsDelim('}') {
  32		key := in.UnsafeString()
  33		in.WantColon()
  34		if in.IsNull() {
  35			in.Skip()
  36			in.WantComma()
  37			continue
  38		}
  39		switch key {
  40		case "time":
  41			if data := in.Raw(); in.Ok() {
  42				in.AddError((out.Time).UnmarshalJSON(data))
  43			}
  44		default:
  45			in.AddError(&jlexer.LexerError{
  46				Offset: in.GetPos(),
  47				Reason: "unknown field",
  48				Data:   key,
  49			})
  50		}
  51		in.WantComma()
  52	}
  53	in.Delim('}')
  54	if isTopLevel {
  55		in.Consumed()
  56	}
  57}
  58func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol(out *jwriter.Writer, in TimeResponse) {
  59	out.RawByte('{')
  60	first := true
  61	_ = first
  62	{
  63		const prefix string = ",\"time\":"
  64		out.RawString(prefix[1:])
  65		out.Raw((in.Time).MarshalJSON())
  66	}
  67	out.RawByte('}')
  68}
  69
  70// MarshalJSON supports json.Marshaler interface
  71func (v TimeResponse) MarshalJSON() ([]byte, error) {
  72	w := jwriter.Writer{}
  73	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol(&w, v)
  74	return w.Buffer.BuildBytes(), w.Error
  75}
  76
  77// MarshalEasyJSON supports easyjson.Marshaler interface
  78func (v TimeResponse) MarshalEasyJSON(w *jwriter.Writer) {
  79	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol(w, v)
  80}
  81
  82// UnmarshalJSON supports json.Unmarshaler interface
  83func (v *TimeResponse) UnmarshalJSON(data []byte) error {
  84	r := jlexer.Lexer{Data: data}
  85	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol(&r, v)
  86	return r.Error()
  87}
  88
  89// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
  90func (v *TimeResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
  91	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol(l, v)
  92}
  93func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol1(in *jlexer.Lexer, out *StatsResponse) {
  94	isTopLevel := in.IsStart()
  95	if in.IsNull() {
  96		if isTopLevel {
  97			in.Consumed()
  98		}
  99		in.Skip()
 100		return
 101	}
 102	in.Delim('{')
 103	for !in.IsDelim('}') {
 104		key := in.UnsafeString()
 105		in.WantColon()
 106		if in.IsNull() {
 107			in.Skip()
 108			in.WantComma()
 109			continue
 110		}
 111		switch key {
 112		case "rooms":
 113			out.Rooms = int(in.Int())
 114		case "clients":
 115			out.Clients = int(in.Int())
 116		default:
 117			in.AddError(&jlexer.LexerError{
 118				Offset: in.GetPos(),
 119				Reason: "unknown field",
 120				Data:   key,
 121			})
 122		}
 123		in.WantComma()
 124	}
 125	in.Delim('}')
 126	if isTopLevel {
 127		in.Consumed()
 128	}
 129}
 130func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol1(out *jwriter.Writer, in StatsResponse) {
 131	out.RawByte('{')
 132	first := true
 133	_ = first
 134	{
 135		const prefix string = ",\"rooms\":"
 136		out.RawString(prefix[1:])
 137		out.Int(int(in.Rooms))
 138	}
 139	{
 140		const prefix string = ",\"clients\":"
 141		out.RawString(prefix)
 142		out.Int(int(in.Clients))
 143	}
 144	out.RawByte('}')
 145}
 146
 147// MarshalJSON supports json.Marshaler interface
 148func (v StatsResponse) MarshalJSON() ([]byte, error) {
 149	w := jwriter.Writer{}
 150	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol1(&w, v)
 151	return w.Buffer.BuildBytes(), w.Error
 152}
 153
 154// MarshalEasyJSON supports easyjson.Marshaler interface
 155func (v StatsResponse) MarshalEasyJSON(w *jwriter.Writer) {
 156	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol1(w, v)
 157}
 158
 159// UnmarshalJSON supports json.Unmarshaler interface
 160func (v *StatsResponse) UnmarshalJSON(data []byte) error {
 161	r := jlexer.Lexer{Data: data}
 162	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol1(&r, v)
 163	return r.Error()
 164}
 165
 166// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 167func (v *StatsResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
 168	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol1(l, v)
 169}
 170func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol2(in *jlexer.Lexer, out *StateWordList) {
 171	isTopLevel := in.IsStart()
 172	if in.IsNull() {
 173		if isTopLevel {
 174			in.Consumed()
 175		}
 176		in.Skip()
 177		return
 178	}
 179	in.Delim('{')
 180	for !in.IsDelim('}') {
 181		key := in.UnsafeString()
 182		in.WantColon()
 183		if in.IsNull() {
 184			in.Skip()
 185			in.WantComma()
 186			continue
 187		}
 188		switch key {
 189		case "name":
 190			out.Name = string(in.String())
 191		case "count":
 192			out.Count = int(in.Int())
 193		case "custom":
 194			out.Custom = bool(in.Bool())
 195		case "enabled":
 196			out.Enabled = bool(in.Bool())
 197		default:
 198			in.AddError(&jlexer.LexerError{
 199				Offset: in.GetPos(),
 200				Reason: "unknown field",
 201				Data:   key,
 202			})
 203		}
 204		in.WantComma()
 205	}
 206	in.Delim('}')
 207	if isTopLevel {
 208		in.Consumed()
 209	}
 210}
 211func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol2(out *jwriter.Writer, in StateWordList) {
 212	out.RawByte('{')
 213	first := true
 214	_ = first
 215	{
 216		const prefix string = ",\"name\":"
 217		out.RawString(prefix[1:])
 218		out.String(string(in.Name))
 219	}
 220	{
 221		const prefix string = ",\"count\":"
 222		out.RawString(prefix)
 223		out.Int(int(in.Count))
 224	}
 225	{
 226		const prefix string = ",\"custom\":"
 227		out.RawString(prefix)
 228		out.Bool(bool(in.Custom))
 229	}
 230	{
 231		const prefix string = ",\"enabled\":"
 232		out.RawString(prefix)
 233		out.Bool(bool(in.Enabled))
 234	}
 235	out.RawByte('}')
 236}
 237
 238// MarshalJSON supports json.Marshaler interface
 239func (v StateWordList) MarshalJSON() ([]byte, error) {
 240	w := jwriter.Writer{}
 241	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol2(&w, v)
 242	return w.Buffer.BuildBytes(), w.Error
 243}
 244
 245// MarshalEasyJSON supports easyjson.Marshaler interface
 246func (v StateWordList) MarshalEasyJSON(w *jwriter.Writer) {
 247	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol2(w, v)
 248}
 249
 250// UnmarshalJSON supports json.Unmarshaler interface
 251func (v *StateWordList) UnmarshalJSON(data []byte) error {
 252	r := jlexer.Lexer{Data: data}
 253	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol2(&r, v)
 254	return r.Error()
 255}
 256
 257// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 258func (v *StateWordList) UnmarshalEasyJSON(l *jlexer.Lexer) {
 259	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol2(l, v)
 260}
 261func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol3(in *jlexer.Lexer, out *StateView) {
 262	isTopLevel := in.IsStart()
 263	if in.IsNull() {
 264		if isTopLevel {
 265			in.Consumed()
 266		}
 267		in.Skip()
 268		return
 269	}
 270	in.Delim('{')
 271	for !in.IsDelim('}') {
 272		key := in.UnsafeString()
 273		in.WantColon()
 274		if in.IsNull() {
 275			in.Skip()
 276			in.WantComma()
 277			continue
 278		}
 279		switch key {
 280		case "team":
 281			out.Team = game.Team(in.Int())
 282		case "neutral":
 283			out.Neutral = bool(in.Bool())
 284		case "bomb":
 285			out.Bomb = bool(in.Bool())
 286		default:
 287			in.AddError(&jlexer.LexerError{
 288				Offset: in.GetPos(),
 289				Reason: "unknown field",
 290				Data:   key,
 291			})
 292		}
 293		in.WantComma()
 294	}
 295	in.Delim('}')
 296	if isTopLevel {
 297		in.Consumed()
 298	}
 299}
 300func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol3(out *jwriter.Writer, in StateView) {
 301	out.RawByte('{')
 302	first := true
 303	_ = first
 304	{
 305		const prefix string = ",\"team\":"
 306		out.RawString(prefix[1:])
 307		out.Int(int(in.Team))
 308	}
 309	{
 310		const prefix string = ",\"neutral\":"
 311		out.RawString(prefix)
 312		out.Bool(bool(in.Neutral))
 313	}
 314	{
 315		const prefix string = ",\"bomb\":"
 316		out.RawString(prefix)
 317		out.Bool(bool(in.Bomb))
 318	}
 319	out.RawByte('}')
 320}
 321
 322// MarshalJSON supports json.Marshaler interface
 323func (v StateView) MarshalJSON() ([]byte, error) {
 324	w := jwriter.Writer{}
 325	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol3(&w, v)
 326	return w.Buffer.BuildBytes(), w.Error
 327}
 328
 329// MarshalEasyJSON supports easyjson.Marshaler interface
 330func (v StateView) MarshalEasyJSON(w *jwriter.Writer) {
 331	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol3(w, v)
 332}
 333
 334// UnmarshalJSON supports json.Unmarshaler interface
 335func (v *StateView) UnmarshalJSON(data []byte) error {
 336	r := jlexer.Lexer{Data: data}
 337	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol3(&r, v)
 338	return r.Error()
 339}
 340
 341// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 342func (v *StateView) UnmarshalEasyJSON(l *jlexer.Lexer) {
 343	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol3(l, v)
 344}
 345func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol4(in *jlexer.Lexer, out *StateTimer) {
 346	isTopLevel := in.IsStart()
 347	if in.IsNull() {
 348		if isTopLevel {
 349			in.Consumed()
 350		}
 351		in.Skip()
 352		return
 353	}
 354	in.Delim('{')
 355	for !in.IsDelim('}') {
 356		key := in.UnsafeString()
 357		in.WantColon()
 358		if in.IsNull() {
 359			in.Skip()
 360			in.WantComma()
 361			continue
 362		}
 363		switch key {
 364		case "turnTime":
 365			out.TurnTime = int(in.Int())
 366		case "turnEnd":
 367			if data := in.Raw(); in.Ok() {
 368				in.AddError((out.TurnEnd).UnmarshalJSON(data))
 369			}
 370		default:
 371			in.AddError(&jlexer.LexerError{
 372				Offset: in.GetPos(),
 373				Reason: "unknown field",
 374				Data:   key,
 375			})
 376		}
 377		in.WantComma()
 378	}
 379	in.Delim('}')
 380	if isTopLevel {
 381		in.Consumed()
 382	}
 383}
 384func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol4(out *jwriter.Writer, in StateTimer) {
 385	out.RawByte('{')
 386	first := true
 387	_ = first
 388	{
 389		const prefix string = ",\"turnTime\":"
 390		out.RawString(prefix[1:])
 391		out.Int(int(in.TurnTime))
 392	}
 393	{
 394		const prefix string = ",\"turnEnd\":"
 395		out.RawString(prefix)
 396		out.Raw((in.TurnEnd).MarshalJSON())
 397	}
 398	out.RawByte('}')
 399}
 400
 401// MarshalJSON supports json.Marshaler interface
 402func (v StateTimer) MarshalJSON() ([]byte, error) {
 403	w := jwriter.Writer{}
 404	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol4(&w, v)
 405	return w.Buffer.BuildBytes(), w.Error
 406}
 407
 408// MarshalEasyJSON supports easyjson.Marshaler interface
 409func (v StateTimer) MarshalEasyJSON(w *jwriter.Writer) {
 410	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol4(w, v)
 411}
 412
 413// UnmarshalJSON supports json.Unmarshaler interface
 414func (v *StateTimer) UnmarshalJSON(data []byte) error {
 415	r := jlexer.Lexer{Data: data}
 416	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol4(&r, v)
 417	return r.Error()
 418}
 419
 420// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 421func (v *StateTimer) UnmarshalEasyJSON(l *jlexer.Lexer) {
 422	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol4(l, v)
 423}
 424func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol5(in *jlexer.Lexer, out *StateTile) {
 425	isTopLevel := in.IsStart()
 426	if in.IsNull() {
 427		if isTopLevel {
 428			in.Consumed()
 429		}
 430		in.Skip()
 431		return
 432	}
 433	in.Delim('{')
 434	for !in.IsDelim('}') {
 435		key := in.UnsafeString()
 436		in.WantColon()
 437		if in.IsNull() {
 438			in.Skip()
 439			in.WantComma()
 440			continue
 441		}
 442		switch key {
 443		case "word":
 444			out.Word = string(in.String())
 445		case "revealed":
 446			out.Revealed = bool(in.Bool())
 447		case "view":
 448			if in.IsNull() {
 449				in.Skip()
 450				out.View = nil
 451			} else {
 452				if out.View == nil {
 453					out.View = new(StateView)
 454				}
 455				(*out.View).UnmarshalEasyJSON(in)
 456			}
 457		default:
 458			in.AddError(&jlexer.LexerError{
 459				Offset: in.GetPos(),
 460				Reason: "unknown field",
 461				Data:   key,
 462			})
 463		}
 464		in.WantComma()
 465	}
 466	in.Delim('}')
 467	if isTopLevel {
 468		in.Consumed()
 469	}
 470}
 471func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol5(out *jwriter.Writer, in StateTile) {
 472	out.RawByte('{')
 473	first := true
 474	_ = first
 475	{
 476		const prefix string = ",\"word\":"
 477		out.RawString(prefix[1:])
 478		out.String(string(in.Word))
 479	}
 480	{
 481		const prefix string = ",\"revealed\":"
 482		out.RawString(prefix)
 483		out.Bool(bool(in.Revealed))
 484	}
 485	{
 486		const prefix string = ",\"view\":"
 487		out.RawString(prefix)
 488		if in.View == nil {
 489			out.RawString("null")
 490		} else {
 491			(*in.View).MarshalEasyJSON(out)
 492		}
 493	}
 494	out.RawByte('}')
 495}
 496
 497// MarshalJSON supports json.Marshaler interface
 498func (v StateTile) MarshalJSON() ([]byte, error) {
 499	w := jwriter.Writer{}
 500	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol5(&w, v)
 501	return w.Buffer.BuildBytes(), w.Error
 502}
 503
 504// MarshalEasyJSON supports easyjson.Marshaler interface
 505func (v StateTile) MarshalEasyJSON(w *jwriter.Writer) {
 506	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol5(w, v)
 507}
 508
 509// UnmarshalJSON supports json.Unmarshaler interface
 510func (v *StateTile) UnmarshalJSON(data []byte) error {
 511	r := jlexer.Lexer{Data: data}
 512	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol5(&r, v)
 513	return r.Error()
 514}
 515
 516// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 517func (v *StateTile) UnmarshalEasyJSON(l *jlexer.Lexer) {
 518	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol5(l, v)
 519}
 520func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol6(in *jlexer.Lexer, out *StatePlayer) {
 521	isTopLevel := in.IsStart()
 522	if in.IsNull() {
 523		if isTopLevel {
 524			in.Consumed()
 525		}
 526		in.Skip()
 527		return
 528	}
 529	in.Delim('{')
 530	for !in.IsDelim('}') {
 531		key := in.UnsafeString()
 532		in.WantColon()
 533		if in.IsNull() {
 534			in.Skip()
 535			in.WantComma()
 536			continue
 537		}
 538		switch key {
 539		case "playerID":
 540			if data := in.UnsafeBytes(); in.Ok() {
 541				in.AddError((out.PlayerID).UnmarshalText(data))
 542			}
 543		case "nickname":
 544			out.Nickname = string(in.String())
 545		case "spymaster":
 546			out.Spymaster = bool(in.Bool())
 547		default:
 548			in.AddError(&jlexer.LexerError{
 549				Offset: in.GetPos(),
 550				Reason: "unknown field",
 551				Data:   key,
 552			})
 553		}
 554		in.WantComma()
 555	}
 556	in.Delim('}')
 557	if isTopLevel {
 558		in.Consumed()
 559	}
 560}
 561func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol6(out *jwriter.Writer, in StatePlayer) {
 562	out.RawByte('{')
 563	first := true
 564	_ = first
 565	{
 566		const prefix string = ",\"playerID\":"
 567		out.RawString(prefix[1:])
 568		out.RawText((in.PlayerID).MarshalText())
 569	}
 570	{
 571		const prefix string = ",\"nickname\":"
 572		out.RawString(prefix)
 573		out.String(string(in.Nickname))
 574	}
 575	{
 576		const prefix string = ",\"spymaster\":"
 577		out.RawString(prefix)
 578		out.Bool(bool(in.Spymaster))
 579	}
 580	out.RawByte('}')
 581}
 582
 583// MarshalJSON supports json.Marshaler interface
 584func (v StatePlayer) MarshalJSON() ([]byte, error) {
 585	w := jwriter.Writer{}
 586	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol6(&w, v)
 587	return w.Buffer.BuildBytes(), w.Error
 588}
 589
 590// MarshalEasyJSON supports easyjson.Marshaler interface
 591func (v StatePlayer) MarshalEasyJSON(w *jwriter.Writer) {
 592	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol6(w, v)
 593}
 594
 595// UnmarshalJSON supports json.Unmarshaler interface
 596func (v *StatePlayer) UnmarshalJSON(data []byte) error {
 597	r := jlexer.Lexer{Data: data}
 598	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol6(&r, v)
 599	return r.Error()
 600}
 601
 602// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 603func (v *StatePlayer) UnmarshalEasyJSON(l *jlexer.Lexer) {
 604	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol6(l, v)
 605}
 606func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol7(in *jlexer.Lexer, out *State) {
 607	isTopLevel := in.IsStart()
 608	if in.IsNull() {
 609		if isTopLevel {
 610			in.Consumed()
 611		}
 612		in.Skip()
 613		return
 614	}
 615	in.Delim('{')
 616	for !in.IsDelim('}') {
 617		key := in.UnsafeString()
 618		in.WantColon()
 619		if in.IsNull() {
 620			in.Skip()
 621			in.WantComma()
 622			continue
 623		}
 624		switch key {
 625		case "playerID":
 626			if data := in.UnsafeBytes(); in.Ok() {
 627				in.AddError((out.PlayerID).UnmarshalText(data))
 628			}
 629		case "roomState":
 630			if in.IsNull() {
 631				in.Skip()
 632				out.RoomState = nil
 633			} else {
 634				if out.RoomState == nil {
 635					out.RoomState = new(RoomState)
 636				}
 637				(*out.RoomState).UnmarshalEasyJSON(in)
 638			}
 639		default:
 640			in.AddError(&jlexer.LexerError{
 641				Offset: in.GetPos(),
 642				Reason: "unknown field",
 643				Data:   key,
 644			})
 645		}
 646		in.WantComma()
 647	}
 648	in.Delim('}')
 649	if isTopLevel {
 650		in.Consumed()
 651	}
 652}
 653func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol7(out *jwriter.Writer, in State) {
 654	out.RawByte('{')
 655	first := true
 656	_ = first
 657	{
 658		const prefix string = ",\"playerID\":"
 659		out.RawString(prefix[1:])
 660		out.RawText((in.PlayerID).MarshalText())
 661	}
 662	{
 663		const prefix string = ",\"roomState\":"
 664		out.RawString(prefix)
 665		if in.RoomState == nil {
 666			out.RawString("null")
 667		} else {
 668			(*in.RoomState).MarshalEasyJSON(out)
 669		}
 670	}
 671	out.RawByte('}')
 672}
 673
 674// MarshalJSON supports json.Marshaler interface
 675func (v State) MarshalJSON() ([]byte, error) {
 676	w := jwriter.Writer{}
 677	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol7(&w, v)
 678	return w.Buffer.BuildBytes(), w.Error
 679}
 680
 681// MarshalEasyJSON supports easyjson.Marshaler interface
 682func (v State) MarshalEasyJSON(w *jwriter.Writer) {
 683	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol7(w, v)
 684}
 685
 686// UnmarshalJSON supports json.Unmarshaler interface
 687func (v *State) UnmarshalJSON(data []byte) error {
 688	r := jlexer.Lexer{Data: data}
 689	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol7(&r, v)
 690	return r.Error()
 691}
 692
 693// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 694func (v *State) UnmarshalEasyJSON(l *jlexer.Lexer) {
 695	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol7(l, v)
 696}
 697func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol8(in *jlexer.Lexer, out *ServerNote) {
 698	isTopLevel := in.IsStart()
 699	if in.IsNull() {
 700		if isTopLevel {
 701			in.Consumed()
 702		}
 703		in.Skip()
 704		return
 705	}
 706	in.Delim('{')
 707	for !in.IsDelim('}') {
 708		key := in.UnsafeString()
 709		in.WantColon()
 710		if in.IsNull() {
 711			in.Skip()
 712			in.WantComma()
 713			continue
 714		}
 715		switch key {
 716		case "method":
 717			out.Method = ServerMethod(in.String())
 718		case "params":
 719			if m, ok := out.Params.(easyjson.Unmarshaler); ok {
 720				m.UnmarshalEasyJSON(in)
 721			} else if m, ok := out.Params.(json.Unmarshaler); ok {
 722				_ = m.UnmarshalJSON(in.Raw())
 723			} else {
 724				out.Params = in.Interface()
 725			}
 726		default:
 727			in.AddError(&jlexer.LexerError{
 728				Offset: in.GetPos(),
 729				Reason: "unknown field",
 730				Data:   key,
 731			})
 732		}
 733		in.WantComma()
 734	}
 735	in.Delim('}')
 736	if isTopLevel {
 737		in.Consumed()
 738	}
 739}
 740func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol8(out *jwriter.Writer, in ServerNote) {
 741	out.RawByte('{')
 742	first := true
 743	_ = first
 744	{
 745		const prefix string = ",\"method\":"
 746		out.RawString(prefix[1:])
 747		out.String(string(in.Method))
 748	}
 749	{
 750		const prefix string = ",\"params\":"
 751		out.RawString(prefix)
 752		if m, ok := in.Params.(easyjson.Marshaler); ok {
 753			m.MarshalEasyJSON(out)
 754		} else if m, ok := in.Params.(json.Marshaler); ok {
 755			out.Raw(m.MarshalJSON())
 756		} else {
 757			out.Raw(json.Marshal(in.Params))
 758		}
 759	}
 760	out.RawByte('}')
 761}
 762
 763// MarshalJSON supports json.Marshaler interface
 764func (v ServerNote) MarshalJSON() ([]byte, error) {
 765	w := jwriter.Writer{}
 766	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol8(&w, v)
 767	return w.Buffer.BuildBytes(), w.Error
 768}
 769
 770// MarshalEasyJSON supports easyjson.Marshaler interface
 771func (v ServerNote) MarshalEasyJSON(w *jwriter.Writer) {
 772	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol8(w, v)
 773}
 774
 775// UnmarshalJSON supports json.Unmarshaler interface
 776func (v *ServerNote) UnmarshalJSON(data []byte) error {
 777	r := jlexer.Lexer{Data: data}
 778	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol8(&r, v)
 779	return r.Error()
 780}
 781
 782// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 783func (v *ServerNote) UnmarshalEasyJSON(l *jlexer.Lexer) {
 784	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol8(l, v)
 785}
 786func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol9(in *jlexer.Lexer, out *RoomState) {
 787	isTopLevel := in.IsStart()
 788	if in.IsNull() {
 789		if isTopLevel {
 790			in.Consumed()
 791		}
 792		in.Skip()
 793		return
 794	}
 795	in.Delim('{')
 796	for !in.IsDelim('}') {
 797		key := in.UnsafeString()
 798		in.WantColon()
 799		if in.IsNull() {
 800			in.Skip()
 801			in.WantComma()
 802			continue
 803		}
 804		switch key {
 805		case "version":
 806			out.Version = int(in.Int())
 807		case "teams":
 808			if in.IsNull() {
 809				in.Skip()
 810				out.Teams = nil
 811			} else {
 812				in.Delim('[')
 813				if out.Teams == nil {
 814					if !in.IsDelim(']') {
 815						out.Teams = make([][]*StatePlayer, 0, 2)
 816					} else {
 817						out.Teams = [][]*StatePlayer{}
 818					}
 819				} else {
 820					out.Teams = (out.Teams)[:0]
 821				}
 822				for !in.IsDelim(']') {
 823					var v1 []*StatePlayer
 824					if in.IsNull() {
 825						in.Skip()
 826						v1 = nil
 827					} else {
 828						in.Delim('[')
 829						if v1 == nil {
 830							if !in.IsDelim(']') {
 831								v1 = make([]*StatePlayer, 0, 8)
 832							} else {
 833								v1 = []*StatePlayer{}
 834							}
 835						} else {
 836							v1 = (v1)[:0]
 837						}
 838						for !in.IsDelim(']') {
 839							var v2 *StatePlayer
 840							if in.IsNull() {
 841								in.Skip()
 842								v2 = nil
 843							} else {
 844								if v2 == nil {
 845									v2 = new(StatePlayer)
 846								}
 847								(*v2).UnmarshalEasyJSON(in)
 848							}
 849							v1 = append(v1, v2)
 850							in.WantComma()
 851						}
 852						in.Delim(']')
 853					}
 854					out.Teams = append(out.Teams, v1)
 855					in.WantComma()
 856				}
 857				in.Delim(']')
 858			}
 859		case "turn":
 860			out.Turn = game.Team(in.Int())
 861		case "winner":
 862			if in.IsNull() {
 863				in.Skip()
 864				out.Winner = nil
 865			} else {
 866				if out.Winner == nil {
 867					out.Winner = new(game.Team)
 868				}
 869				*out.Winner = game.Team(in.Int())
 870			}
 871		case "board":
 872			if in.IsNull() {
 873				in.Skip()
 874				out.Board = nil
 875			} else {
 876				in.Delim('[')
 877				if out.Board == nil {
 878					if !in.IsDelim(']') {
 879						out.Board = make([][]*StateTile, 0, 2)
 880					} else {
 881						out.Board = [][]*StateTile{}
 882					}
 883				} else {
 884					out.Board = (out.Board)[:0]
 885				}
 886				for !in.IsDelim(']') {
 887					var v3 []*StateTile
 888					if in.IsNull() {
 889						in.Skip()
 890						v3 = nil
 891					} else {
 892						in.Delim('[')
 893						if v3 == nil {
 894							if !in.IsDelim(']') {
 895								v3 = make([]*StateTile, 0, 8)
 896							} else {
 897								v3 = []*StateTile{}
 898							}
 899						} else {
 900							v3 = (v3)[:0]
 901						}
 902						for !in.IsDelim(']') {
 903							var v4 *StateTile
 904							if in.IsNull() {
 905								in.Skip()
 906								v4 = nil
 907							} else {
 908								if v4 == nil {
 909									v4 = new(StateTile)
 910								}
 911								(*v4).UnmarshalEasyJSON(in)
 912							}
 913							v3 = append(v3, v4)
 914							in.WantComma()
 915						}
 916						in.Delim(']')
 917					}
 918					out.Board = append(out.Board, v3)
 919					in.WantComma()
 920				}
 921				in.Delim(']')
 922			}
 923		case "wordsLeft":
 924			if in.IsNull() {
 925				in.Skip()
 926				out.WordsLeft = nil
 927			} else {
 928				in.Delim('[')
 929				if out.WordsLeft == nil {
 930					if !in.IsDelim(']') {
 931						out.WordsLeft = make([]int, 0, 8)
 932					} else {
 933						out.WordsLeft = []int{}
 934					}
 935				} else {
 936					out.WordsLeft = (out.WordsLeft)[:0]
 937				}
 938				for !in.IsDelim(']') {
 939					var v5 int
 940					v5 = int(in.Int())
 941					out.WordsLeft = append(out.WordsLeft, v5)
 942					in.WantComma()
 943				}
 944				in.Delim(']')
 945			}
 946		case "lists":
 947			if in.IsNull() {
 948				in.Skip()
 949				out.Lists = nil
 950			} else {
 951				in.Delim('[')
 952				if out.Lists == nil {
 953					if !in.IsDelim(']') {
 954						out.Lists = make([]*StateWordList, 0, 8)
 955					} else {
 956						out.Lists = []*StateWordList{}
 957					}
 958				} else {
 959					out.Lists = (out.Lists)[:0]
 960				}
 961				for !in.IsDelim(']') {
 962					var v6 *StateWordList
 963					if in.IsNull() {
 964						in.Skip()
 965						v6 = nil
 966					} else {
 967						if v6 == nil {
 968							v6 = new(StateWordList)
 969						}
 970						(*v6).UnmarshalEasyJSON(in)
 971					}
 972					out.Lists = append(out.Lists, v6)
 973					in.WantComma()
 974				}
 975				in.Delim(']')
 976			}
 977		case "timer":
 978			if in.IsNull() {
 979				in.Skip()
 980				out.Timer = nil
 981			} else {
 982				if out.Timer == nil {
 983					out.Timer = new(StateTimer)
 984				}
 985				(*out.Timer).UnmarshalEasyJSON(in)
 986			}
 987		case "hideBomb":
 988			out.HideBomb = bool(in.Bool())
 989		default:
 990			in.AddError(&jlexer.LexerError{
 991				Offset: in.GetPos(),
 992				Reason: "unknown field",
 993				Data:   key,
 994			})
 995		}
 996		in.WantComma()
 997	}
 998	in.Delim('}')
 999	if isTopLevel {
1000		in.Consumed()
1001	}
1002}
1003func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol9(out *jwriter.Writer, in RoomState) {
1004	out.RawByte('{')
1005	first := true
1006	_ = first
1007	{
1008		const prefix string = ",\"version\":"
1009		out.RawString(prefix[1:])
1010		out.Int(int(in.Version))
1011	}
1012	{
1013		const prefix string = ",\"teams\":"
1014		out.RawString(prefix)
1015		if in.Teams == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1016			out.RawString("null")
1017		} else {
1018			out.RawByte('[')
1019			for v7, v8 := range in.Teams {
1020				if v7 > 0 {
1021					out.RawByte(',')
1022				}
1023				if v8 == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1024					out.RawString("null")
1025				} else {
1026					out.RawByte('[')
1027					for v9, v10 := range v8 {
1028						if v9 > 0 {
1029							out.RawByte(',')
1030						}
1031						if v10 == nil {
1032							out.RawString("null")
1033						} else {
1034							(*v10).MarshalEasyJSON(out)
1035						}
1036					}
1037					out.RawByte(']')
1038				}
1039			}
1040			out.RawByte(']')
1041		}
1042	}
1043	{
1044		const prefix string = ",\"turn\":"
1045		out.RawString(prefix)
1046		out.Int(int(in.Turn))
1047	}
1048	{
1049		const prefix string = ",\"winner\":"
1050		out.RawString(prefix)
1051		if in.Winner == nil {
1052			out.RawString("null")
1053		} else {
1054			out.Int(int(*in.Winner))
1055		}
1056	}
1057	{
1058		const prefix string = ",\"board\":"
1059		out.RawString(prefix)
1060		if in.Board == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1061			out.RawString("null")
1062		} else {
1063			out.RawByte('[')
1064			for v11, v12 := range in.Board {
1065				if v11 > 0 {
1066					out.RawByte(',')
1067				}
1068				if v12 == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1069					out.RawString("null")
1070				} else {
1071					out.RawByte('[')
1072					for v13, v14 := range v12 {
1073						if v13 > 0 {
1074							out.RawByte(',')
1075						}
1076						if v14 == nil {
1077							out.RawString("null")
1078						} else {
1079							(*v14).MarshalEasyJSON(out)
1080						}
1081					}
1082					out.RawByte(']')
1083				}
1084			}
1085			out.RawByte(']')
1086		}
1087	}
1088	{
1089		const prefix string = ",\"wordsLeft\":"
1090		out.RawString(prefix)
1091		if in.WordsLeft == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1092			out.RawString("null")
1093		} else {
1094			out.RawByte('[')
1095			for v15, v16 := range in.WordsLeft {
1096				if v15 > 0 {
1097					out.RawByte(',')
1098				}
1099				out.Int(int(v16))
1100			}
1101			out.RawByte(']')
1102		}
1103	}
1104	{
1105		const prefix string = ",\"lists\":"
1106		out.RawString(prefix)
1107		if in.Lists == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
1108			out.RawString("null")
1109		} else {
1110			out.RawByte('[')
1111			for v17, v18 := range in.Lists {
1112				if v17 > 0 {
1113					out.RawByte(',')
1114				}
1115				if v18 == nil {
1116					out.RawString("null")
1117				} else {
1118					(*v18).MarshalEasyJSON(out)
1119				}
1120			}
1121			out.RawByte(']')
1122		}
1123	}
1124	{
1125		const prefix string = ",\"timer\":"
1126		out.RawString(prefix)
1127		if in.Timer == nil {
1128			out.RawString("null")
1129		} else {
1130			(*in.Timer).MarshalEasyJSON(out)
1131		}
1132	}
1133	{
1134		const prefix string = ",\"hideBomb\":"
1135		out.RawString(prefix)
1136		out.Bool(bool(in.HideBomb))
1137	}
1138	out.RawByte('}')
1139}
1140
1141// MarshalJSON supports json.Marshaler interface
1142func (v RoomState) MarshalJSON() ([]byte, error) {
1143	w := jwriter.Writer{}
1144	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol9(&w, v)
1145	return w.Buffer.BuildBytes(), w.Error
1146}
1147
1148// MarshalEasyJSON supports easyjson.Marshaler interface
1149func (v RoomState) MarshalEasyJSON(w *jwriter.Writer) {
1150	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol9(w, v)
1151}
1152
1153// UnmarshalJSON supports json.Unmarshaler interface
1154func (v *RoomState) UnmarshalJSON(data []byte) error {
1155	r := jlexer.Lexer{Data: data}
1156	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol9(&r, v)
1157	return r.Error()
1158}
1159
1160// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1161func (v *RoomState) UnmarshalEasyJSON(l *jlexer.Lexer) {
1162	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol9(l, v)
1163}
1164func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol10(in *jlexer.Lexer, out *RoomResponse) {
1165	isTopLevel := in.IsStart()
1166	if in.IsNull() {
1167		if isTopLevel {
1168			in.Consumed()
1169		}
1170		in.Skip()
1171		return
1172	}
1173	in.Delim('{')
1174	for !in.IsDelim('}') {
1175		key := in.UnsafeString()
1176		in.WantColon()
1177		if in.IsNull() {
1178			in.Skip()
1179			in.WantComma()
1180			continue
1181		}
1182		switch key {
1183		case "id":
1184			if in.IsNull() {
1185				in.Skip()
1186				out.ID = nil
1187			} else {
1188				if out.ID == nil {
1189					out.ID = new(string)
1190				}
1191				*out.ID = string(in.String())
1192			}
1193		case "error":
1194			if in.IsNull() {
1195				in.Skip()
1196				out.Error = nil
1197			} else {
1198				if out.Error == nil {
1199					out.Error = new(string)
1200				}
1201				*out.Error = string(in.String())
1202			}
1203		default:
1204			in.AddError(&jlexer.LexerError{
1205				Offset: in.GetPos(),
1206				Reason: "unknown field",
1207				Data:   key,
1208			})
1209		}
1210		in.WantComma()
1211	}
1212	in.Delim('}')
1213	if isTopLevel {
1214		in.Consumed()
1215	}
1216}
1217func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol10(out *jwriter.Writer, in RoomResponse) {
1218	out.RawByte('{')
1219	first := true
1220	_ = first
1221	if in.ID != nil {
1222		const prefix string = ",\"id\":"
1223		first = false
1224		out.RawString(prefix[1:])
1225		out.String(string(*in.ID))
1226	}
1227	if in.Error != nil {
1228		const prefix string = ",\"error\":"
1229		if first {
1230			first = false
1231			out.RawString(prefix[1:])
1232		} else {
1233			out.RawString(prefix)
1234		}
1235		out.String(string(*in.Error))
1236	}
1237	out.RawByte('}')
1238}
1239
1240// MarshalJSON supports json.Marshaler interface
1241func (v RoomResponse) MarshalJSON() ([]byte, error) {
1242	w := jwriter.Writer{}
1243	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol10(&w, v)
1244	return w.Buffer.BuildBytes(), w.Error
1245}
1246
1247// MarshalEasyJSON supports easyjson.Marshaler interface
1248func (v RoomResponse) MarshalEasyJSON(w *jwriter.Writer) {
1249	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol10(w, v)
1250}
1251
1252// UnmarshalJSON supports json.Unmarshaler interface
1253func (v *RoomResponse) UnmarshalJSON(data []byte) error {
1254	r := jlexer.Lexer{Data: data}
1255	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol10(&r, v)
1256	return r.Error()
1257}
1258
1259// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1260func (v *RoomResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
1261	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol10(l, v)
1262}
1263func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol11(in *jlexer.Lexer, out *RoomRequest) {
1264	isTopLevel := in.IsStart()
1265	if in.IsNull() {
1266		if isTopLevel {
1267			in.Consumed()
1268		}
1269		in.Skip()
1270		return
1271	}
1272	in.Delim('{')
1273	for !in.IsDelim('}') {
1274		key := in.UnsafeString()
1275		in.WantColon()
1276		if in.IsNull() {
1277			in.Skip()
1278			in.WantComma()
1279			continue
1280		}
1281		switch key {
1282		case "roomName":
1283			out.RoomName = string(in.String())
1284		case "roomPass":
1285			out.RoomPass = string(in.String())
1286		case "create":
1287			out.Create = bool(in.Bool())
1288		default:
1289			in.AddError(&jlexer.LexerError{
1290				Offset: in.GetPos(),
1291				Reason: "unknown field",
1292				Data:   key,
1293			})
1294		}
1295		in.WantComma()
1296	}
1297	in.Delim('}')
1298	if isTopLevel {
1299		in.Consumed()
1300	}
1301}
1302func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol11(out *jwriter.Writer, in RoomRequest) {
1303	out.RawByte('{')
1304	first := true
1305	_ = first
1306	{
1307		const prefix string = ",\"roomName\":"
1308		out.RawString(prefix[1:])
1309		out.String(string(in.RoomName))
1310	}
1311	{
1312		const prefix string = ",\"roomPass\":"
1313		out.RawString(prefix)
1314		out.String(string(in.RoomPass))
1315	}
1316	{
1317		const prefix string = ",\"create\":"
1318		out.RawString(prefix)
1319		out.Bool(bool(in.Create))
1320	}
1321	out.RawByte('}')
1322}
1323
1324// MarshalJSON supports json.Marshaler interface
1325func (v RoomRequest) MarshalJSON() ([]byte, error) {
1326	w := jwriter.Writer{}
1327	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol11(&w, v)
1328	return w.Buffer.BuildBytes(), w.Error
1329}
1330
1331// MarshalEasyJSON supports easyjson.Marshaler interface
1332func (v RoomRequest) MarshalEasyJSON(w *jwriter.Writer) {
1333	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol11(w, v)
1334}
1335
1336// UnmarshalJSON supports json.Unmarshaler interface
1337func (v *RoomRequest) UnmarshalJSON(data []byte) error {
1338	r := jlexer.Lexer{Data: data}
1339	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol11(&r, v)
1340	return r.Error()
1341}
1342
1343// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1344func (v *RoomRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
1345	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol11(l, v)
1346}
1347func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol12(in *jlexer.Lexer, out *RevealParams) {
1348	isTopLevel := in.IsStart()
1349	if in.IsNull() {
1350		if isTopLevel {
1351			in.Consumed()
1352		}
1353		in.Skip()
1354		return
1355	}
1356	in.Delim('{')
1357	for !in.IsDelim('}') {
1358		key := in.UnsafeString()
1359		in.WantColon()
1360		if in.IsNull() {
1361			in.Skip()
1362			in.WantComma()
1363			continue
1364		}
1365		switch key {
1366		case "row":
1367			out.Row = int(in.Int())
1368		case "col":
1369			out.Col = int(in.Int())
1370		default:
1371			in.AddError(&jlexer.LexerError{
1372				Offset: in.GetPos(),
1373				Reason: "unknown field",
1374				Data:   key,
1375			})
1376		}
1377		in.WantComma()
1378	}
1379	in.Delim('}')
1380	if isTopLevel {
1381		in.Consumed()
1382	}
1383}
1384func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol12(out *jwriter.Writer, in RevealParams) {
1385	out.RawByte('{')
1386	first := true
1387	_ = first
1388	{
1389		const prefix string = ",\"row\":"
1390		out.RawString(prefix[1:])
1391		out.Int(int(in.Row))
1392	}
1393	{
1394		const prefix string = ",\"col\":"
1395		out.RawString(prefix)
1396		out.Int(int(in.Col))
1397	}
1398	out.RawByte('}')
1399}
1400
1401// MarshalJSON supports json.Marshaler interface
1402func (v RevealParams) MarshalJSON() ([]byte, error) {
1403	w := jwriter.Writer{}
1404	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol12(&w, v)
1405	return w.Buffer.BuildBytes(), w.Error
1406}
1407
1408// MarshalEasyJSON supports easyjson.Marshaler interface
1409func (v RevealParams) MarshalEasyJSON(w *jwriter.Writer) {
1410	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol12(w, v)
1411}
1412
1413// UnmarshalJSON supports json.Unmarshaler interface
1414func (v *RevealParams) UnmarshalJSON(data []byte) error {
1415	r := jlexer.Lexer{Data: data}
1416	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol12(&r, v)
1417	return r.Error()
1418}
1419
1420// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1421func (v *RevealParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1422	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol12(l, v)
1423}
1424func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol13(in *jlexer.Lexer, out *RemovePackParams) {
1425	isTopLevel := in.IsStart()
1426	if in.IsNull() {
1427		if isTopLevel {
1428			in.Consumed()
1429		}
1430		in.Skip()
1431		return
1432	}
1433	in.Delim('{')
1434	for !in.IsDelim('}') {
1435		key := in.UnsafeString()
1436		in.WantColon()
1437		if in.IsNull() {
1438			in.Skip()
1439			in.WantComma()
1440			continue
1441		}
1442		switch key {
1443		case "num":
1444			out.Num = int(in.Int())
1445		default:
1446			in.AddError(&jlexer.LexerError{
1447				Offset: in.GetPos(),
1448				Reason: "unknown field",
1449				Data:   key,
1450			})
1451		}
1452		in.WantComma()
1453	}
1454	in.Delim('}')
1455	if isTopLevel {
1456		in.Consumed()
1457	}
1458}
1459func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol13(out *jwriter.Writer, in RemovePackParams) {
1460	out.RawByte('{')
1461	first := true
1462	_ = first
1463	{
1464		const prefix string = ",\"num\":"
1465		out.RawString(prefix[1:])
1466		out.Int(int(in.Num))
1467	}
1468	out.RawByte('}')
1469}
1470
1471// MarshalJSON supports json.Marshaler interface
1472func (v RemovePackParams) MarshalJSON() ([]byte, error) {
1473	w := jwriter.Writer{}
1474	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol13(&w, v)
1475	return w.Buffer.BuildBytes(), w.Error
1476}
1477
1478// MarshalEasyJSON supports easyjson.Marshaler interface
1479func (v RemovePackParams) MarshalEasyJSON(w *jwriter.Writer) {
1480	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol13(w, v)
1481}
1482
1483// UnmarshalJSON supports json.Unmarshaler interface
1484func (v *RemovePackParams) UnmarshalJSON(data []byte) error {
1485	r := jlexer.Lexer{Data: data}
1486	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol13(&r, v)
1487	return r.Error()
1488}
1489
1490// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1491func (v *RemovePackParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1492	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol13(l, v)
1493}
1494func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol14(in *jlexer.Lexer, out *RandomizeTeamsParams) {
1495	isTopLevel := in.IsStart()
1496	if in.IsNull() {
1497		if isTopLevel {
1498			in.Consumed()
1499		}
1500		in.Skip()
1501		return
1502	}
1503	in.Delim('{')
1504	for !in.IsDelim('}') {
1505		key := in.UnsafeString()
1506		in.WantColon()
1507		if in.IsNull() {
1508			in.Skip()
1509			in.WantComma()
1510			continue
1511		}
1512		switch key {
1513		default:
1514			in.AddError(&jlexer.LexerError{
1515				Offset: in.GetPos(),
1516				Reason: "unknown field",
1517				Data:   key,
1518			})
1519		}
1520		in.WantComma()
1521	}
1522	in.Delim('}')
1523	if isTopLevel {
1524		in.Consumed()
1525	}
1526}
1527func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol14(out *jwriter.Writer, in RandomizeTeamsParams) {
1528	out.RawByte('{')
1529	first := true
1530	_ = first
1531	out.RawByte('}')
1532}
1533
1534// MarshalJSON supports json.Marshaler interface
1535func (v RandomizeTeamsParams) MarshalJSON() ([]byte, error) {
1536	w := jwriter.Writer{}
1537	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol14(&w, v)
1538	return w.Buffer.BuildBytes(), w.Error
1539}
1540
1541// MarshalEasyJSON supports easyjson.Marshaler interface
1542func (v RandomizeTeamsParams) MarshalEasyJSON(w *jwriter.Writer) {
1543	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol14(w, v)
1544}
1545
1546// UnmarshalJSON supports json.Unmarshaler interface
1547func (v *RandomizeTeamsParams) UnmarshalJSON(data []byte) error {
1548	r := jlexer.Lexer{Data: data}
1549	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol14(&r, v)
1550	return r.Error()
1551}
1552
1553// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1554func (v *RandomizeTeamsParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1555	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol14(l, v)
1556}
1557func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol15(in *jlexer.Lexer, out *NewGameParams) {
1558	isTopLevel := in.IsStart()
1559	if in.IsNull() {
1560		if isTopLevel {
1561			in.Consumed()
1562		}
1563		in.Skip()
1564		return
1565	}
1566	in.Delim('{')
1567	for !in.IsDelim('}') {
1568		key := in.UnsafeString()
1569		in.WantColon()
1570		if in.IsNull() {
1571			in.Skip()
1572			in.WantComma()
1573			continue
1574		}
1575		switch key {
1576		default:
1577			in.AddError(&jlexer.LexerError{
1578				Offset: in.GetPos(),
1579				Reason: "unknown field",
1580				Data:   key,
1581			})
1582		}
1583		in.WantComma()
1584	}
1585	in.Delim('}')
1586	if isTopLevel {
1587		in.Consumed()
1588	}
1589}
1590func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol15(out *jwriter.Writer, in NewGameParams) {
1591	out.RawByte('{')
1592	first := true
1593	_ = first
1594	out.RawByte('}')
1595}
1596
1597// MarshalJSON supports json.Marshaler interface
1598func (v NewGameParams) MarshalJSON() ([]byte, error) {
1599	w := jwriter.Writer{}
1600	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol15(&w, v)
1601	return w.Buffer.BuildBytes(), w.Error
1602}
1603
1604// MarshalEasyJSON supports easyjson.Marshaler interface
1605func (v NewGameParams) MarshalEasyJSON(w *jwriter.Writer) {
1606	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol15(w, v)
1607}
1608
1609// UnmarshalJSON supports json.Unmarshaler interface
1610func (v *NewGameParams) UnmarshalJSON(data []byte) error {
1611	r := jlexer.Lexer{Data: data}
1612	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol15(&r, v)
1613	return r.Error()
1614}
1615
1616// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1617func (v *NewGameParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1618	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol15(l, v)
1619}
1620func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol16(in *jlexer.Lexer, out *EndTurnParams) {
1621	isTopLevel := in.IsStart()
1622	if in.IsNull() {
1623		if isTopLevel {
1624			in.Consumed()
1625		}
1626		in.Skip()
1627		return
1628	}
1629	in.Delim('{')
1630	for !in.IsDelim('}') {
1631		key := in.UnsafeString()
1632		in.WantColon()
1633		if in.IsNull() {
1634			in.Skip()
1635			in.WantComma()
1636			continue
1637		}
1638		switch key {
1639		default:
1640			in.AddError(&jlexer.LexerError{
1641				Offset: in.GetPos(),
1642				Reason: "unknown field",
1643				Data:   key,
1644			})
1645		}
1646		in.WantComma()
1647	}
1648	in.Delim('}')
1649	if isTopLevel {
1650		in.Consumed()
1651	}
1652}
1653func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol16(out *jwriter.Writer, in EndTurnParams) {
1654	out.RawByte('{')
1655	first := true
1656	_ = first
1657	out.RawByte('}')
1658}
1659
1660// MarshalJSON supports json.Marshaler interface
1661func (v EndTurnParams) MarshalJSON() ([]byte, error) {
1662	w := jwriter.Writer{}
1663	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol16(&w, v)
1664	return w.Buffer.BuildBytes(), w.Error
1665}
1666
1667// MarshalEasyJSON supports easyjson.Marshaler interface
1668func (v EndTurnParams) MarshalEasyJSON(w *jwriter.Writer) {
1669	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol16(w, v)
1670}
1671
1672// UnmarshalJSON supports json.Unmarshaler interface
1673func (v *EndTurnParams) UnmarshalJSON(data []byte) error {
1674	r := jlexer.Lexer{Data: data}
1675	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol16(&r, v)
1676	return r.Error()
1677}
1678
1679// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1680func (v *EndTurnParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1681	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol16(l, v)
1682}
1683func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol17(in *jlexer.Lexer, out *ClientNote) {
1684	isTopLevel := in.IsStart()
1685	if in.IsNull() {
1686		if isTopLevel {
1687			in.Consumed()
1688		}
1689		in.Skip()
1690		return
1691	}
1692	in.Delim('{')
1693	for !in.IsDelim('}') {
1694		key := in.UnsafeString()
1695		in.WantColon()
1696		if in.IsNull() {
1697			in.Skip()
1698			in.WantComma()
1699			continue
1700		}
1701		switch key {
1702		case "method":
1703			out.Method = ClientMethod(in.String())
1704		case "version":
1705			out.Version = int(in.Int())
1706		case "params":
1707			(out.Params).UnmarshalEasyJSON(in)
1708		default:
1709			in.AddError(&jlexer.LexerError{
1710				Offset: in.GetPos(),
1711				Reason: "unknown field",
1712				Data:   key,
1713			})
1714		}
1715		in.WantComma()
1716	}
1717	in.Delim('}')
1718	if isTopLevel {
1719		in.Consumed()
1720	}
1721}
1722func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol17(out *jwriter.Writer, in ClientNote) {
1723	out.RawByte('{')
1724	first := true
1725	_ = first
1726	{
1727		const prefix string = ",\"method\":"
1728		out.RawString(prefix[1:])
1729		out.String(string(in.Method))
1730	}
1731	{
1732		const prefix string = ",\"version\":"
1733		out.RawString(prefix)
1734		out.Int(int(in.Version))
1735	}
1736	{
1737		const prefix string = ",\"params\":"
1738		out.RawString(prefix)
1739		(in.Params).MarshalEasyJSON(out)
1740	}
1741	out.RawByte('}')
1742}
1743
1744// MarshalJSON supports json.Marshaler interface
1745func (v ClientNote) MarshalJSON() ([]byte, error) {
1746	w := jwriter.Writer{}
1747	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol17(&w, v)
1748	return w.Buffer.BuildBytes(), w.Error
1749}
1750
1751// MarshalEasyJSON supports easyjson.Marshaler interface
1752func (v ClientNote) MarshalEasyJSON(w *jwriter.Writer) {
1753	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol17(w, v)
1754}
1755
1756// UnmarshalJSON supports json.Unmarshaler interface
1757func (v *ClientNote) UnmarshalJSON(data []byte) error {
1758	r := jlexer.Lexer{Data: data}
1759	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol17(&r, v)
1760	return r.Error()
1761}
1762
1763// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1764func (v *ClientNote) UnmarshalEasyJSON(l *jlexer.Lexer) {
1765	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol17(l, v)
1766}
1767func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol18(in *jlexer.Lexer, out *ChangeTurnTimeParams) {
1768	isTopLevel := in.IsStart()
1769	if in.IsNull() {
1770		if isTopLevel {
1771			in.Consumed()
1772		}
1773		in.Skip()
1774		return
1775	}
1776	in.Delim('{')
1777	for !in.IsDelim('}') {
1778		key := in.UnsafeString()
1779		in.WantColon()
1780		if in.IsNull() {
1781			in.Skip()
1782			in.WantComma()
1783			continue
1784		}
1785		switch key {
1786		case "seconds":
1787			out.Seconds = int(in.Int())
1788		default:
1789			in.AddError(&jlexer.LexerError{
1790				Offset: in.GetPos(),
1791				Reason: "unknown field",
1792				Data:   key,
1793			})
1794		}
1795		in.WantComma()
1796	}
1797	in.Delim('}')
1798	if isTopLevel {
1799		in.Consumed()
1800	}
1801}
1802func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol18(out *jwriter.Writer, in ChangeTurnTimeParams) {
1803	out.RawByte('{')
1804	first := true
1805	_ = first
1806	{
1807		const prefix string = ",\"seconds\":"
1808		out.RawString(prefix[1:])
1809		out.Int(int(in.Seconds))
1810	}
1811	out.RawByte('}')
1812}
1813
1814// MarshalJSON supports json.Marshaler interface
1815func (v ChangeTurnTimeParams) MarshalJSON() ([]byte, error) {
1816	w := jwriter.Writer{}
1817	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol18(&w, v)
1818	return w.Buffer.BuildBytes(), w.Error
1819}
1820
1821// MarshalEasyJSON supports easyjson.Marshaler interface
1822func (v ChangeTurnTimeParams) MarshalEasyJSON(w *jwriter.Writer) {
1823	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol18(w, v)
1824}
1825
1826// UnmarshalJSON supports json.Unmarshaler interface
1827func (v *ChangeTurnTimeParams) UnmarshalJSON(data []byte) error {
1828	r := jlexer.Lexer{Data: data}
1829	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol18(&r, v)
1830	return r.Error()
1831}
1832
1833// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1834func (v *ChangeTurnTimeParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1835	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol18(l, v)
1836}
1837func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol19(in *jlexer.Lexer, out *ChangeTurnModeParams) {
1838	isTopLevel := in.IsStart()
1839	if in.IsNull() {
1840		if isTopLevel {
1841			in.Consumed()
1842		}
1843		in.Skip()
1844		return
1845	}
1846	in.Delim('{')
1847	for !in.IsDelim('}') {
1848		key := in.UnsafeString()
1849		in.WantColon()
1850		if in.IsNull() {
1851			in.Skip()
1852			in.WantComma()
1853			continue
1854		}
1855		switch key {
1856		case "timed":
1857			out.Timed = bool(in.Bool())
1858		default:
1859			in.AddError(&jlexer.LexerError{
1860				Offset: in.GetPos(),
1861				Reason: "unknown field",
1862				Data:   key,
1863			})
1864		}
1865		in.WantComma()
1866	}
1867	in.Delim('}')
1868	if isTopLevel {
1869		in.Consumed()
1870	}
1871}
1872func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol19(out *jwriter.Writer, in ChangeTurnModeParams) {
1873	out.RawByte('{')
1874	first := true
1875	_ = first
1876	{
1877		const prefix string = ",\"timed\":"
1878		out.RawString(prefix[1:])
1879		out.Bool(bool(in.Timed))
1880	}
1881	out.RawByte('}')
1882}
1883
1884// MarshalJSON supports json.Marshaler interface
1885func (v ChangeTurnModeParams) MarshalJSON() ([]byte, error) {
1886	w := jwriter.Writer{}
1887	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol19(&w, v)
1888	return w.Buffer.BuildBytes(), w.Error
1889}
1890
1891// MarshalEasyJSON supports easyjson.Marshaler interface
1892func (v ChangeTurnModeParams) MarshalEasyJSON(w *jwriter.Writer) {
1893	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol19(w, v)
1894}
1895
1896// UnmarshalJSON supports json.Unmarshaler interface
1897func (v *ChangeTurnModeParams) UnmarshalJSON(data []byte) error {
1898	r := jlexer.Lexer{Data: data}
1899	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol19(&r, v)
1900	return r.Error()
1901}
1902
1903// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1904func (v *ChangeTurnModeParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1905	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol19(l, v)
1906}
1907func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol20(in *jlexer.Lexer, out *ChangeTeamParams) {
1908	isTopLevel := in.IsStart()
1909	if in.IsNull() {
1910		if isTopLevel {
1911			in.Consumed()
1912		}
1913		in.Skip()
1914		return
1915	}
1916	in.Delim('{')
1917	for !in.IsDelim('}') {
1918		key := in.UnsafeString()
1919		in.WantColon()
1920		if in.IsNull() {
1921			in.Skip()
1922			in.WantComma()
1923			continue
1924		}
1925		switch key {
1926		case "team":
1927			out.Team = game.Team(in.Int())
1928		default:
1929			in.AddError(&jlexer.LexerError{
1930				Offset: in.GetPos(),
1931				Reason: "unknown field",
1932				Data:   key,
1933			})
1934		}
1935		in.WantComma()
1936	}
1937	in.Delim('}')
1938	if isTopLevel {
1939		in.Consumed()
1940	}
1941}
1942func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol20(out *jwriter.Writer, in ChangeTeamParams) {
1943	out.RawByte('{')
1944	first := true
1945	_ = first
1946	{
1947		const prefix string = ",\"team\":"
1948		out.RawString(prefix[1:])
1949		out.Int(int(in.Team))
1950	}
1951	out.RawByte('}')
1952}
1953
1954// MarshalJSON supports json.Marshaler interface
1955func (v ChangeTeamParams) MarshalJSON() ([]byte, error) {
1956	w := jwriter.Writer{}
1957	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol20(&w, v)
1958	return w.Buffer.BuildBytes(), w.Error
1959}
1960
1961// MarshalEasyJSON supports easyjson.Marshaler interface
1962func (v ChangeTeamParams) MarshalEasyJSON(w *jwriter.Writer) {
1963	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol20(w, v)
1964}
1965
1966// UnmarshalJSON supports json.Unmarshaler interface
1967func (v *ChangeTeamParams) UnmarshalJSON(data []byte) error {
1968	r := jlexer.Lexer{Data: data}
1969	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol20(&r, v)
1970	return r.Error()
1971}
1972
1973// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
1974func (v *ChangeTeamParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
1975	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol20(l, v)
1976}
1977func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol21(in *jlexer.Lexer, out *ChangeRoleParams) {
1978	isTopLevel := in.IsStart()
1979	if in.IsNull() {
1980		if isTopLevel {
1981			in.Consumed()
1982		}
1983		in.Skip()
1984		return
1985	}
1986	in.Delim('{')
1987	for !in.IsDelim('}') {
1988		key := in.UnsafeString()
1989		in.WantColon()
1990		if in.IsNull() {
1991			in.Skip()
1992			in.WantComma()
1993			continue
1994		}
1995		switch key {
1996		case "spymaster":
1997			out.Spymaster = bool(in.Bool())
1998		default:
1999			in.AddError(&jlexer.LexerError{
2000				Offset: in.GetPos(),
2001				Reason: "unknown field",
2002				Data:   key,
2003			})
2004		}
2005		in.WantComma()
2006	}
2007	in.Delim('}')
2008	if isTopLevel {
2009		in.Consumed()
2010	}
2011}
2012func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol21(out *jwriter.Writer, in ChangeRoleParams) {
2013	out.RawByte('{')
2014	first := true
2015	_ = first
2016	{
2017		const prefix string = ",\"spymaster\":"
2018		out.RawString(prefix[1:])
2019		out.Bool(bool(in.Spymaster))
2020	}
2021	out.RawByte('}')
2022}
2023
2024// MarshalJSON supports json.Marshaler interface
2025func (v ChangeRoleParams) MarshalJSON() ([]byte, error) {
2026	w := jwriter.Writer{}
2027	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol21(&w, v)
2028	return w.Buffer.BuildBytes(), w.Error
2029}
2030
2031// MarshalEasyJSON supports easyjson.Marshaler interface
2032func (v ChangeRoleParams) MarshalEasyJSON(w *jwriter.Writer) {
2033	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol21(w, v)
2034}
2035
2036// UnmarshalJSON supports json.Unmarshaler interface
2037func (v *ChangeRoleParams) UnmarshalJSON(data []byte) error {
2038	r := jlexer.Lexer{Data: data}
2039	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol21(&r, v)
2040	return r.Error()
2041}
2042
2043// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
2044func (v *ChangeRoleParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
2045	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol21(l, v)
2046}
2047func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol22(in *jlexer.Lexer, out *ChangePackParams) {
2048	isTopLevel := in.IsStart()
2049	if in.IsNull() {
2050		if isTopLevel {
2051			in.Consumed()
2052		}
2053		in.Skip()
2054		return
2055	}
2056	in.Delim('{')
2057	for !in.IsDelim('}') {
2058		key := in.UnsafeString()
2059		in.WantColon()
2060		if in.IsNull() {
2061			in.Skip()
2062			in.WantComma()
2063			continue
2064		}
2065		switch key {
2066		case "num":
2067			out.Num = int(in.Int())
2068		case "enable":
2069			out.Enable = bool(in.Bool())
2070		default:
2071			in.AddError(&jlexer.LexerError{
2072				Offset: in.GetPos(),
2073				Reason: "unknown field",
2074				Data:   key,
2075			})
2076		}
2077		in.WantComma()
2078	}
2079	in.Delim('}')
2080	if isTopLevel {
2081		in.Consumed()
2082	}
2083}
2084func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol22(out *jwriter.Writer, in ChangePackParams) {
2085	out.RawByte('{')
2086	first := true
2087	_ = first
2088	{
2089		const prefix string = ",\"num\":"
2090		out.RawString(prefix[1:])
2091		out.Int(int(in.Num))
2092	}
2093	{
2094		const prefix string = ",\"enable\":"
2095		out.RawString(prefix)
2096		out.Bool(bool(in.Enable))
2097	}
2098	out.RawByte('}')
2099}
2100
2101// MarshalJSON supports json.Marshaler interface
2102func (v ChangePackParams) MarshalJSON() ([]byte, error) {
2103	w := jwriter.Writer{}
2104	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol22(&w, v)
2105	return w.Buffer.BuildBytes(), w.Error
2106}
2107
2108// MarshalEasyJSON supports easyjson.Marshaler interface
2109func (v ChangePackParams) MarshalEasyJSON(w *jwriter.Writer) {
2110	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol22(w, v)
2111}
2112
2113// UnmarshalJSON supports json.Unmarshaler interface
2114func (v *ChangePackParams) UnmarshalJSON(data []byte) error {
2115	r := jlexer.Lexer{Data: data}
2116	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol22(&r, v)
2117	return r.Error()
2118}
2119
2120// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
2121func (v *ChangePackParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
2122	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol22(l, v)
2123}
2124func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol23(in *jlexer.Lexer, out *ChangeNicknameParams) {
2125	isTopLevel := in.IsStart()
2126	if in.IsNull() {
2127		if isTopLevel {
2128			in.Consumed()
2129		}
2130		in.Skip()
2131		return
2132	}
2133	in.Delim('{')
2134	for !in.IsDelim('}') {
2135		key := in.UnsafeString()
2136		in.WantColon()
2137		if in.IsNull() {
2138			in.Skip()
2139			in.WantComma()
2140			continue
2141		}
2142		switch key {
2143		case "nickname":
2144			out.Nickname = string(in.String())
2145		default:
2146			in.AddError(&jlexer.LexerError{
2147				Offset: in.GetPos(),
2148				Reason: "unknown field",
2149				Data:   key,
2150			})
2151		}
2152		in.WantComma()
2153	}
2154	in.Delim('}')
2155	if isTopLevel {
2156		in.Consumed()
2157	}
2158}
2159func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol23(out *jwriter.Writer, in ChangeNicknameParams) {
2160	out.RawByte('{')
2161	first := true
2162	_ = first
2163	{
2164		const prefix string = ",\"nickname\":"
2165		out.RawString(prefix[1:])
2166		out.String(string(in.Nickname))
2167	}
2168	out.RawByte('}')
2169}
2170
2171// MarshalJSON supports json.Marshaler interface
2172func (v ChangeNicknameParams) MarshalJSON() ([]byte, error) {
2173	w := jwriter.Writer{}
2174	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol23(&w, v)
2175	return w.Buffer.BuildBytes(), w.Error
2176}
2177
2178// MarshalEasyJSON supports easyjson.Marshaler interface
2179func (v ChangeNicknameParams) MarshalEasyJSON(w *jwriter.Writer) {
2180	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol23(w, v)
2181}
2182
2183// UnmarshalJSON supports json.Unmarshaler interface
2184func (v *ChangeNicknameParams) UnmarshalJSON(data []byte) error {
2185	r := jlexer.Lexer{Data: data}
2186	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol23(&r, v)
2187	return r.Error()
2188}
2189
2190// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
2191func (v *ChangeNicknameParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
2192	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol23(l, v)
2193}
2194func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol24(in *jlexer.Lexer, out *ChangeHideBombParams) {
2195	isTopLevel := in.IsStart()
2196	if in.IsNull() {
2197		if isTopLevel {
2198			in.Consumed()
2199		}
2200		in.Skip()
2201		return
2202	}
2203	in.Delim('{')
2204	for !in.IsDelim('}') {
2205		key := in.UnsafeString()
2206		in.WantColon()
2207		if in.IsNull() {
2208			in.Skip()
2209			in.WantComma()
2210			continue
2211		}
2212		switch key {
2213		case "hideBomb":
2214			out.HideBomb = bool(in.Bool())
2215		default:
2216			in.AddError(&jlexer.LexerError{
2217				Offset: in.GetPos(),
2218				Reason: "unknown field",
2219				Data:   key,
2220			})
2221		}
2222		in.WantComma()
2223	}
2224	in.Delim('}')
2225	if isTopLevel {
2226		in.Consumed()
2227	}
2228}
2229func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol24(out *jwriter.Writer, in ChangeHideBombParams) {
2230	out.RawByte('{')
2231	first := true
2232	_ = first
2233	{
2234		const prefix string = ",\"hideBomb\":"
2235		out.RawString(prefix[1:])
2236		out.Bool(bool(in.HideBomb))
2237	}
2238	out.RawByte('}')
2239}
2240
2241// MarshalJSON supports json.Marshaler interface
2242func (v ChangeHideBombParams) MarshalJSON() ([]byte, error) {
2243	w := jwriter.Writer{}
2244	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol24(&w, v)
2245	return w.Buffer.BuildBytes(), w.Error
2246}
2247
2248// MarshalEasyJSON supports easyjson.Marshaler interface
2249func (v ChangeHideBombParams) MarshalEasyJSON(w *jwriter.Writer) {
2250	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol24(w, v)
2251}
2252
2253// UnmarshalJSON supports json.Unmarshaler interface
2254func (v *ChangeHideBombParams) UnmarshalJSON(data []byte) error {
2255	r := jlexer.Lexer{Data: data}
2256	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol24(&r, v)
2257	return r.Error()
2258}
2259
2260// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
2261func (v *ChangeHideBombParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
2262	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol24(l, v)
2263}
2264func easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol25(in *jlexer.Lexer, out *AddPacksParams) {
2265	isTopLevel := in.IsStart()
2266	if in.IsNull() {
2267		if isTopLevel {
2268			in.Consumed()
2269		}
2270		in.Skip()
2271		return
2272	}
2273	in.Delim('{')
2274	for !in.IsDelim('}') {
2275		key := in.UnsafeString()
2276		in.WantColon()
2277		if in.IsNull() {
2278			in.Skip()
2279			in.WantComma()
2280			continue
2281		}
2282		switch key {
2283		case "packs":
2284			if in.IsNull() {
2285				in.Skip()
2286				out.Packs = nil
2287			} else {
2288				in.Delim('[')
2289				if out.Packs == nil {
2290					if !in.IsDelim(']') {
2291						out.Packs = make([]struct {
2292							Name  string   `json:"name"`
2293							Words []string `json:"words"`
2294						}, 0, 1)
2295					} else {
2296						out.Packs = []struct {
2297							Name  string   `json:"name"`
2298							Words []string `json:"words"`
2299						}{}
2300					}
2301				} else {
2302					out.Packs = (out.Packs)[:0]
2303				}
2304				for !in.IsDelim(']') {
2305					var v19 struct {
2306						Name  string   `json:"name"`
2307						Words []string `json:"words"`
2308					}
2309					easyjsonE4425964Decode(in, &v19)
2310					out.Packs = append(out.Packs, v19)
2311					in.WantComma()
2312				}
2313				in.Delim(']')
2314			}
2315		default:
2316			in.AddError(&jlexer.LexerError{
2317				Offset: in.GetPos(),
2318				Reason: "unknown field",
2319				Data:   key,
2320			})
2321		}
2322		in.WantComma()
2323	}
2324	in.Delim('}')
2325	if isTopLevel {
2326		in.Consumed()
2327	}
2328}
2329func easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol25(out *jwriter.Writer, in AddPacksParams) {
2330	out.RawByte('{')
2331	first := true
2332	_ = first
2333	{
2334		const prefix string = ",\"packs\":"
2335		out.RawString(prefix[1:])
2336		if in.Packs == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
2337			out.RawString("null")
2338		} else {
2339			out.RawByte('[')
2340			for v20, v21 := range in.Packs {
2341				if v20 > 0 {
2342					out.RawByte(',')
2343				}
2344				easyjsonE4425964Encode(out, v21)
2345			}
2346			out.RawByte(']')
2347		}
2348	}
2349	out.RawByte('}')
2350}
2351
2352// MarshalJSON supports json.Marshaler interface
2353func (v AddPacksParams) MarshalJSON() ([]byte, error) {
2354	w := jwriter.Writer{}
2355	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol25(&w, v)
2356	return w.Buffer.BuildBytes(), w.Error
2357}
2358
2359// MarshalEasyJSON supports easyjson.Marshaler interface
2360func (v AddPacksParams) MarshalEasyJSON(w *jwriter.Writer) {
2361	easyjsonE4425964EncodeGithubComZikaerohCodiesInternalProtocol25(w, v)
2362}
2363
2364// UnmarshalJSON supports json.Unmarshaler interface
2365func (v *AddPacksParams) UnmarshalJSON(data []byte) error {
2366	r := jlexer.Lexer{Data: data}
2367	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol25(&r, v)
2368	return r.Error()
2369}
2370
2371// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
2372func (v *AddPacksParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
2373	easyjsonE4425964DecodeGithubComZikaerohCodiesInternalProtocol25(l, v)
2374}
2375func easyjsonE4425964Decode(in *jlexer.Lexer, out *struct {
2376	Name  string   `json:"name"`
2377	Words []string `json:"words"`
2378}) {
2379	isTopLevel := in.IsStart()
2380	if in.IsNull() {
2381		if isTopLevel {
2382			in.Consumed()
2383		}
2384		in.Skip()
2385		return
2386	}
2387	in.Delim('{')
2388	for !in.IsDelim('}') {
2389		key := in.UnsafeString()
2390		in.WantColon()
2391		if in.IsNull() {
2392			in.Skip()
2393			in.WantComma()
2394			continue
2395		}
2396		switch key {
2397		case "name":
2398			out.Name = string(in.String())
2399		case "words":
2400			if in.IsNull() {
2401				in.Skip()
2402				out.Words = nil
2403			} else {
2404				in.Delim('[')
2405				if out.Words == nil {
2406					if !in.IsDelim(']') {
2407						out.Words = make([]string, 0, 4)
2408					} else {
2409						out.Words = []string{}
2410					}
2411				} else {
2412					out.Words = (out.Words)[:0]
2413				}
2414				for !in.IsDelim(']') {
2415					var v22 string
2416					v22 = string(in.String())
2417					out.Words = append(out.Words, v22)
2418					in.WantComma()
2419				}
2420				in.Delim(']')
2421			}
2422		default:
2423			in.AddError(&jlexer.LexerError{
2424				Offset: in.GetPos(),
2425				Reason: "unknown field",
2426				Data:   key,
2427			})
2428		}
2429		in.WantComma()
2430	}
2431	in.Delim('}')
2432	if isTopLevel {
2433		in.Consumed()
2434	}
2435}
2436func easyjsonE4425964Encode(out *jwriter.Writer, in struct {
2437	Name  string   `json:"name"`
2438	Words []string `json:"words"`
2439}) {
2440	out.RawByte('{')
2441	first := true
2442	_ = first
2443	{
2444		const prefix string = ",\"name\":"
2445		out.RawString(prefix[1:])
2446		out.String(string(in.Name))
2447	}
2448	{
2449		const prefix string = ",\"words\":"
2450		out.RawString(prefix)
2451		if in.Words == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
2452			out.RawString("null")
2453		} else {
2454			out.RawByte('[')
2455			for v23, v24 := range in.Words {
2456				if v23 > 0 {
2457					out.RawByte(',')
2458				}
2459				out.String(string(v24))
2460			}
2461			out.RawByte(']')
2462		}
2463	}
2464	out.RawByte('}')
2465}