using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.GameUi; using SmartNav.Model; namespace Questionable.Functions; internal sealed class AethernetTeleportService : IDisposable { public enum ETeleportState { Idle, WaitingForAddon, Complete, Failed } private static readonly TimeSpan AddonTimeout = TimeSpan.FromSeconds(15L); private const long FireRetryIntervalMs = 100L; private static readonly Dictionary FirmamentPlaceNameIds = new Dictionary { { EAetheryteLocation.FirmamentMendicantsCourt, 3436u }, { EAetheryteLocation.FirmamentMattock, 3473u }, { EAetheryteLocation.FirmamentNewNest, 3475u }, { EAetheryteLocation.FirmanentSaintRoellesDais, 3474u }, { EAetheryteLocation.FirmamentFeatherfall, 3525u }, { EAetheryteLocation.FirmamentHoarfrostHall, 3528u }, { EAetheryteLocation.FirmamentWesternRisensongQuarter, 3646u }, { EAetheryteLocation.FirmamentEasternRisensongQuarter, 3645u } }; private readonly IFramework _framework; private readonly IGameGui _gameGui; private readonly IDataManager _dataManager; private readonly ICondition _condition; private readonly InteractionUiController _interactionUiController; private readonly ILogger _logger; private long _requestedAtMs; private bool _selectStringDismissed; private bool _fired; private bool _entriesLogged; private long _nextFireAtMs; public ETeleportState State { get; private set; } public EAetheryteLocation? PendingDestination { get; private set; } public AethernetTeleportService(IFramework framework, IGameGui gameGui, IDataManager dataManager, ICondition condition, InteractionUiController interactionUiController, ILogger logger) { _framework = framework; _gameGui = gameGui; _dataManager = dataManager; _condition = condition; _interactionUiController = interactionUiController; _logger = logger; _206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); } [MethodImpl(MethodImplOptions.NoInlining)] public void RequestTeleport(EAetheryteLocation destination) { int num = ((State == ETeleportState.Idle) ? 1903322012 : 1903322015); string text = default(string); uint value = default(uint); while (true) { int num2 = num; int num3 = 1903322013; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 5: num = 1903322015; break; case 4: text = ResolvePlaceName(value); num = ((text == null) ? 1903322014 : 1903322011); break; case 6: RequestCustomZoneTeleport(destination, text); return; case 2: Reset(); num = 1903322012; break; case 1: num = ((!FirmamentPlaceNameIds.TryGetValue(destination, out value)) ? 1903322013 : 1903322009); break; case 3: _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1915991887), new object[2] { value, destination }); num = 1903322013; break; case 0: _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-478164003), new object[1] { destination }); PendingDestination = destination; _requestedAtMs = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E(); State = ETeleportState.WaitingForAddon; return; } } } [MethodImpl(MethodImplOptions.NoInlining)] public void RequestCustomZoneTeleport(EAetheryteLocation destination, string destinationName) { int num = ((State == ETeleportState.Idle) ? (-1619368732) : (-1619368729)); while (true) { int num2 = num; int num3 = -1619368731; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 1: _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1788741827), new object[2] { destination, destinationName }); PendingDestination = destination; _interactionUiController.AethernetDestinationName = destinationName; State = ETeleportState.Complete; return; case 2: _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1049949813), new object[1] { State }); Reset(); num = -1619368732; break; case 0: num = -1619368729; break; } } } [MethodImpl(MethodImplOptions.NoInlining)] public void Reset() { int num = ((State == ETeleportState.Idle) ? (-1786789518) : (-1786789517)); while (true) { int num2 = num; int num3 = -1786789518; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: num = -1786789517; break; case 1: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(1323544865), new object[1] { State }); num = -1786789518; break; case 0: State = ETeleportState.Idle; PendingDestination = null; _requestedAtMs = 0L; _selectStringDismissed = false; _fired = false; _entriesLogged = false; _nextFireAtMs = 0L; ClearCustomZoneState(); return; } } } private void ClearCustomZoneState() { _interactionUiController.AethernetDestinationName = null; } private string? ResolvePlaceName(uint placeNameId) { return _dataManager.GetExcelSheet().GetRowOrDefault(placeNameId)?.Name.ToString(); } private string? ResolveAethernetDisplayName(EAetheryteLocation aetheryte) { Aetheryte? rowOrDefault = _dataManager.GetExcelSheet().GetRowOrDefault((uint)aetheryte); int num = (rowOrDefault.HasValue ? 1376211537 : 1376211538); while (true) { int num2 = num; int num3 = 1376211539; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: return rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString(); case 1: return null; case 0: goto IL_00b7; } continue; IL_00b7: num = 1376211538; } } [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnFrameworkUpdate(IFramework _) { int num = ((State == ETeleportState.WaitingForAddon) ? (-640751592) : (-640751593)); AtkUnitBase* addonPtr = default(AtkUnitBase*); int num9 = default(int); AddonSelectString* addonPtr2 = default(AddonSelectString*); long num19 = default(long); int num13 = default(int); int num7 = default(int); string text = default(string); string text2 = default(string); AtkValue atkValue = default(AtkValue); int num17 = default(int); int num12 = default(int); while (true) { int num2 = num; int num3 = -640751592; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; int num8; switch (num5 - (num6 + num6)) { case 39: return; case 26: num = (_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(addonPtr) ? (-640751615) : (-640751553)); break; case 13: num = ((num9 < 20) ? (-640751586) : (-640751554)); break; case 20: num = ((!_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(&addonPtr2->AtkUnitBase)) ? (-640751560) : (-640751555)); break; case 18: _selectStringDismissed = false; return; case 30: num8 = -1; goto IL_064f; case 29: num19 = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E(); num = ((num19 >= _nextFireAtMs) ? (-640751556) : (-640751558)); break; case 22: num = ((num13 >= 0) ? (-640751616) : (-640751585)); break; case 4: return; case 2: num13 = num7; num = -640751616; break; case 7: num = ((text == null) ? (-640751616) : (-640751589)); break; case 12: _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-964873938), new object[2] { PendingDestination, AddonTimeout.TotalSeconds }); State = ETeleportState.Failed; return; case 33: num = (_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas) ? (-640751605) : (-640751591)); break; case 21: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-969368539), new object[3] { PendingDestination, text2, num13 }); num = -640751597; break; case 24: { int num22 = num9; num3 = 1; num4 = num22; int num23 = num4 ^ num3; int num24 = num4 & num3; num9 = num23 + (num24 + num24); num = -640751595; break; } case 5: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-568972459), new object[3] { num9, text, num7 }); num = -640751602; break; case 35: num13 = -1; num9 = 0; num = -640751595; break; case 19: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-1143749055), new object[1] { PendingDestination }); State = ETeleportState.Complete; return; case 37: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-533960738), Array.Empty()); addonPtr2->AtkUnitBase.FireCallbackInt(0); _selectStringDismissed = true; return; case 8: num = ((!_gameGui.TryGetAddonByName(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1860227121), out addonPtr2)) ? (-640751560) : (-640751604)); break; case 10: _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(151838006), new object[1] { PendingDestination }); State = ETeleportState.Complete; num = -640751609; break; case 16: { text = _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(atkValue); num3 = num9 * 4; num4 = 6; int num14 = (num4 | num3) + (num4 & num3); num3 = 3; num4 = num14; int num15 = num4 ^ num3; int num16 = num4 & num3; num17 = num15 + (num16 + num16); num = ((num17 < addonPtr->AtkValuesCount) ? (-640751599) : (-640751610)); break; } case 40: num = ((_202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E() - _requestedAtMs <= (long)AddonTimeout.TotalMilliseconds) ? (-640751600) : (-640751596)); break; case 32: num = ((!_selectStringDismissed) ? (-640751607) : (-640751606)); break; case 27: atkValue = addonPtr->AtkValues[num12]; num = ((atkValue.Type == AtkValueType.Undefined) ? (-640751554) : (-640751608)); break; case 31: return; case 0: num = ((!_fired) ? (-640751568) : (-640751559)); break; case 38: _entriesLogged = true; num = ((num13 >= 0) ? (-640751611) : (-640751588)); break; case 14: _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(613688553), new object[1] { PendingDestination }); State = ETeleportState.Failed; return; case 23: num = -640751593; break; case 28: num = ((!_fired) ? (-640751609) : (-640751598)); break; case 36: num = (_fired ? (-640751597) : (-640751603)); break; case 3: num = ((!GameFunctions.GameStringEquals(text, text2)) ? (-640751616) : (-640751590)); break; case 11: { AtkValue* values = stackalloc AtkValue[2] { new AtkValue { Type = AtkValueType.Int, Int = 11 }, new AtkValue { Type = AtkValueType.Int, Int = num13 } }; addonPtr->FireCallback(2u, values, close: true); _fired = true; long num18 = num19; long num20 = 100L; long num21 = num18; _nextFireAtMs = (num21 | num20) + (num21 & num20); return; } case 9: num8 = addonPtr->AtkValues[num17].Int; goto IL_064f; case 25: text2 = ResolveAethernetDisplayName(PendingDestination.Value); num = ((text2 != null) ? (-640751557) : (-640751594)); break; case 17: num = (_gameGui.TryGetAddonByName(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1959750528), out addonPtr) ? (-640751614) : (-640751612)); break; case 34: return; case 6: { num3 = num9; num4 = 262; int num10 = num4 ^ num3; int num11 = num4 & num3; num12 = num10 + (num11 + num11); num = ((num12 >= addonPtr->AtkValuesCount) ? (-640751554) : (-640751613)); break; } case 15: return; case 1: { num = ((!_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas51)) ? (-640751568) : (-640751605)); break; } IL_064f: num7 = num8; num = (_entriesLogged ? (-640751602) : (-640751587)); break; } } } public void Dispose() { _202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); } void IDisposable.Dispose() { //ILSpy generated this explicit interface implementation from .override directive in Dispose this.Dispose(); } static void _206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) { P_0.Update += P_1; } static void _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogWarning(P_1, P_2); } static void _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogInformation(P_1, P_2); } static long _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E() { return Environment.TickCount64; } static void _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static bool _206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(ICondition P_0, ConditionFlag P_1) { return P_0[P_1]; } unsafe static bool _206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(AtkUnitBase* P_0) { return LAddon.IsAddonReady(P_0); } static string _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(AtkValue P_0) { return P_0.ReadAtkString(); } static void _202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) { P_0.Update -= P_1; } }