using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using CodeStage.AntiCheat.ObscuredTypes; using Cpp2IlInjected; using RecNet; using RecRoom; using RecRoom.Async; using RecRoom.Consumable; using RecRoom.Core; using TMPro; using UnityEngine; namespace AGUI.StackedUI { // Token: 0x02001B3A RID: 6970 [Token(Token = "0x2001B3A")] [StructLayout(3)] public class ChooseFreeGiftScreen : WatchUIFlow { // Token: 0x0600BAEA RID: 47850 RVA: 0x002BF924 File Offset: 0x002BDB24 [Token(Token = "0x600BAEA")] [Address(RVA = "0x1189A70", Offset = "0x1188470", VA = "0x181189A70")] private void Awake() { IPromise promise = BBEFMHAEEEA.GMOMCLADPII(); Action action = new Action(this.ONDKPMKIILI); int num = 0; num += num; num++; int k__BackingField = Matchmaking.HMCJLLMDAAM.k__BackingField; this.HLHHPEKALPI = k__BackingField; IPromise promise2 = PEGGCEDHBOF.NFKMGNHDCMN(k__BackingField); Action action2 = new Action(this.JIAEBHEDOKF); throw new NullReferenceException(); } // Token: 0x0600BAEB RID: 47851 RVA: 0x002BF984 File Offset: 0x002BDB84 [Token(Token = "0x600BAEB")] [Address(RVA = "0x118AF50", Offset = "0x1189950", VA = "0x18118AF50", Slot = "10")] public override void OnFlowEntered(StackedUIFlowBase BFHJBBGCMAN) { base.OnFlowEntered(BFHJBBGCMAN); TextMeshProUGUI textMeshProUGUI = this.infoText; string empty = string.Empty; textMeshProUGUI.text = empty; Action action = new Action(this.FOEEGIHMCON); ISchedulerPromise schedulerPromise = this.InvokeNextEndOfFrame(action); } // Token: 0x0600BAEC RID: 47852 RVA: 0x002BF9C8 File Offset: 0x002BDBC8 [Token(Token = "0x600BAEC")] [Address(RVA = "0x118AFF0", Offset = "0x11899F0", VA = "0x18118AFF0")] public void ShowScreen(CreatorFreeGiftButton.KICGKKBJDLH LIELCAEFGKK) { this.LIELCAEFGKK = LIELCAEFGKK; WatchUI local = WatchUI.BFPPPLIJIGC; int num = 0; local.PushFlow(this, num); WatchUI.BFPPPLIJIGC.OHPDNGENFJL.AuthorityOpenMenuDetached(true); } // Token: 0x0600BAED RID: 47853 RVA: 0x002BFA08 File Offset: 0x002BDC08 [Token(Token = "0x600BAED")] [Address(RVA = "0x118A1C0", Offset = "0x1188BC0", VA = "0x18118A1C0")] private void FGCBPNFEPLC() { bool? ljapminepph = this.LJAPMINEPPH; bool value = ljapminepph.value != null; if (ljapminepph == (ulong)1L == value) { this.freeGiftConsumablesPagedGrid.SetEmptyDisplayText("Sorry, this feature has been temporarily disabled, but should be back within a week! Any items you have purchased will remain stocked. Please contact us at https://recroom.happyfox.com if you have questions."); this.NACEAAMGKDL.Clear(); FreeGiftConsumablesPagedGrid freeGiftConsumablesPagedGrid = this.freeGiftConsumablesPagedGrid; int hlhhpekalpi = this.HLHHPEKALPI; List naceaamgkdl = this.NACEAAMGKDL; freeGiftConsumablesPagedGrid.SetConsumables(naceaamgkdl, hlhhpekalpi); return; } ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int hlhhpekalpi2 = this.HLHHPEKALPI; IPromise> promise = instance.GetAllTransferableConsumableTypesByCreatorId(hlhhpekalpi2); Action> action = new Action(this.LCKNAGEIPON); action += action; promise += promise; this.freeGiftConsumablesPagedGrid.Awake(); throw new NullReferenceException(); } // Token: 0x0600BAEE RID: 47854 RVA: 0x002BFAB0 File Offset: 0x002BDCB0 [Token(Token = "0x600BAEE")] [Address(RVA = "0x118AB30", Offset = "0x1189530", VA = "0x18118AB30")] private void MFFMLKBGGCM(OOCCCGPICOG BAJGNABECMN) { if (!this.LAJLNCJKALH()) { FreeGiftConsumablesPagedGrid freeGiftConsumablesPagedGrid = this.freeGiftConsumablesPagedGrid; int num = 0; freeGiftConsumablesPagedGrid.EnableAllButtons(num != 0); this.infoText.text = "Loading your free gift..."; OOCCCGPICOG consumable = BAJGNABECMN; int hlhhpekalpi = this.HLHHPEKALPI; IPromise promise = FOEHJBDMMBH.AKFDEPEHBIN(consumable, hlhhpekalpi); Action action = delegate { ChooseFreeGiftScreen <>4__this = this; OOCCCGPICOG consumable2 = BAJGNABECMN; <>4__this.CEBIDGFCNOB(consumable2); }; Action action2 = delegate(string error) { ChooseFreeGiftScreen <>4__this2 = this; int num3 = 0; if (<>4__this2 != num3) { NotificationManager instance2 = SingletonMonoBehaviour.Instance; int num4 = 0; IDisposable disposable2 = instance2.Play(NotificationManager.IBIDFAOPIPC.Major, error, 3f, num4, num4); <>4__this2.freeGiftConsumablesPagedGrid.EnableAllButtons(true); <>4__this2.infoText.text = error; } }; Action action3 = delegate { ConsumableManager instance3 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int hlhhpekalpi2 = this.HLHHPEKALPI; instance3.InvalidateTransferableConsumablesByCreatorId(hlhhpekalpi2); this.FGCBPNFEPLC(); }; } CreatorFreeGiftButton.KICGKKBJDLH lielcaefgkk = this.LIELCAEFGKK; NotificationManager instance = SingletonMonoBehaviour.Instance; string text = "You may only get one free gift " + "once" + "."; int num2 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Major, text, 3f, num2, num2); } // Token: 0x0600BAEF RID: 47855 RVA: 0x002BFB80 File Offset: 0x002BDD80 [Token(Token = "0x600BAEF")] [Address(RVA = "0x118A690", Offset = "0x1189090", VA = "0x18118A690")] private bool LAJLNCJKALH() { int hlhhpekalpi = this.HLHHPEKALPI; int k__BackingField = BPHGKAEDBPE.k__BackingField; long k__BackingField = Matchmaking.HMCJLLMDAAM.k__BackingField; string text = ChooseFreeGiftScreen.GLDPJMPGKII(k__BackingField, hlhhpekalpi, k__BackingField); if (!PlayerPrefs.HasKey(text)) { } string @string = PlayerPrefs.GetString(text); CultureInfo invariantCulture = CultureInfo.InvariantCulture; bool flag; if (!flag) { } CreatorFreeGiftButton.KICGKKBJDLH lielcaefgkk = this.LIELCAEFGKK; TimeSpan maxValue = TimeSpan.MaxValue; DateTime now = DateTime.Now; bool flag2; return flag2; } // Token: 0x0600BAF0 RID: 47856 RVA: 0x002BFBFC File Offset: 0x002BDDFC [Token(Token = "0x600BAF0")] [Address(RVA = "0x118A480", Offset = "0x1188E80", VA = "0x18118A480")] private static double IFPHNLLHAOL(CreatorFreeGiftButton.KICGKKBJDLH LIELCAEFGKK) { /* An exception occurred when decompiling this method (0600BAF0) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double AGUI.StackedUI.ChooseFreeGiftScreen::IFPHNLLHAOL(RecRoom.CreatorFreeGiftButton/KICGKKBJDLH) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:TimeSpan(var_4_05, ldsfld:TimeSpan(TimeSpan::MaxValue)) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600BAF1 RID: 47857 RVA: 0x002BFC10 File Offset: 0x002BDE10 [Token(Token = "0x600BAF1")] [Address(RVA = "0x118AE20", Offset = "0x1189820", VA = "0x18118AE20")] private static string NDIOHPGLIAM(CreatorFreeGiftButton.KICGKKBJDLH LIELCAEFGKK) { return "every 5 minutes"; } // Token: 0x0600BAF2 RID: 47858 RVA: 0x002BFC40 File Offset: 0x002BDE40 [Token(Token = "0x600BAF2")] [Address(RVA = "0x118A3E0", Offset = "0x1188DE0", VA = "0x18118A3E0")] private static string GLDPJMPGKII(int IEOEOMOCDND, int MCIOGNFKFBP, long DHLNOPIHMMB) { string text; return text; } // Token: 0x0600BAF3 RID: 47859 RVA: 0x002BFC50 File Offset: 0x002BDE50 [Token(Token = "0x600BAF3")] [Address(RVA = "0x118A040", Offset = "0x1188A40", VA = "0x18118A040")] private static void DAOEHLPJIPP(int IEOEOMOCDND, int MCIOGNFKFBP, long DHLNOPIHMMB, DateTime IJANCLOLJIC) { string text = ChooseFreeGiftScreen.GLDPJMPGKII(IEOEOMOCDND, MCIOGNFKFBP, DHLNOPIHMMB); PlayerPrefs.SetString(text, text); } // Token: 0x0600BAF4 RID: 47860 RVA: 0x002BFC70 File Offset: 0x002BDE70 [Token(Token = "0x600BAF4")] [Address(RVA = "0x1189C30", Offset = "0x1188630", VA = "0x181189C30")] private static bool BDDKFKMHJGD(int IEOEOMOCDND, int MCIOGNFKFBP, long DHLNOPIHMMB, out DateTime PBMJJOMBPAH) { string text = ChooseFreeGiftScreen.GLDPJMPGKII(IEOEOMOCDND, MCIOGNFKFBP, DHLNOPIHMMB); if (!PlayerPrefs.HasKey(text)) { DateTime minValue = DateTime.MinValue; PBMJJOMBPAH.dateData = minValue; } string @string = PlayerPrefs.GetString(text); CultureInfo invariantCulture = CultureInfo.InvariantCulture; int num = 0; return DateTime.TryParseExact(@string, "u", invariantCulture, (DateTimeStyles)num, out PBMJJOMBPAH); } // Token: 0x0600BAF5 RID: 47861 RVA: 0x002BFCC0 File Offset: 0x002BDEC0 [Token(Token = "0x600BAF5")] [Address(RVA = "0x11898C0", Offset = "0x11882C0", VA = "0x1811898C0")] private void AKFDEPEHBIN(OOCCCGPICOG BAJGNABECMN) { FreeGiftConsumablesPagedGrid freeGiftConsumablesPagedGrid = this.freeGiftConsumablesPagedGrid; int num = 0; freeGiftConsumablesPagedGrid.EnableAllButtons(num != 0); this.infoText.text = "Loading your free gift..."; OOCCCGPICOG consumable = BAJGNABECMN; int hlhhpekalpi = this.HLHHPEKALPI; IPromise promise = FOEHJBDMMBH.AKFDEPEHBIN(consumable, hlhhpekalpi); Action action = delegate { ChooseFreeGiftScreen <>4__this = this; OOCCCGPICOG consumable2 = BAJGNABECMN; <>4__this.CEBIDGFCNOB(consumable2); }; Action action2 = delegate(string error) { ChooseFreeGiftScreen <>4__this2 = this; int num2 = 0; if (<>4__this2 != num2) { NotificationManager instance = SingletonMonoBehaviour.Instance; int num3 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Major, error, 3f, num3, num3); <>4__this2.freeGiftConsumablesPagedGrid.EnableAllButtons(true); <>4__this2.infoText.text = error; } }; Action action3 = delegate { ConsumableManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int hlhhpekalpi2 = this.HLHHPEKALPI; instance2.InvalidateTransferableConsumablesByCreatorId(hlhhpekalpi2); this.FGCBPNFEPLC(); }; throw new NullReferenceException(); } // Token: 0x0600BAF6 RID: 47862 RVA: 0x002BFD4C File Offset: 0x002BDF4C [Token(Token = "0x600BAF6")] [Address(RVA = "0x1189D60", Offset = "0x1188760", VA = "0x181189D60")] private void CEBIDGFCNOB(OOCCCGPICOG BAJGNABECMN) { int num = 0; if (this != num) { this.freeGiftConsumablesPagedGrid.EnableAllButtons(true); TextMeshProUGUI textMeshProUGUI = this.infoText; string empty = string.Empty; textMeshProUGUI.text = empty; NotificationManager instance = SingletonMonoBehaviour.Instance; int num2 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Major, "Added to your backpack.", 3f, num2, num2); int hlhhpekalpi = this.HLHHPEKALPI; int k__BackingField = BPHGKAEDBPE.k__BackingField; long k__BackingField = Matchmaking.HMCJLLMDAAM.k__BackingField; DateTime now = DateTime.Now; string text = ChooseFreeGiftScreen.GLDPJMPGKII(k__BackingField, hlhhpekalpi, k__BackingField); PlayerPrefs.SetString(text, text); long k__BackingField2 = Matchmaking.HMCJLLMDAAM.k__BackingField; int k__BackingField2 = BPHGKAEDBPE.k__BackingField; CFLMJLFBOKH.NILEHHPAPJC(BAJGNABECMN, k__BackingField2, k__BackingField2); } } // Token: 0x0600BAF7 RID: 47863 RVA: 0x002BFE0C File Offset: 0x002BE00C [Token(Token = "0x600BAF7")] [Address(RVA = "0x118A0C0", Offset = "0x1188AC0", VA = "0x18118A0C0")] private void FBPLKAAEADN(string MOPOMPHBHKF) { int num = 0; if (this != num) { NotificationManager instance = SingletonMonoBehaviour.Instance; int num2 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Major, MOPOMPHBHKF, 3f, num2, num2); this.freeGiftConsumablesPagedGrid.EnableAllButtons(true); this.infoText.text = MOPOMPHBHKF; } } // Token: 0x0600BAF8 RID: 47864 RVA: 0x002BFE5C File Offset: 0x002BE05C [Token(Token = "0x600BAF8")] [Address(RVA = "0x1189D50", Offset = "0x1188750", VA = "0x181189D50")] public void Button_SelectFreeGift(OOCCCGPICOG consumable) { this.MFFMLKBGGCM(consumable); } // Token: 0x0600BAF9 RID: 47865 RVA: 0x002BFE70 File Offset: 0x002BE070 [Token(Token = "0x600BAF9")] [Address(RVA = "0x118B0A0", Offset = "0x1189AA0", VA = "0x18118B0A0")] public ChooseFreeGiftScreen() { List list = new List(); this.NACEAAMGKDL = list; this.LIELCAEFGKK = (CreatorFreeGiftButton.KICGKKBJDLH)((ulong)5L); base..ctor(); } // Token: 0x0600BAFA RID: 47866 RVA: 0x002BFE9C File Offset: 0x002BE09C [Token(Token = "0x600BAFA")] [Address(RVA = "0x118AED0", Offset = "0x11898D0", VA = "0x18118AED0")] [CompilerGenerated] private void ONDKPMKIILI(bool CNEIBILGFCO) { int num = 0; this.LJAPMINEPPH = num; if (base.isActiveAndEnabled) { this.FGCBPNFEPLC(); } } // Token: 0x0600BAFB RID: 47867 RVA: 0x002BFEC4 File Offset: 0x002BE0C4 [Token(Token = "0x600BAFB")] [Address(RVA = "0x118A620", Offset = "0x1189020", VA = "0x18118A620")] [CompilerGenerated] private void JIAEBHEDOKF(CCEOLAOLEKJ NBOJLIACJLL) { ScreenHeader screenHeader = this.screenHeader; ObscuredString k__BackingField = NBOJLIACJLL.k__BackingField; string text = string.Format("Free Gifts from {0}", k__BackingField); screenHeader.LKIBJOMNFFD = text; } // Token: 0x0600BAFC RID: 47868 RVA: 0x002BFEF8 File Offset: 0x002BE0F8 [Token(Token = "0x600BAFC")] [Address(RVA = "0x118A3B0", Offset = "0x1188DB0", VA = "0x18118A3B0")] [CompilerGenerated] private void FOEEGIHMCON() { if (base.isActiveAndEnabled) { this.FGCBPNFEPLC(); return; } } // Token: 0x0600BAFD RID: 47869 RVA: 0x002BFF18 File Offset: 0x002BE118 [Token(Token = "0x600BAFD")] [Address(RVA = "0x118AA70", Offset = "0x1189470", VA = "0x18118AA70")] [CompilerGenerated] private void LCKNAGEIPON(List EPNKNPNPBCD) { int num = 0; if (this != num) { FreeGiftConsumablesPagedGrid freeGiftConsumablesPagedGrid = this.freeGiftConsumablesPagedGrid; this.NACEAAMGKDL = EPNKNPNPBCD; int hlhhpekalpi = this.HLHHPEKALPI; freeGiftConsumablesPagedGrid.SetConsumables(EPNKNPNPBCD, hlhhpekalpi); if (!Enumerable.Any(EPNKNPNPBCD)) { this.freeGiftConsumablesPagedGrid.SetEmptyDisplayText("Sorry, there are no free gifts left :("); } } } // Token: 0x04007B26 RID: 31526 [global::Cpp2IlInjected.FieldOffset(Offset = "0xB8")] [Token(Token = "0x4007B26")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Children, false, false)] private FreeGiftConsumablesPagedGrid freeGiftConsumablesPagedGrid; // Token: 0x04007B27 RID: 31527 [global::Cpp2IlInjected.FieldOffset(Offset = "0xC0")] [Token(Token = "0x4007B27")] [SerializeField] private TextMeshProUGUI infoText; // Token: 0x04007B28 RID: 31528 [global::Cpp2IlInjected.FieldOffset(Offset = "0xC8")] [Token(Token = "0x4007B28")] private bool? LJAPMINEPPH; // Token: 0x04007B29 RID: 31529 [global::Cpp2IlInjected.FieldOffset(Offset = "0xCC")] [Token(Token = "0x4007B29")] private int HLHHPEKALPI; // Token: 0x04007B2A RID: 31530 [global::Cpp2IlInjected.FieldOffset(Offset = "0xD0")] [Token(Token = "0x4007B2A")] private List NACEAAMGKDL; // Token: 0x04007B2B RID: 31531 [global::Cpp2IlInjected.FieldOffset(Offset = "0xD8")] [Token(Token = "0x4007B2B")] private CreatorFreeGiftButton.KICGKKBJDLH LIELCAEFGKK; // Token: 0x02001B3B RID: 6971 [Token(Token = "0x2001B3B")] [CompilerGenerated] private sealed class JGBGOODPFBO { // Token: 0x0600BAFE RID: 47870 RVA: 0x002BFF70 File Offset: 0x002BE170 [Token(Token = "0x600BAFE")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public JGBGOODPFBO() { } // Token: 0x0600BAFF RID: 47871 RVA: 0x002BFF84 File Offset: 0x002BE184 [Token(Token = "0x600BAFF")] [Address(RVA = "0x11965F0", Offset = "0x1194FF0", VA = "0x1811965F0")] internal void b__0() { ChooseFreeGiftScreen chooseFreeGiftScreen = this.<>4__this; OOCCCGPICOG oocccgpicog = this.consumable; chooseFreeGiftScreen.CEBIDGFCNOB(oocccgpicog); } // Token: 0x0600BB00 RID: 47872 RVA: 0x002BFFAC File Offset: 0x002BE1AC [Token(Token = "0x600BB00")] [Address(RVA = "0x1196620", Offset = "0x1195020", VA = "0x181196620")] internal void b__1(string error) { ChooseFreeGiftScreen chooseFreeGiftScreen = this.<>4__this; int num = 0; if (chooseFreeGiftScreen != num) { NotificationManager instance = SingletonMonoBehaviour.Instance; int num2 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Major, error, 3f, num2, num2); chooseFreeGiftScreen.freeGiftConsumablesPagedGrid.EnableAllButtons(true); chooseFreeGiftScreen.infoText.text = error; } } // Token: 0x0600BB01 RID: 47873 RVA: 0x002C0004 File Offset: 0x002BE204 [Token(Token = "0x600BB01")] [Address(RVA = "0x1196720", Offset = "0x1195120", VA = "0x181196720")] internal void b__2() { ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int hlhhpekalpi = this.<>4__this.HLHHPEKALPI; instance.InvalidateTransferableConsumablesByCreatorId(hlhhpekalpi); this.<>4__this.FGCBPNFEPLC(); } // Token: 0x04007B2C RID: 31532 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4007B2C")] public ChooseFreeGiftScreen <>4__this; // Token: 0x04007B2D RID: 31533 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4007B2D")] public OOCCCGPICOG consumable; } } }