Decompiled source of Rippleheart v0.1.4

Rippleheart.dll

Decompiled 6 days ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using A0wIwYFS33NHq03BWPYF;
using A4R3mdkatIEijGV9YF2;
using A64cLLjiqtWaAX6OagDi;
using A8xQ3ljTEqNjV3SoCrKm;
using AE88vQQaorx0SgwX8YU;
using AFx3ukFUp08vIpY1sexD;
using AGCBBj8jqgy87loSW36b;
using AI2N7EjqO550SaIW8ark;
using AJ0yVMjRfC6LKqK0gOUK;
using AJBIrcj35qjBXm9JuiAp;
using AKIWeIjCNvNkJXHowgls;
using AN8raCcu21WdxSsRcTH;
using ANCtBrMWKqrFVZO9eKQw;
using AOXHpq2RzWtINtsTn1y7;
using ARNy1m8iQLxweqKFVKjj;
using ARZQOE2LuKO5xj3ZQuXT;
using AUJvZZMQKI0dDeUMxAiM;
using AVClMr8HqdqHNoXmFOq1;
using AVjSfXjXC5hrGATpXkPD;
using AYYjNDFvA22rTsjss1dT;
using AcRnSb2P9iZtxSJEel59;
using Aek5UN83cbD3CEFTiHgU;
using Agmm4yFTZkGteJIbk7SX;
using AhIy665GPiP9PMj2Pme;
using AhlZMBKCEiNKHKSwDkU;
using AiLe68F1nhnQM54Aqmmu;
using Akbt3tFIPoBTM5HIoFgB;
using AkjD1K2wIB14ykblicKu;
using AmwdmcFp6ubqDGLhFZoS;
using AoKEAajRMiy7d9CQWUeK;
using ArBJHYFKnQh8XS0DvofR;
using ArnQ4sFRBnPTXrD9iDAm;
using AsJZLd29vaUpLVNmErF8;
using AsRIBD2Qr0aND4ICTmXW;
using AtIKiEjM5XQcUVN1XGYy;
using AwuJBr8YkUCTmIqrDZVs;
using B1QM9yFlJmevpF6cIloF;
using B27BEN2sGD8gRNHNoudZ;
using B4IU7LjpMTp4BYsYJjTF;
using B4hTbE8izcoKaOmc41IN;
using B5S5hB2HZ1mRuc4w1GVJ;
using BB3Q9Q8FKt7xF3RL9LJI;
using BBYCZmMQVvN14YuWbAAA;
using BE9yc6MWs79gZxYIKaii;
using BFnuxF20G8WBO62bmQGf;
using BIId5n2PYyU78ac9FNLX;
using BIuTaAMRhpLWhWJDOv1l;
using BK5rrQ8rLO2Tmmlq1sxB;
using BLbqqKighOsEdayZyZ0j;
using BLgGLF2IfuHX0DG1yeqP;
using BMl6WaFxLUNPD2E5XDap;
using BNAaL8Myx5huMpnb07kn;
using BQVfya2SEoRLNA6EmbQ6;
using BTYRDB2Mnh0qxPVlYmiM;
using BTv8Xb8KKofRnwqyl18u;
using BV2swc8Urm7uLVXQkVBS;
using BWPhXSn8CGybPLnD75A;
using BWQUXX2gAiGprWoJBGyy;
using Ba32VmjWHJyDeuWC7fSf;
using BdB3qs8E2NQGVT7MLDaL;
using BeRnJmjrrR1b7NI4KxAZ;
using BepInEx;
using Bf9SQwjzRqK8l0aGGVB9;
using BfpdrsF6GLlflWQ5eWkv;
using Bh9molMkXXm4kjNP0wrK;
using BhwVlnFEai07bXD1OF3d;
using Bj1BtAM5wo7rYmOeDYQc;
using BjBS5g8nwuFXfbJeH5jf;
using BkKcLdjTiCS9IYPilqP3;
using BluKl9jHpWtgwOUDb3Ol;
using BmGjLwzKmH25OWa9JGk;
using BnJ0CAfCHteXme1WxkP;
using BpGi7JrVOFmC74jNnPj;
using BpoCSJuGyjCxJeRUvWA;
using BtBcCTi7sOxTwqr8ZwiM;
using BvXLi08Qew6BbbyWiSFc;
using BxIGvpM8S293fjB3Z3K6;
using C5FFyPFf5QQeAmx6Tplv;
using C6eg8hMVUYW5pUkR532g;
using C6f8GSFxJK4F1MKa3A6T;
using C7V30M8MCLihF6tUOZIk;
using C82NQjpKSa4NryDJH1t;
using C95USVFbwRBvjRgNZhdw;
using CBRytnFHAGwsVHrF4oGJ;
using CBVABN2xJRDikOBSi61b;
using CDALvUjbBvlXwkoqDGe6;
using CHS4ibMAfFjbylX1PeMC;
using CIQnS1oBTxjcGGlCTfF;
using CIeK431YnrUskYQEOqT;
using CJBfa9iedw9Ryhw85YNA;
using COF8E1FpjOFfxeN1uVX8;
using COPVc2FXPLqCBdjegqUv;
using COnjL58HoBxKxEDDrl9Z;
using CPFh7QckPd7yNpV5P8T;
using CSn43NjzifXRFYgcKRbD;
using CV4wBeFlqrp3IH2rTy3j;
using CbJwDo8GzfsidXm2Pu45;
using CbiJfxjDgti582ZD56C8;
using CfMehNjrRUHpbRaxSVZp;
using CiUXMWFdTY6MDyiWdJCw;
using CmY8eeF9q6rtpxmaN0Tf;
using Cmbp8CIPq2SoV6wNktq;
using CmkKrkMyPS9E1Cuc0hCR;
using CnBxfpMNS51TVZ8rfqWa;
using Cq565Sj3Up3GsqRSm3cE;
using Cqcf3h24YJvdDdgZoSVd;
using CxmYnEfuFZgOFReAgvS;
using CyS7aUjdUZtxAFjTcn9w;
using D1sfGGFK4UDq5TIMiHOm;
using D4Am0h2gdcelX6Ju28om;
using D6LYaLEBhRIrEelleWR;
using D6ZKMEFHfmmK7qn8V26K;
using D71AYHKUALfBAo5w7Jm;
using D7Cn4YFl4WgVlAEFJpYe;
using D8HLhu2CeMQIyLXtc1yf;
using D8SeiPkXX975RBCvYfi;
using D8r6DR2oqjPl5AK6nran;
using D92NrmFtZi73OOxx7Jgx;
using D9xlgTjLP7JgOxiM0XqE;
using DAx9veFxmsPdpHyTdhJw;
using DDGNZjilVgv2uloIYj9S;
using DEOfw2i3jL7kUZl9Wnao;
using DEPAZOFEIFtvTt6xx74r;
using DIPsPFTCnGu3p7AqU7Y;
using DJ3xsv8gpalKuqPX0LbH;
using DJPsRU8WjPRcbn3Dm6wH;
using DJUQ59iQqtk9PqbYXhOZ;
using DK0g8iMcRWTBIc5BB4Hx;
using DLXpdejcqAyTl0H4BsYj;
using DMNlw48ygX1pFqQJTe7Z;
using DMQK9EFsGDbUZkfaqkTA;
using DOIXJJ81Z80YXlCd6P1T;
using DQBXPp2emWkRV8xaPVfy;
using DTHmdq2t2I7B727LekmJ;
using DWjPNYMEk1n4KL4J4Z2u;
using DXmQ1aiEPrEyyoQXDQcV;
using DYLvlbj2Cbi7SFXtEmSS;
using DbfumCFSrmO2yw9Zv1OB;
using Dci78G9MZ0YtNGE7gno;
using Dg32qa58YlZ5BpFrgiG;
using DgNAnh2dOYsLWLaJaGL3;
using DhZbCBFK1vRknRRKtpnl;
using DnIkxr2qKyS3msaj6j6m;
using DpHRbFj2UQqnoAH7HUXj;
using DrlKqL86agS88KVJeMiv;
using DwRZ0k82DdtHFDqCHb40;
using E9343XFJ7NL30DKFmLfH;
using E9fj5n8dHApgckx0higM;
using EB9gFivFE9WoUN4pnGy;
using EBkTCl8GXvPr6nAsJjoY;
using EDH65ccxy85YLnDRXRa;
using EDasJuMOnKgHeeZjA7co;
using EEqq332sgQCSt6M1Odpt;
using EG6uOkFYjf9exvwmfHCC;
using EHmOBHMp5V0OfJBMX21m;
using EIutZRFvztNoshD4yf1V;
using EJxxSDFprcdV2jtR13Ae;
using EKKPyXMzWJbDSOeSMtJE;
using EKrMQyiRvn4MlkWV6FZA;
using EMdKYJibPbe7H2KlYUv8;
using ENXABaMJv6ESIrAapKX7;
using EOGP5W2b7k2iHmG1YJ1M;
using EOa2oC6vnUnwLM1xYOC;
using EPNhRD2uiamafxt9iEZY;
using ERhxs086ww5VrJ1VuCsJ;
using ET3XSGjDDNYqpsBg4N8i;
using EThL6mjfK9xSO6slc656;
using EU2DZ6j1GoQn39MkMKHl;
using EX5KRM89wJLuFclk4NWu;
using EYi9Uyg1b1g7nMSMlar;
using EYk5S7iWPregblUk44ZB;
using EYs6w02Ye0tjG7eSRhZN;
using EbC3uY2SaD8ctal7UYuU;
using Ee7nT0ib7DeBWbhVCruG;
using EfKlV62NrTcCcXHT3OCY;
using EhVQnwgi4L8e1KfZuIb;
using EjOPL1jVwBvF39wDy2dL;
using EkK6OCilTocj2WoF99Kv;
using EkgguDMn7Uhyaj8jffsn;
using ElnSlA2tOpRFCPdIQV9A;
using EnYnS5F2lMNwx8cdFb98;
using EnZtNO8U6QwqU2Sw3g9i;
using Eo211mM2Is03oSKReFst;
using EoT5FEiQ6yBAdv3TRoI1;
using EsA3y52XRwrIKYhGxUdR;
using Eu8j0YjEQCRFuuR59KeH;
using EvBuxTjC0oi1dcGoGFDv;
using EvaFmCM2hZcuY3Ns8bgI;
using Evusbjj2JtrolwBTqXoh;
using EvyrtWKdql8qs9Xl1uQ;
using F0PdGkjtT7yWJjv42pJr;
using F3pC4kj1EcTqAOdmOZ5l;
using F4alDsje9WWvCRAce6js;
using F4fNCS2HofnkpNs77aIS;
using F5hQ97Kxtg7oU2LxrUv;
using F7cjqhj1dojwlRJvOSQe;
using F8YipopPGgnvOeWkPyq;
using F8cRi28yFJ1H6mtquj74;
using F8etTViRHMdtD2ZUDnuF;
using FEO5GNMKfeWDpCWaTmN7;
using FFJX5IF5vmeZNPVYYruG;
using FFj7BZiE54TMhy3GWHVr;
using FGhKAlvB9wb9w0gL5nQ;
using FGmfxIFEkbQPRxPmlbeF;
using FHG2AW2lHgN5WFYF8qGi;
using FLL5lgHH3EAb9uVxGUv;
using FR3ss08J5FqWfv376YkO;
using FTEF82FRzO4MkFN0NJYr;
using FTX2IQMFm5HJGHdbi8rT;
using FWoHi07M7bygDvaW7kl;
using FXNI09M42wIi8FGxEKCu;
using FXtAQd2Eoiyursf4RAHm;
using FZJFAnFkVJG11QPc08ep;
using FZK769MnbJ87TnMLOMeN;
using FbIlEn25FT6iYmjZjSQc;
using FbVKmt284vP2BOuaosti;
using Ff6OuTMc4KfPsVjOw9am;
using Ff6mSO8wytTelU3cwr9R;
using FgORM9iEun3EOhriV7o9;
using Fh2PGQF6B9vKJhUEcZBO;
using Fi2UFi86PtS0O2w4pZfR;
using FjqIuH2HhsumXqvNnphV;
using FkkFHW23zRjlwDOLBpTY;
using FlUvPYjfuKuColZ6TWrt;
using FljIwNi8fwBHTpSIk8Di;
using FnDKdR8hjSTwwNlojD07;
using FpJDBF9KSsUjwPSuiwS;
using FpRditM2WCVf0cnmCDPt;
using FqGqW6pxIepYZB4JMlB;
using FrGlS1AqUFfqQA60Bv3;
using FrpGueFMWP3mwFgt66q5;
using FsPgZZIe9RH6WFQu6yy;
using Ft0pTkiXdeCC98aaRnMq;
using Fu3GILkba0DX10rC5eE;
using FubJY58U9WSHwPYcPZlx;
using FvyeCIF0NaCtCZVKpeok;
using FxkN6IFk2M1oe2aIPrxi;
using G2KZitFKgi31d2XtKEa3;
using G2ymyEjcfxBYPRha9SXN;
using G3MVRDFup3r2KCowJgug;
using G46I4OMqg0q7S1b3xplw;
using G4XAfwMvVhWfQalHNFjP;
using G4dGdTjpACmkaiamTHve;
using G6A95t2GJYeO99SNSOsH;
using G6Safqjg5w0S5KLwR7Qn;
using G7QO0NivZvCwbwvWOuvb;
using G8dXu52XALVduOSt3mKm;
using GBi9JQ85SAYe4Ewmlchb;
using GD7DhM8fLRRtlQWsTVY7;
using GEJCx7NikqktqNekmt2;
using GFihLG2qyipMTxp3RaCZ;
using GGtdrsR8vITDa3T2jSN;
using GH2m9DA8PgjPdpafwMu;
using GIFIc58fjaP8IEsFOnd;
using GIgI8aF76neq8frt5Urs;
using GIrv0NjYLvgF5bMEOk21;
using GJW0w7FoNlXtGdXGJQE1;
using GLB5eFM8tv0AUNs2sMM0;
using GNEMZToN1ilPt8pOfyy;
using GOKm2jF3ss3rLFHOcbsx;
using GQd3RDjWVBqAQnDkrcLD;
using GSZHeJMB1OfVJLYlceg8;
using GUVmppbOBg2rsfcRVnM;
using GWPcmmFx28b7sXkXQ16h;
using GWbmqPjhyR0ta0hX9c4K;
using GaC8GjjPuKXNwXZQnxDY;
using GdhYTMvnZpuOj0XEvwQ;
using GhRvUmiuHf9PqGkpv18P;
using GijrpvjEAG93VCUANLTx;
using Gm8M92M50SOroR1TmClO;
using GmOP3xFDZQlfiGS8UnC3;
using GoPbCi28LgaDLGM7UcmO;
using GpJtf5j5O4R8gdwBRIp1;
using GrJSBlMDfNa8vCcQqINs;
using GvH0EF2P1jD05p8heKvJ;
using GxXRlIjWCXOT1UVVpufS;
using H0EQFUjqz12e0xAEd5R3;
using H0Esux2w7uJke9bMgqc8;
using H2HAn4MgRb1QlIRDfiIx;
using H2UCNJ8Wnv62b2t3WAs3;
using H3p3mXFfBIdBGbZt0Mbc;
using H51aPDdg5RwjpjaeMyf;
using H9aOFPFRJ8VAo7jN368p;
using HA6P7apmXRarkCG2MrW;
using HAps5p1UBuiDmrXV6yH;
using HBQ95DilBihYo3G5YwJI;
using HDQijTFRZOUIZbcjNnbt;
using HEPo428ybEkaS6DeB8O7;
using HFmbkujp5gCvf40sAYcU;
using HILYQ72cCnvNVacuqDOY;
using HJRiay52KuFdBGXtT4o;
using HPfJPXjeaArIM8u0kCBZ;
using HRGxPL82z5RL7pXH2Kbc;
using HRdBsOMkNbGjDJdRauPb;
using HVl27yba7lCCgxw2iHi;
using HWKdsXFSyQ6SGX0ql185;
using HY8nlGn0bPBEmLK3Lkt;
using HYO1kI2KvItFGn3f0HI1;
using HaGKsGFtC0pUcb4X0mN4;
using HaIQTwFKOp0euvthmK3O;
using HarmonyLib;
using HhtUJDjP2wVFsvnFggxT;
using HiDPJaMnfekkIlapjw8W;
using HiaCu5oFPZNyw1eMg5f;
using Hj2QbljmveedZHX973Uv;
using Hk43nbK5kx6BunlfEvO;
using HlKN5A2QNO5cINMqbOrK;
using HllRPiF9pPefPHcA0JMR;
using HmEyYoMhMQETKlGOb27;
using Hntqat2JZENyDnPSylrN;
using HorW6jF28D5GPpLlpvLT;
using HtMsfc2QwYRQ3nI1opUF;
using HxXIqHM6TB0jTegamBZN;
using Hxs6sRFykZt4J21M7Q0g;
using Hy7yBXMxhiMQpPsyf5NF;
using HyamjAiS2UvoN3k5RxEj;
using HyfDv228H0786xlHFXNU;
using I5XwwVF0DceRXcg8vwi5;
using I6iVymFRFQ0fHvM9Wm67;
using I9Wx2DFvTYU6ssROgrqd;
using IAWJLI8wM2LMZdMWxWfD;
using IChL6VMHfh91Syy7CLGm;
using ICkG1hivR3f5I9La6Dvf;
using IE6y8XMPN6VBHVb3JgST;
using IGXo4PFrKkvKQaKCRc30;
using IHHkJD2gNT1uEER4s8JA;
using IJsNLIXMnfMgBRopcWe;
using INQ0XjFoecLgx9LtbqRr;
using IOpdQYMD09FVKfZbZhuX;
using IQQMJxFm8eNgq889am2R;
using IQYPk48kAqXVptCZUFGZ;
using IRsSgc2qs3AH6T6WBhjU;
using IStPAvF8jbP46FYy6av1;
using IXV9cp8fkvuOFlTWcyRx;
using IY9vo689K1lOc2EZs7F0;
using IYAdCH229O9ZGO6NYeUF;
using IYbEh82T0gCKiGrOGRD4;
using IZtRfeQMfqXLkYLI5GL;
using Ia3Z4rMy7GdR4bFW8LoH;
using Ibt3btiTSZj654nrYSQq;
using IcCe612snC3XW9e38Seh;
using IeetMEjPmd5x3EeONFww;
using If3aPXildALch6udWd7u;
using Io2P52Mpp59YRZILDa3n;
using IoH1tSj1gHFgwSmK8Inc;
using IqECXjFKyNACBoG5Wyr0;
using IrmWWHC0X4M081R12Ha;
using IsEfUn8Zpvmx4dJDXxt9;
using IsRGlM867BVMnbMgf5CH;
using IvEWGAMjbn7AS4PBFZQr;
using IwLLIIjClPyO6QufaNoQ;
using IxJxGTit2VkgMtZ8RKED;
using J0M0dBFV4F0VOWC9EtF1;
using J0hF0k2QeCPnlF8Ky9Lk;
using J1XYsLjY8XZZfYsqSKkw;
using J1apBlMiPDTnNcfuxXA4;
using J6os7AMqAfLG29nh5pbC;
using J9YcRb0BdPeSaYEQySn;
using JBYTOJjVEq6D9n8KxdgX;
using JCBDd9FwMbRBhu393IoP;
using JChAqYF6HZ6U3bxsx0aG;
using JFApLk2PvyhrGqbDBZ7A;
using JMKEDqFss79F0eXNQbty;
using JQcPflFpYykU08doBkR9;
using JSvvZEilO4Hxw7YKh8Z1;
using JW0CpOjC6ZNOegrEVQOQ;
using JWoQbbFgZadK9PNXPvrA;
using JZDYE92d3BvjYAEyHMO4;
using JZrOhy2PXJ7fKUlrXRZf;
using JbkPxE2Psd9Uwn0WdWbq;
using JcLpFP2IwlGxGFRP1pmf;
using JcUa6m2TkwatblS4McjW;
using JeiLq68TJFXtPSPNWrOM;
using JkwOp8i9K71X2jXogsUi;
using Jmm21IFnRuWkvYQLfQiq;
using JoxiutdDxbcAO5axFpN;
using Jq9qsDCFn8WimtP7Fua;
using JqfLWpFozbQrlLyNlqOt;
using Jr4hp1F0xiUeJWYLRvJr;
using JrMA24Apbo9mbwpNcd8;
using JsJDPAFu61lYqgYR0Vf2;
using JtfKjM2mCOfGP0LdJUr0;
using Jw4bQ12q8WLUMJ2DxIkl;
using Jx8aRBnCwW5M0tp6H4y;
using K0EAmEiRzldrYcO6tLKH;
using K6Y7pGiBCxTRCKw4XjNd;
using K8Bq4b2UscKB9ymrWUq1;
using K8h0vihyNDH3EcDQPqH;
using K9G4Qyj97wGSNLIorrfT;
using K9eQHlMlfNKEMNFfdt6O;
using KBa5dtok54UFPhxXDJ4;
using KC98GjFC07ERUVcWGvbl;
using KCFg0w89BYZdVAkRrTp8;
using KCWU5uTqxQTMapIZXG5;
using KFJHqtbqFTJvDtAwrfF;
using KFsvcSF2XUANDOdLjqhw;
using KGL6vORHtmf8DZEIUyG;
using KGRjLvhi5lJY924LMCy;
using KGfLr20Yvf4uYOIVwCK;
using KIGkKT8rRIOHqqysRn7c;
using KIxTEEM6K4ILYnEwuBFj;
using KJVQf1FBJXb2HiECanRo;
using KOJjLc8Xut3lWHmxQGAA;
using KQqMZ42H4g0gvX1nrDgA;
using KW5nPy2T8NQFMJdNcGZM;
using KXOH36MDlBmO0sgw9SFI;
using Kbr7yMFh3rIbuApqGioQ;
using KcOFC7kLr876NHXIIbO;
using KdQXOZ2IjW7KhJLICn0r;
using KeAD1vipJLGu5DINecY3;
using KeCQ34jHSJKDqgdQNMvI;
using Kf02q7jTOI7jbuMauxwM;
using KfKQDWMmL6MOh0tn7xlA;
using Kim0Ociv5SnkK3nRDBqS;
using KkaoopFsrByIKW4jEumU;
using Kl2xr38s7DeBYVMpcCYh;
using Km9E7cjWfudWxQNq7OR4;
using KvHefVyc0phsHFprRce;
using KvO2GY2FeqYW8mM7l4QJ;
using KvfeBLFRWHy5ecVVFFYH;
using KyuF51iAui0FNkMvDREY;
using L0NKVkFZZFWfA0WwTrgA;
using L18HTd2iDLU5FlTjnMZU;
using L1dwX2FiyJ6t2LgG6xsk;
using L219cRFKhXKSQ4y3Og4t;
using L2HtpUjNnLaE05VTmnv0;
using L2R4yo2xqUruPLs3KGhF;
using L8beRnjcpHxeocsRx67y;
using L8gVbDSr0Z9BmSRUe8A;
using L8qtEjFyFAB4KhC5WHHf;
using L9GYiCiAzyAFTfdDGRoq;
using LBiMtkjWRPOxflYgbfbg;
using LCy0oM8m0KYpNEUARh82;
using LDB20NMWT0K2W5ahdKl;
using LEoQjdj9eSlqw04cwhVO;
using LGFdRwg7xRoUF7UcDu2;
using LHHVX3FtLb2yAD3ZSijV;
using LHpts3M6xe7CmBRloRP5;
using LL5np8j8TKixJ3hkgAjP;
using LMJTjHAhEX9KsKYCfZ2;
using LMWf9xiCo9GdIuYSAtGA;
using LMxV0t2ZGpknvpJMDruW;
using LNRAcS2oGatiZ7HIncXh;
using LOGKkmFUCdE4p26PBqwO;
using LRPFU9vUVh2srRIuY76;
using LS0Vxt87yBwtDe3FyRhF;
using LShulOFbEfwG50QMQEPD;
using LTDCj5F0LDi9P3Cqt3YH;
using LWCQCf2VpdYR9dKI1NIY;
using LXWjGEg9dTRaegOyMDo;
using LaJgMJG2EojjrVnvIfU;
using LaODbKjgBgF8UCJa6uLG;
using Law3fj84bU10r843VeHN;
using LcgKQvMQibVe9uFdvHVU;
using Lckhk8FTBegfEZRXJ4cp;
using LeGFjY2ueJ1TOBJMJL7T;
using LeUgIiis3rPMj6Mw50Fv;
using LggVTb8WfVZnxWOM01XY;
using Lj4G9QjjoBhLevuTaVCr;
using LkALiOFiJDExD7fV5e7a;
using LlW9x62kP6F3h6t5yaXW;
using LpkRCVGH6WpcwrEXZJh;
using LpseS12jA8gQAJ7QYt1D;
using LrQjbxM1F84E4LTs2RpN;
using LvrWYxiK3tOuxHcHf6Ay;
using Lw2DSV20ZRMitSduHgws;
using LwOTwRFTiiSYA04RUC5R;
using LxJqpsiXIRbI6gjl0lNK;
using LxqC1U2BCQVhd7JHCopa;
using M07QGCj2dGOFCpDdUYfn;
using M0IjBjFVTg5m1Yx2YFsM;
using M15YEBFUOwIVnGuqmUYc;
using M1v6HSFZwjSy3iMcraSA;
using M32F4O2QPGOibUA0xUpn;
using MBwC6t2I0W7WCRSOgXFs;
using MD0Hx0FKRNB0KFE9Qu88;
using MEXPGpFHjDtoCmRJ89C0;
using MFkiivsgGojlNnkYa5D;
using MGJOKHnmaNC6mcl7rt2;
using MIPcecM6prN28g6qmAQ6;
using MJOJCamu2qZppLHR3NF;
using MNdX0UijSEbu845TcTbS;
using MO3A2DFVI5wLH8w0Cyq2;
using MPpapuwmaMDTjdI16vS;
using MQekhBFIfcpkTL9Kd6VG;
using MRkBdKjbWU65hV1k4Zkg;
using MYTVFF8CLqXOpJNf622P;
using Mal5R4M0Z3qU9pntw6tJ;
using MbvxZf8nzDdVIKmnGcuJ;
using McD32XMxLM890rWMiuyG;
using McTGMm81Rb40yT55uRX5;
using MgZSohM03ZHFUjARMxtg;
using MhLrQK82B7XxTHNhTcqv;
using MhNOjKigeDRGQbeArpcI;
using MhvZC1b8VkIS6ljlLm9;
using Mi90ffMsWmpQb4h8deRC;
using Mi9arlFD7xs8mdX63NGj;
using Microsoft.CodeAnalysis;
using MmPCPCwePEkhD7bBWOM;
using MmvygdFK8qxZRLmBJnpO;
using MnugvWMAX6U1fAcrTts0;
using MoZ4eBbJj90IQxwRr8n;
using MpMOCTFy60TEQuXuACkW;
using MprJYo8i0r9AneUeZ6yK;
using Mqk8nXFQYkIBLlvvBM3h;
using MrdTeDFruJLDqpYc2iV8;
using Ms32WTMnkPwogJRZtabx;
using MtvRWGMNWMr84OOdFZBn;
using MuHaRR2ifecqkYM6w89Z;
using MwGGV0Fx9RDdTokmXgGD;
using MwfT0jjRVROSDUvfs5Qd;
using MyUAuxFKmNxKdndOI2vC;
using N0iB0C0MOJaYJSH0ukb;
using N2j2hRFS4CUvlXtGvVBl;
using N38RFMFhGNFITkgAVNYV;
using N4HIvP2aPsjAKsliQXO6;
using N5OhD9jEvOO1Vt1JcXqq;
using N6AyO7EgKeS5aOp2Zny;
using N73QND8GpvVF9p2gnysN;
using N9ENel2WmT9EvPYGSFtZ;
using NClDweFXMEQ6pNIvRuOY;
using NCnh8vMXTbaMVDDq5RMA;
using NEh0iyf5AQmK7tNUyOq;
using NEpcJd2LrLsltFSUmKSQ;
using NGgihy2ycktLT5fZsJ0O;
using NHGicM23qCgXVSItt3QX;
using NItvAmiS7SfxhSxT8MIg;
using NJaKh7jCYQFhchTZjJyp;
using NJpc7mFOl6XoUb6k6BGY;
using NN0nNSibHomeokW9wA2j;
using NSWSkl89x8ao7nPWP4ru;
using NTFC3I265qCTIeTc9CDg;
using NU0Eq4FVfsFlc3ky8aok;
using NU3BEp8bxayQ35eR1UyO;
using NW6qJRmvsZuujqUPKAh;
using NWvE2KFASvU3J6x6M6lO;
using NXFNOqjNTY4TfM0hemxU;
using Nb7oR18upnwgGZRuqDpv;
using NbGXQoiXMssBCuoyCLaP;
using NcXDAX2TJbfhFQ5Jq104;
using NcxyVviBPhZ3IafLXrSn;
using NdLFKJMizeW0NDyjx1E0;
using NdNC5A2ML90MCZDZfFef;
using Ne1flXFojB6evsCcsVcP;
using NfN15IiAvDvqZf84E2C2;
using NgK5FpioBZXDo9SSvPrk;
using NhJ0ckFHe56ES8mRi4IV;
using Nj3qcV8GoudPbOSRvWNG;
using Njuck85JDe27yBXUDUR;
using Nl5Zgc8Nm48vuw1wseCW;
using NlmL41Mj5QDGuTl8cu7X;
using Nmtl3LjTo2hV48NvCWR3;
using No2XxijhcWuMyHM9W7we;
using NoioGJaQNBE6voL2JIP;
using NolcUTiKkSop41ylu2nO;
using Npff1tFpL3nJEWeQQu7Z;
using Ns4udH8QjtBYPvrAEP45;
using NsVfHT89OwmYKaDLZ9fI;
using NuleA8Mj0MqW3vuxUmVK;
using NvnwFpgcGd0MH0e3OGU;
using O1G4VtjTG4xgR0DEgdNv;
using O2L3vY2gOXOhusebLFMJ;
using O2wqks2901CgGebp3M4B;
using O377dZ8ikbYjA0yxnCxw;
using O3QnZPFmYVq0RRjpXijq;
using O6MWtxaFOe51u8BgwZl;
using O6VD1EkB9FB3vaFyodl;
using O7jJ3DjW70w2evvpkO9r;
using O8VmMpioo64LesqJ6Uoy;
using OAA7Ip8qwm0QZh2StQJl;
using OArgffjMKrb2IbseTLGW;
using OBRF2RNqtPj9RhgKTEM;
using OEKw6ZF5weHKJ0mPht7L;
using OFVyfwMfVf5xSCOM5yqR;
using OGCHqfFOClU0HdDk1tVL;
using OHgpdM27ame1tlqtT54F;
using OIMyq9dcNuwrvgZ8lON;
using OIOQoeFBrZ34PEcVMkpx;
using ONlriR8koIU9KsNh1pxJ;
using OOZ5fd0PtVf5mf7F5Tr;
using OPipHEjJfs7ViM3CGSeU;
using OPt8di2ahyiuDkevBiEN;
using OPtTavFDB4KGp4NStjVG;
using OQyGWK2VUxGKyCj4hMjV;
using OSk6Rs8p5oVPVt1jJoKe;
using OTHjxhM4YLuh0Hcv93P9;
using OUGtYsMEOhN5v79UL835;
using OVKNHjMCWVar29jXdQnn;
using OVZNNFM5EJj9qTnDS9wU;
using OXKGPBM1swUOepI3glf;
using OXsJHAF2kyKoo3T6gkJ9;
using OZBHpYFGfiKHw54pEuZZ;
using OZbOediF9wVAnxm12j4U;
using OZo4DP84fWs5uLJFEfRy;
using Obw0h285JVZPVlKFkCkR;
using Odinfb2XQLM9WhDoCPsm;
using OeVkaqWP3rQEFjapOtK;
using OeohpEjEGE2vfstBM4vE;
using OfYxJB2olCCoaATNSdGf;
using OfuJHNMGGu5kqJd6eQsB;
using OfyE2X8viYuYqVq3typX;
using OhfLt62Fq7y4ioXOrSbQ;
using OhwUsk8PImDWbkMsk0Qv;
using Ol1bs6iwGhEgJ7hQAlny;
using On1A3wTg7mMgaklhGMR;
using OnkH0v2FkqZRBt92DAMX;
using Oo5KYXMznPJGHqDUoOTF;
using OoJ2KW223dLe3R7Q9Uk5;
using OprG73jZ5HvDIVWIZkka;
using OqWnjdiZfY6pu25dTMPM;
using Ov7QtJ0GH2DPTfIENv8;
using Ow63W7jJpagXXwycvjIt;
using OxU4omFAmRHB6YUsv3Cx;
using OxhgBbF0t2vv5WABoxnI;
using OyNTJwMlSI6Ex2ESaShD;
using P0MefcFkhCcuFBKplGQZ;
using P1wXRR2y6wNCo41aQJWy;
using P3xi2mFl3jtsBnJ8LFrG;
using P5aMwTFl0lEqc4a8I5q3;
using P67KxkjYJ2O5DsyscZXU;
using P9aio1mZ76pc5Q6amfK;
using P9bQ19M5Avk9RC3T32vU;
using PDQQfw4BSlD1LTdrDfP;
using PDSiKXiB13h8wUrBubXO;
using PEa3NPFXW6yu1okY81tq;
using PEgESRMny84KRhvLgLCU;
using PErIthjWvhcCxq1nnDCM;
using PFk0sts1iRDZ7g6UvNY;
using PGY0rtjrCscSLxQLTGvX;
using PH4REMMxwNH9GstEWXKA;
using PHGms7iXxIKmbfxp5XHM;
using PHSbDM2Uk888KVb6Xmtv;
using PIMG6WjW23q1d0dbGM3a;
using PK578GNwLCOGDm0C8LD;
using PKvsBQ8iuWuOl2XMLvat;
using PLL18mF2iP2IhIoTBdE8;
using PMDhAKjtgb9pnSLXTb6q;
using PMxAQiKSx9jhvvK1rux;
using PNlKffHffJIikqvNYih;
using PORfF58MJiCX4HjPPSKx;
using PPlq7382fso7Ro32sKOH;
using PQVNnwFkCes7nCS8n70u;
using PQW9HKMS7nPhrDgDZcTt;
using PRUJVbM5DPWNEBdIKCIp;
using PTvEU9j9LQ9CM18SleaJ;
using PX1CalF6NvSiOSOgl04o;
using PXVNm8MPur6Hv0xPwNZx;
using PanZv6Mr7s9GJNGUI2vX;
using Pbg6xK2C5HIax7NXXmGp;
using PdS5ER8E351jYleWJH4y;
using Pe319djNNTaQmn52003g;
using Pg72gN8CqZpSl0q8CKnc;
using PgvOdViIgYK86Z70dGD;
using PhlNPuMna5g2oVvUinAd;
using PjStiSF0BjZIy88dBOLb;
using PkciIq86Gw72NpgfSpu0;
using Pkmyp5iZn3EKOLNiZrSY;
using PlJIuB2eJYUfLdlbmQ7W;
using PmUeU5iMoOdY04AraBao;
using PogVlI8hHU5845Tq91RP;
using PohIRMi9VIuiyRbKIMsK;
using PsmwxXjwksl66UL2D0EZ;
using Pudcdi2HSUKdXRR1Dh1r;
using Pw0GDjbpw2084cXJK5g;
using PwDAhVMUVuiyiw4sqbgr;
using PxkDFbFfdrmguU75fYfn;
using Pxo2wujTScEyDtta0Kbi;
using Q4rg2ei9loXGaB9GIiM7;
using Q5JEncjFVvkMujJZ18ld;
using Q5j1adjxR8UXouGxS5nS;
using Q5nlgS8L0ZolsCNneKoV;
using Q6OKuD2gZIqwEg0GJ4W1;
using QAwVchFK0aJxLM54e181;
using QCV3fBTPUjbo0xfU3xW;
using QErm678le32bRAYjO77U;
using QGbEo58F8m1TgOpurlfa;
using QOCJH22P0JIe0tQ5dQ1W;
using QOIBo7FR2QsCcKVE9P1X;
using QPhlRt8Qs8Ciu7ek3AGY;
using QR8VP5FW0jjkLom2gvIF;
using QSfm3184419HHhLqRUMG;
using QTKuP32i23MdJpNXgD1P;
using QTw6vxMbz3pXCyxNItUy;
using QVNBiOsABRRo1L7BlIP;
using QW5HlwMyLBdm08xqCwJJ;
using QYGTeOj397m2ZQho0Tt4;
using QYJJEtFVxyBvta8BcOZH;
using QZs7On8mGGpeHGkUds5y;
using QdBkhb24opBqR9gp9muJ;
using QeNAvrF0eHKrHKpafavt;
using QfvVYbisubPj6IU3ZCuT;
using QiSfSA8lRuvTsPR8en3n;
using QmrT4GMdimRMTFE671Zt;
using QqMee7LlAkka9wIXGIn;
using QrYvNNpDxsckFZ6oMNj;
using QsEDgwF59pueeu6rBTc6;
using Qu6kVC2QK8Lwhw6PuKGQ;
using QxrD5UF0CfXGuYYXI0Yq;
using Qyrbaw2dGOmDFnE1ijE7;
using R043ecjPNO7wFxGWP976;
using R0KS4k8ZatlfB5XicMpM;
using R0wXhT8TsObWPpxVktiT;
using R3FxvC8pGVvoUteliFTx;
using R44anmidigW42coVt03G;
using R4yxy0jTNsvQB02kCdB7;
using R5yFYIK6MkNGACKCnbL;
using R7EWNX2B2XdaxRFn1q8K;
using RAVxbNFOUGQAAfoO1F7y;
using RB5jS92iqM4UhSG6cRhF;
using RBQ1j28p10fqMXyKlU5U;
using RDyUGCj981RO6VZPiTEf;
using RGUlNi2Qz2RoYHIYKeFp;
using RHRi8xMcDkkVhA3tkfN0;
using RIFCU0JBr5LJFDHJmbS;
using RIcHLvMzYQdREAFLfvcU;
using RMhaMfFU7rC6dV9dxt8r;
using RNEDLDj9y7NXdfxUfYha;
using RQKW9LGQuqwdscSoWyM;
using RQy3hnj3aZKn0jA5PYLr;
using RRE0Z8FY2Cw8jVSE8MsS;
using RTsLOCFSCoOLYMS02dR7;
using RV6kKDjTr3oLN6c0w3tb;
using RWPZv78HdMUfWly8nUVb;
using ReAywf8wxjrVAoi5Nji5;
using Rfb9awSCpXB1GUWPOwy;
using RhbyDOSyIrjOMMkdxLf;
using Rippleheart;
using RlJxTTFYg38ymhoW6KQw;
using RnVMdEFiaZg3JtPA6Mb5;
using RoIt6UMVYWvLvZ5wpjSb;
using Rooc2uX53GToThs6vKl;
using RovXYVoj3JcMNNHEnId;
using RrbHprjD1R3NeSPilwda;
using RseSKw8hxG6RZCXSmaXw;
using RuUHNAjWhIWwVYlKg6Fx;
using Rv4Mko2Wbvc9403x4jTe;
using Rv9fbWjYkIxLFhUIWm2H;
using RvQx3qFkdWQDxOwMCAsm;
using S08aWXMfrmNFtKCgnN2;
using S0N2xU0Z1eUgfhT4YQn;
using S1ianEFDuYobii8dr2uI;
using S4ZeMN28hIEoLgFuf7kA;
using S56Pco89EiWZKlp0ZVki;
using S7gaixMCPVGOJWQGhFHB;
using S8Jkgu2dlSRsDjpJeWX0;
using S9PRVVicuZJh799UMZ50;
using S9duSONAaKLvPtDKe3f;
using SI2wPDiPIWV5SiApqYf;
using SJ1rcDipsGRqun3Sdr24;
using SQGjyAjDLngZv72sbtlc;
using SQmKNvjP6hOSk5UHJVRx;
using SRFxlZMWx7bswoYpyO3v;
using ST12FZMUHZWXWsq65SdY;
using ST7umUjucL2T6JV06YbC;
using SV7eY62dST26xgAKLly1;
using SWPFZbj3kw4ufHi5kbRU;
using SYGfRt8TfknWeEsljuwC;
using SffQtrSOjg4HehWtVsY;
using Sjip0TjVynZ2SjIGTOxo;
using SnVrdtFWAe4VejW337Mp;
using St4MhZisK3nqSXs4nQmU;
using StcDnYMfcAlMQNt1Lj1M;
using SuchnQ2KHdIFx1YeOqXw;
using T1UFMw2WEvNA4kbMXxuk;
using T1Wgcw2dE9auwWYoaxdA;
using T4Cc3sF42cW6vJRlGgIc;
using T6Ibsr2wp151UG460fsK;
using T7LbRniR7unVgjpmOMDI;
using T8Q906960sX3RFc30Hn;
using T8j3uoMZZAJOXiZ6n0B7;
using TByi3hj859mnXLpTpL6C;
using TDAKLEAzhCboRnJUgPS;
using TDNUql8HYcJP0HAKR8Cu;
using TE8MUW2Y8Yeo7svmTZxL;
using TF4EXnMIkTSPhFEcD09A;
using TJjXKmMVB85dVZn0vMvE;
using TJl6fA8j8o5KFxtkWmwS;
using TL8peCjIoTZYOBdJYqWY;
using TO4mUBjWFfStv8rDKw7Q;
using TO5y3u2K47IJqZH6FN4l;
using TP2AjsF2cUZkaIaPlFTU;
using TPhWHMyUGi3eg9UepX0;
using TRbOnKjfwR2OOA9424g7;
using TS7AvH2NxV0jJ1x5xVf2;
using TSAIpkM0wM1b2SdkhhlB;
using TSI5mmiZq4pDIqm04EGL;
using TSvA6grQIySnxLu5ZWH;
using TUTyMt2bKy4Q273oKs6a;
using TbJrGkMB8fWSGDvwIIuh;
using TbSRWXFUTmixnhqEbZZK;
using TexWOb8VjC9FEqeL0qpn;
using ThqSDP8dwGu6pcFlp0Oq;
using TiBSvbj0y9R0G4lXM3Cj;
using Tic8v1FYe3vFvX7oTJZo;
using Tk7sbxigtQue0p8rE4TY;
using Tk8Z3rjTTUmTcfWcEchm;
using TmGnYHjHAg9Yhjm875w4;
using TnmZaqM9BOEQPPFw8Dal;
using TpbtdFiaxsoyh1qlZuHI;
using TrTDbLisgvK1pcf8GEox;
using Tu9RGA2mXuPCXt0Q5vNZ;
using TuSLobMkDq2j8fBqFSZK;
using Tvi1PQp9x0iu7YUDkOp;
using TwHuZQjtA8O87w6Bt7Hr;
using TybyCC8PrlDPgEDHfMMD;
using U2nJTcFRjAkDD9WNAvO0;
using U43RCQ8RNvxBUShlyHcw;
using U4hxPMiE93KA0hZiZY62;
using U7RvLdMaz763nMhTp6IH;
using U8oRBHj2vwueXGWO7gFe;
using UBaFh9jLslBkvoETdSws;
using UE3ji02i0bqtqSdgfLZ3;
using UK26F928PNHkAy0JrZLF;
using UKVFGR2WcSUoTHr59a9C;
using ULqVFXC3MRsNBNXyQSB;
using UMKVuFMqcf1iA30B2oPg;
using UMqMGr2FUyluhS6YNBVX;
using UMrqCy2hK3VYeOM2G9yy;
using UNsAkMiZZArXHlhMZ1wB;
using UOTNs12iF8byxuu94NI0;
using UQAg5qFEfs8ZqB5chKCd;
using USV5E62HyGhAyUIsRXt5;
using UV6sSriQZ4bjZpLfYUe3;
using UYrDYsCE1ceNFdeY7d9;
using UYwNOHjZb8fH0ylsc8fp;
using UdfNyUiKZw3x4G50156d;
using Udfrgc8QAJ2rPpBSOk9y;
using Uhy5fsFZQKpY2lfkL9K0;
using UjTmUbiFMGWsaDW4dRCg;
using UnityEngine;
using UobwcAFnUW6qEvRgv4tM;
using UwOIRhiGVuSQioUWfKoi;
using UwqpKdFrOZhOlGSHvknh;
using Uxh78oMAkeEm9qMITnky;
using V1La6y2X9jEBr5o9T2ZU;
using V1hVhSlHILh8GLhnanL;
using V4TBAWMNYL22Wm1gWV2p;
using V4gVUN5EvDqamwCB941;
using V4wyyFM6nTqkc3JPgTYL;
using V5G8yxFRKML2Z6rTh4Ma;
using V5IhwrFNJR5mSmTcoEFb;
using V6uTrkFg9pSgA9DNJy6m;
using V8ltdXFMsYDohQ85oIIi;
using V9xU2T6L9sISHtqWiWX;
using VBYgkdWje8JRFVMYHLP;
using VCK9mM8KsmhsVTYO3pi9;
using VCujNrk0g5gjpQsUAag;
using VGbHEBRq8MHuOUTyPjc;
using VIm4WhMjL09PVS6DlWKP;
using VLgFPV8XAaF398eRJru2;
using VMahEJFMIOynNUX3ZSvv;
using VN7WtWiQKSgZrWvDycQZ;
using VPlGZNFsIyGgkgvgvSK9;
using VRLTisjsnrY9FkZJicg7;
using VSiqad2KjXLVhkMx2rVH;
using VTEi8xMsv1jFyiPhI05g;
using VTu3tP2AO828HkCc4uuS;
using VUSAZI8Bb6yDqrS6PbQ4;
using VUuZ9oi7Kq39VWa48MPl;
using VUyDKOjd0cgMWlQQbgXF;
using VWB6N3iMX6m9neCO9PLy;
using VWEjdeFDdCDNeeVq7nyX;
using VWF4rjMiumfyXCpFqeXO;
using VWRjfI2QMjAaoQelBB4I;
using VXZlEBXyuj45WSZ67gh;
using VaHTuHiwVjf5d7j6eebY;
using VbwIDMMHoMq21bCuDwrU;
using VcC51qjVo2LKOkA0cUBh;
using VcbMVkiXu3Uv7Cwn8iva;
using VePiEhjwsLcvZiZEli69;
using VgcELi8yd40PBtQ0Pucp;
using VhipXeFRU8Zdpjw5ygN8;
using VjLdDQ8q5sjiCvpqUxrn;
using VlfnXNjCZhyOmJry7uMU;
using Vm49QoFOJT7ESMHmU2xY;
using VmtLJj8nvbesmekVLTZB;
using VnDAirFRHvIp9YoIN9Ri;
using VnVscoiZpSQNnjegXdHp;
using VnY2Wjj3nVF8ylLUlkD3;
using VoT3u78fYXhmRmTgjXDs;
using Vrc4V0rNukKStIOgjst;
using VuLVpxFLljZwgo0JwCf8;
using Vy78fojTtpUuWwugfnrc;
using W2e4aRsvwhBLa8PCkTJ;
using W3gWpn8VWSrZvpZKlKdw;
using W4mBOnFNOBfV0I8HZJ13;
using W628XhjVtt2mgD22kXnq;
using W7KxplMiby3rQgcvBxVk;
using W8ihT6MtBPaO2L5QBOQl;
using W95lr5FYWw3li51hWkc4;
using WA6dtRQ1ik8y5v2j7a4;
using WAPvi2OqAfPO9dqD9rJ;
using WBGaym8Ny5wKGeH0skEw;
using WF2DO228UaMxTNOyQPt7;
using WN4ttUlPqQrEcSGxC6M;
using WNHXbr2fLndDPXSBu401;
using WNQ18gSdcCECKirXvcA;
using WQFiN58yWpwZEPekT7eu;
using WRRlEJGwE928RQ1wDia;
using WSjswH28b0t69fLdFGt3;
using WW4nEcFRcaJXolk1lm4n;
using WXm64AMXdKctcMWJxgb9;
using WY3DXWFMQJMVuj38B8gm;
using WYG4BBis8EeIB0HQj5bk;
using Wd5I7M2OJgN7cY7lEaCo;
using WdS8yE5bhuAQa5NYNkx;
using WgFre3jWQTBGbDyqOA6i;
using WhGZixjZKAsPQ6LvpjQU;
using WiAWmcjrMCB7RQ3Y5CT6;
using WiKp6vFExn7h5KwIm3CJ;
using WiPbjl8ELGIOsi7kpTE3;
using WiYKb4FZ5BHmmkLDm51s;
using WjhdSm82vJ4fbpCt7xRS;
using Wm2laA8pRbBsQ7JZVwyv;
using WqhMm5FKElACrn8P7kU1;
using Wr5Q6QkF9y4tSRihoR5;
using WrZI5J83244ZL7nSxi8S;
using WsTcZRiCw1RVkOIcPyK;
using WsvtkdFlbSUpaBhnFj26;
using WtvoeBiXvRKeRJaUEwBU;
using Wu2ZjRFgHm2GjUuZWEj0;
using WveppnCgrqm84T319jX;
using Wy2sU5tFinDTXxRFOu7;
using X1nbjl89PqtDLVTPlCSR;
using X26pxgFnwY1n9jZOY8Jj;
using X8NXpYjU6WGyNPuVbv0L;
using XA0Yv8FaSJ2eBQ7uBqQ6;
using XC80TTjmPl2tjX8sCSHE;
using XCMUhZTck4QWBlPHLae;
using XCX3GFiwA5KN8ejLviQm;
using XJmk2RFQLuKYGvdBmrPn;
using XKcBu62l6u69yOLMXB6K;
using XKtvsDF1P1rPMCvofuF2;
using XL4qQnjc3rPdaBFlJtN6;
using XLNybZdBesQSvbEM6yQ;
using XNjdq7ig088eGuCb4OEJ;
using XPZWBMFpxS9fG7Zy8kiC;
using XQGi1csDuvOLPZ6TTEv;
using XRi68ti7tv5BtQHKr0rv;
using XRiYtojPJ0OFX00bLkji;
using XSA92c8qicOZF7tKCB7R;
using XTZyQZibCQIooCtUBHw2;
using XWjGphaCox5F4bEPHQe;
using XXSD5KjGrQ7qUHxE7079;
using XY7uBg2kJdsdyD5dyEh5;
using XZLXk62oFuEYjvqBiAUZ;
using XZrYXsjdC2A15mToD1NX;
using XdDy3WFWNbAZ2iAagYG8;
using Xdn5kqiCA3ZuiOXbfhxC;
using XfPjJdFNxq77ljarHUbJ;
using XgFTg5itUl1wcx4DcKCB;
using XgthKT83pHV7MTsq2QMH;
using XhXyp82FLpYCl8mw5IEX;
using XhnYpQFNqk00ISlodFiX;
using XkCvllcB2P6bMJ1gj69;
using XklxAd2RT8IOALjxvXyC;
using XmNJKAFEcYTJT0NPM6IK;
using XngPIxMh0QD37LYDRNDR;
using Xq96MZRmFugdQZlXHUN;
using XqVaTKFXzsOSNRmh1JpK;
using Xrw2sf8wkl0GCtVqLo0x;
using Xsmnp7jAL6ISfJCZ7YZw;
using XtSbd28cc4e7WnGJjN1Z;
using Xw27w3FKftnoVjtp3k7i;
using XwBwwx2hMOoVVNvfFQ8U;
using XxM6xPMGB3VRPkk3a9Pd;
using Y0lsudSlRBnN5Z2CGPG;
using Y14l64Rl7rgFGfdmIOO;
using Y19BwT8DGLIaSLjub5Z;
using Y2y2ytjVFIaexcaBvcJM;
using Y4oCAKF9OhXE0AE8gOpr;
using Y7R16Y2KUjx0LcAQLwn5;
using Y8KCYR28NPXsVSjiwX9A;
using Y9RV9QFZ0yDKLYlBGha9;
using YCLBCvIicBLql3pUS4O;
using YF1wd0jgQXMoewQTGfE0;
using YF26AcMC2RZo1fDuygnL;
using YFili280j8bsjXGNrsmS;
using YH1naHM0NvkmrConE65s;
using YLFgO2MJn5VpVFfF5sBm;
using YMQkYCFcp1dr7A1oV3wW;
using YPqIknMzmITj8BvSnEpr;
using YQRwMl2XZSn7DYcIPUC3;
using YS4senM7w6W7muSf17oK;
using YSWAcW8xbEgIqbKJ8RSj;
using YSqsALjeLT3WuE3mH2Ut;
using YTKjW9jGxgPbvjm0Zg0b;
using YUsZCt40FaUqcLAstEQ;
using YVTt4LF3PPPAsFuqTJ36;
using YWGyl0G7bpvJ4V0iOyL;
using YXUsP1VQqXep7J8pf33;
using YXeQ6XjIusXsYsQCiA1S;
using YaOY5gisO8WF3KLe3eYR;
using YbKPg6iMqIrM62yl5Zr4;
using YdDP68F6OXrrO3JULvxu;
using Yjf3SkcXMnTYGtKiKdj;
using YkoGVq2MCMQ9gbMggtZw;
using YoCGiY8TtkWYDEH48dwp;
using YpAUaljCF3XjrxjNySxM;
using Yu6N0N8Rx52h6FD788KB;
using YuILHu2TZjD5yVqZI4Py;
using YvyxhO07kAaj3hXYRqy;
using Yx5vsq29JZ5EHDC0wX9y;
using YxP8UOMDklmNrdwCTJ4F;
using YxhwmljNgga9VTGHc4TD;
using a5amOs2A5rg499jRlWuv;
using a5q1se8UHUdTCLskKDJ5;
using a5rjsJjIwJ7bOGIw6t17;
using a7OhKHFRuqEkd8TmNhMk;
using a7miRCM5nJx64gOFNtGF;
using a8s1Du8erDScAnbtd81L;
using a9G9xQM1DMb7c6TlUbql;
using a9V3utF4FsybTW8IdajH;
using aAZCbRFs7BbQaha1emew;
using aBvaJ0F21miw1YFqmc84;
using aGNpPAFIH8Nl7Yy6ISKt;
using aJT9TM2ljXh7kCxUrma9;
using aKx80goTYqCGHAHFHNb;
using aL3viZ8tC0O0OLfgYlX2;
using aL7EZBcWZuSgte0POol;
using aMdOQV2lvwQahyJjNrpf;
using aMpdFY4m5vY24LC7B6G;
using aNOuYsi8SbK2HCar15Vw;
using aRxKX58O3tBdH3pT2w7N;
using aX63hl8qoNKUpeO5VJwX;
using aaYjuu8lfWFSGtomQsK0;
using acmQG72RqyrBMmNlkUp8;
using afFVid8PEDTfdis35ywX;
using ahJ5uPFKVErgQ4Ij76UR;
using akr1pOFa1WqhtiFdUtEK;
using am7SUQ2TzfvQ9Z80PSPe;
using amO1It2oLEhciGt3yIOa;
using amOElvjf2UeeQBX44f3R;
using amxSn9jNV0QaEZPutI2S;
using auT8kj2vqxD0LRrVXaLR;
using auscCL2X7Yr7AUKaaKvi;
using auteh28glPwBJTpKFyDQ;
using avmHwWF235PlNXBisIrK;
using aw3dI42RykDiCL4MZ0fP;
using b1qgcKFfLd6eQesxMJjS;
using b2nqFbFdxLFoqTQRycot;
using b4dy3d2EIBFN4YMeJNFc;
using b4kpgj2ts3jO3loyE08h;
using b5D2e8M3AG7TlqmQyoGP;
using b5hJCy2BTgWtJyJpom0N;
using b76HIHFbW1A58RXuQxmK;
using b76TII8scZtCMwxm4JEM;
using bA3s1AicOBNLLpjrHFql;
using bEKMC3FPRyGngsc7QTYp;
using bEsMr1iKKhBqYpXEnTTs;
using bFoojdFxtwf4ONkecv7s;
using bH6GHPHRuIxr2oIfvkC;
using bHhwIZ8eN2NkShRBcHtZ;
using bI7T5XM6Nr9mcDVJIdKm;
using bJFGDw8K48WkmaPtwvBZ;
using bLCW962v5xakbH83Y7W9;
using bM5v9w2us1gbONHCvWuj;
using bMkCy3j20DACchack76o;
using bNPwhqFE5RHBYwnuvoKc;
using bOFYWc8bXMksegN1QeOh;
using bOSWj0jYNibAtG96cow9;
using bPrsye2a1tR6UGDLTANi;
using bQlaQI2v89L87N5CoUdt;
using bV2UEjFUaQ9l2ehTe1fl;
using bXF3cWjmcXa7JR50kLdW;
using bZee5n4UAhhTa6Wd11k;
using baf080FpAwfpjfeJ4GTa;
using bhA05HjZ6lYn030e5wAx;
using bl56twlwCaSoMw6Pltd;
using blCkMAibIPhmc9vIsMEV;
using bm6cOZjCpyavdQE2Pjic;
using bsS7yJ8UBSK2HKKTnOG6;
using bv7AXLF9cSNC5tMRGQIN;
using bvB3Uf8kCMih3DmKGpmI;
using bwSP658FpgKk3Leh7e4U;
using c3B7koGejYO9J0GA5Y8;
using c3HWiCjT73vPlkQT5KLr;
using cA5gmOMFqQj4ZNM0reON;
using cCD1cMFoLeemWW9G2snh;
using cCkq3Zi3XRQNECRNlltP;
using cE8KIiEnswgUeJqqL7N;
using cEC6nmMbcogRPNWkJsIY;
using cFI8ZkisGeIAJg0hWSkN;
using cFqaMKFMUPygSxahye3U;
using cHW9CN8iJ6wOHsTSosiU;
using cLAeUaFRbCTCGerfeXqL;
using cLhVDrjLEHAeBUMQCrar;
using cOx3G9jfsO2YoWnJIQ0A;
using cP0YweLbVAUmj2DZZ4U;
using cPeTpmMXK3LHLUetqq9u;
using cS8kgajqVxVcvlbCL1pY;
using cSqXZRi4le4qVWW4hejO;
using cVZefMjEhOv81fvWZ1jm;
using cXN8cu2wKoevHKNSMD2a;
using cYmT55i2QvG6bvXoUWDE;
using cZ7sERruj7xHrXejU2b;
using caITt15wNhA112y5CKI;
using cbZHl721PVqkp4Lcgg74;
using cbv3EbMflE432sh7Oye1;
using cdkWc3jCJd1ZT070an5F;
using cdyEseFuYa5uPAUZE1YE;
using ce3mpk8jppsmyj3sY26b;
using cfAralAJdGl6l2y2nMc;
using cfGkCMFGmt6iZNNC3ycr;
using cfb6hOFlo2yAHJO61JbZ;
using cjgp6vwhNhB6sONT5Cv;
using cnUEuliie6VVNuQP64MM;
using coV87AM5JG49vjfIi2yD;
using cq7Y738gK0tD8rvL7wDR;
using cstPXWigODi4oAV4krbR;
using cyouBdK4f68cEMr6Yr7;
using d1ieU78Ufy7UfSwcaQ6O;
using d3abv48hSvqbnE3Iab5X;
using d4mXm4jPRuGTSrc4kkZy;
using d7wYT6LAXPW3UpLPnAZ;
using d9K5BSFvRTGQtFlLNOxO;
using dA0aBXiHBBwEwLN3IUre;
using dDvSgq8JbVpBLnDPUKGu;
using dFMcetFIZXaThD3NMsx3;
using dFqNssiCCdNAGGJw8aVf;
using dHa7C7iolhqGrhsuc8mc;
using dJ4wloFIjQZE9XU7vRVk;
using dJl3t7jEuVWjRCnHlwvf;
using dOpDAq2Ecpur8gpD8uOd;
using dQv3lZMIbR1H65328kiY;
using dRT3PIFINMy9t935aUTQ;
using dSMqhc2d1BTk5ObWp5rM;
using dSsh1aFYf5nu9e1mKotB;
using dVnRpGjTeoZ72xtk5y5C;
using dVuwb58vs1Mo0eyFC4Ax;
using dX6qHlKgK5RPa4UBZ16;
using dZv2PNNCvZy2msnObsx;
using dbNphTMf3ykPTVItM17r;
using ddlulH8bNBqaluhl6baH;
using dfyneBFdtw8T2Zb0fwtT;
using diXtZm6YYJK9Zn2GyvQ;
using dnGb6fM86Sm2ffSKXn1U;
using dnUG6R2FMBcE7HqO9rrQ;
using dnhBLoigbOTY361pBSQo;
using drNlgXiuWf4LK1G2bJeb;
using dsG6jRFEpGHTS1pVtyIN;
using dtsDCbjd2OLe7kZcl72b;
using duKGWibQu8ndRAIm0bP;
using dv47LVjVfb47oaBj08Lx;
using dwuZ2jltYMm5pUT0cTT;
using dxTiiq2FZUlhWfdomCVs;
using dxhyTCI806qw3sYyxhn;
using dxkB4y2Qvp0BJ1yLB5wg;
using e1F4JJiqo6Cn7dfNFvEm;
using e1tBAy2OYi1PThWhoyh2;
using e30jovMpVKZa4uOefUXG;
using e3ZtnrFWSgy2TTOJUYwP;
using e5o2URF1twKl6R85VwMB;
using e5y1Zf8LPSeYL9e5sXJu;
using e7qc6A8iZJ68ptRDHLa5;
using e9w08c5ofrpXKlPBq2c;
using eD97mS8pMfjbw94M9Dac;
using eELtjtDjJFDFuMHcGsj;
using eGpAUWFlGCZDosJ1UUXf;
using eLH3FbFaEf0yGFlNUpEh;
using eLNrCgMMp4HK696TbTAr;
using eLkXsR2a7QR2ywVMWNqN;
using eLnEdXMwmCPUsB9DgiiJ;
using eMKs5eMPi5y3Xixkk8uZ;
using eNB1BDFfHQplDxLSia5Z;
using eOpu2YAc85W9hbwYtTJ;
using ePZUOmF068oAKtXG29G5;
using eR5GcsFifySmY0WPdoUq;
using eXNTNyiqSrPxCUC6Tkiu;
using eaCWgXv5hjxiWThk9V1;
using ead8wl2mZtJ62kHO0aCA;
using ebmMHkjUm8k6KgUungpH;
using ec3EG7F4WoC1L7I95oqU;
using edRtPJjUNEBeLiau0uAT;
using egmM8e245ZoPHhI0X0Dx;
using eh2mvP2oidvu8K726HwS;
using ehMS9qiSYUVpcv4NMtw0;
using ehqsnVjT483pCOI5K4GM;
using el4AnBF90Vy6pNxiGgmd;
using el9hptMV6wliiTRSrmjE;
using elRNPQMgjwAZnXSXGM2b;
using eoiAmcFobmDtTFGwIqUr;
using eokCItjc8IObKejXP4Kb;
using ep6cGeFYEfF3dBjKBYkc;
using eq5BQ7jrVW4grIsE781M;
using erjcxOi4h3VpobKrE3sx;
using euLDqCFAgxLjEyYha6GC;
using ewG4w8VBHMqfM2Jgv5V;
using exYoQIFKCdn4P9D11nJK;
using f0VlBTM4EOPi8nX9llyY;
using f0cvkGFPH2DclVYuG7Zk;
using f0iBoXFQel07jgsnkD5n;
using f5FTnZC2s8duVY06gjr;
using f8fGZNMCeMQIa1gICXTn;
using f90tOw2EvOV10tNSdhVr;
using f9uLGsMBVwAlWVr6dZkn;
using fASestF3F6JvO0iZxHhS;
using fAhuZUjXT7BVGvefqw9m;
using fBhbUUbSSsU5rVv8Ztu;
using fCYfrVMeFg16VQqQxx42;
using fFpMyM8Fu9vU5iJo3eCF;
using fGZZ1XMUhN0thPS5gaMc;
using fI494KjTgGEyf8l3y7nf;
using fIjZjf2mJnx2b5lAMQgb;
using fJYZd68gZIxwpCraDOPe;
using fLdSQZieWEPnaoIyH6Pm;
using fLtVy7jZBYt0tmm2Fon3;
using fN3Ce32R3mFJmRhtO6bw;
using fPKM288NutkaS2VyN5H;
using fRMNk82XpVi3smUEKUkt;
using fT8wAo2GX3eH8W47XFgb;
using fVCklPu0eaCfCdX7w0D;
using fVE69Y8MtghA6458Y3g4;
using fXI2fWmMD99LoxftoYe;
using fb5tOAFKvELUfvvJtjvk;
using feJu2iFnMJBr1P9oWZc4;
using fgHwsu2dWHYqoUYgMliS;
using fgSM6r836fAtNpaTipKi;
using fgrc5V5kbeWnWNfyBVm;
using fh124uMJ0oONStbWk2oK;
using fhH8xxjLt4pIMtrJiZuA;
using fkMo6Op634KpW4tusxa;
using fkjZMQ8PeWBdLRc4ichM;
using fmXRCJiZzJOQ5JWdSCyt;
using fnfvh3jrUfFuUCc28532;
using fo6Lg1ER4erC4CtdQCa;
using fpaVUyF4DApktoo4Vc9P;
using fqb6inFRQfCWO6bkAtn7;
using fvvHiU25JrDIViKRQmbp;
using fyepIFFknKlBmvJdnq2o;
using g22qj9jbKBrOh3MKcwuE;
using g25tYqFucJfi3eAAeYAH;
using g3kBAsjDExtdJDcNHX4c;
using g5hG5orHT9tbbfeZL0d;
using g6SWBjceuLW4ja3oGvt;
using g6tKo4OeWfYvu5l5bx;
using g86fbBMCVHxiBw9YjF40;
using g8Lj0lFrpt9R2PbVvmsW;
using gAjfs8jd8B13AEdbTiwd;
using gAn1VuMQ7lDJfw36pGEP;
using gCcFru2om8Rg0NZMmWkL;
using gCosMt8BZ1FTrdUYlEZm;
using gEOdm1fH0X46oJKQcpv;
using gF4YSIMDCVvVBnDguKCr;
using gFx7tvF3owx8FCtPh4Rx;
using gHFUxLiBfYdtQ2Ki740;
using gHfcVyiTkrN1FID7mVMl;
using gIDXKyFQblBAb81SQ14h;
using gJXFYDGscALoU23wWit;
using gJZIKcRMUr7nfw1GRFY;
using gK1yAOiCOMDx67DgVtWj;
using gN6t5cjqNZgYREEhP5eD;
using gNV53sFK30JRXuiJZZSh;
using gNY2I88KlCf2FpBiF4pM;
using gOu5oRFamVOd9oFbqjig;
using gP56sn2np3XNrIfoeVp1;
using gQge7pjVjaxHergUSQLH;
using gQgvctbxjhPFcBBE3F8;
using gSCCwQ2qXHkfZwheARRF;
using gSCIYhjVnB7ybNIB9UbK;
using gWiSCNLm6hYqA9dEFa4;
using gWilAZ8NsRp3uHlV1XbL;
using gXoesYiKmKHYYG6U5Wrb;
using gYvKDXi4LUvuDSUFhCL6;
using gZx1N6v3ebSC8jByTw3;
using geODUEfNZWHO8Tjkerg;
using gk1RxV8foiwgLRafEHXS;
using gp1GhSMeoUvaPY5xhKKL;
using gqiDUn2tNLQ5TgvBO7rP;
using gv6MJ5jH4ExNk0YRR4wc;
using gvbuIfMpdMl2DBa67LXY;
using gwbjgAMD3DH4gpfSHZmu;
using gxPbx4iwEZl73xMTqHAS;
using h1fnbLMsiVlnwIMqlBnH;
using h2IcNF2PR0j1cUCR7e4N;
using h3dWFA89ALomTOWXUQMQ;
using h4S52o2ovJb7Tr3ou4Lt;
using h6eDn8Mynbgw8UadPlnT;
using h7A4wI8x0mqQLhVX88cu;
using h7BwIt8rzv6OYXpbxMjG;
using h7T08qFSGcL48sIJIcV2;
using h80pHpjWXYoI332XwfZg;
using h9vLMXMooHEIgaSrenFs;
using hEbZNZMuOjnieAF8nFO7;
using hFHVvd22W6UsT4dOU7t4;
using hGYA7I2LYXQ166YKb6u4;
using hHjGFajjrvJDqr7jZleH;
using hIEkZt8f6k6JPaGTJPRJ;
using hJVHYvFaRNxsrNEVta3s;
using hM85FTFXfegX7RZ7upIu;
using hMZVVTMaEC8R64rrSGjF;
using hOTkT3MimjeUERhKHlu2;
using hSHmsbFLoKgDCbPbZMJK;
using hSfT2PGPuNqfAZXYZXq;
using hWB93RoKKJLTyIN3wbm;
using hWkqnRjN2aJVmsCH5tJk;
using hWnCrkF5bylFSqGHqkYD;
using hX8puu2n78B6iLoC8GpI;
using hZg2fy2lrFDJbkoVYG2h;
using haeJolFho5EP4W6E0Bja;
using hb98vFjXpNkSyouRX0e3;
using hdg6FRF2dEG0wlC9ylXt;
using hew5gxij1j2Mw4IB12WJ;
using hgFB86zbvIbLDb9YRc8;
using himfNKi45uhqPeUHM5n3;
using hjEkYh8iH0QjKVE0bcMa;
using hkZkEn2XOl8FDEoeqdKt;
using hkqpnCjMuymYxvhdtIrQ;
using hnWfCe2pilDD33EcU8g4;
using hqFoKyj3w6No9rAoGBs9;
using hsImraFX8oOT4qAOuG7V;
using hsLGqHjV476VlCHHhkXA;
using hsYZ4EjTfY8QjqZli9Lf;
using i2c1l523epMEnhejFIqP;
using i6GnDjiBAVhhDXUPBAU6;
using i7E4AAFRpZFI7cgedHFb;
using i7GqMsFUr8T8tA6di8Nr;
using i7oBsqiZkQmBmfnB8Bow;
using i963Mij3R6lpXaJ4QO7O;
using i9N85C21jGjU7J0Bp0t6;
using i9aEUP2o4lZqSBUATaSl;
using iBpoX58Z91PvO2vkvsFf;
using iDIwbT2X4uPX2FCjSKau;
using iFH7A26ppSs2TID77qV;
using iFyQARMBXJvKmAxhH4Ib;
using iGr4I48BTjL4gt1G1uLZ;
using iGxSSK2gqdlOfyWLj5eY;
using iHC5u6FHgN0p69mAk4f3;
using iI6Ij8jD0lpB7E7B4XLU;
using iIKpZB2iSc9QegNGIQCR;
using iJ6GaSjVJMOxa8Ne3X6a;
using iLBiNVMtfFNiPUhgd8YN;
using iM2swTFKtJUrA7X7jNgb;
using iMuocpM2GOjpsfOPVvGX;
using iNaBOVMagvXK2rkyecuu;
using iSiv5lEyQ8WNrZyKPZn;
using iTEkZmFMPbrrMFh412ts;
using iVUxJO8bVnn1WUNEF3uJ;
using ibrMbWyZfCJFZjAqfUb;
using icrvI3jE8M3c07MAJ931;
using igYg9iM8oGEEX7qmA9c1;
using ihpuM28WiAErHxoldw6G;
using ihvjZ18rNT5vNICmgK6X;
using ik3wJLKIyvqNdjxXS4Y;
using ilVKb1RD43kwKG6VEIs;
using ilwjs92bUVsHOanY1pQj;
using impR9RFRddR44SCBX1iY;
using in4UsiWDZ5NYYXdkcXa;
using ipnJVC292tdNmo579xg1;
using is0geAMPGs4jNwl3MICx;
using itetONpYq93qoRg8Ele;
using ivMKKD8LnOURQ5BDKNu8;
using j0wUAmjWe0xxXgpchYK2;
using j18JNwjPoKBavl3BCLtV;
using j1FEJQjw5WP8XXQSAAjW;
using j2h5io8J4mdh0WJAlkfW;
using j4MP6RMUmvId104dcCPZ;
using j4q5xyilmvLJ1f2fSpKh;
using j6h9ZKigk1hvFZrsro3L;
using j7knVsM81SGlWZUl5xIf;
using jAZBEMG8TCPd8ykBFtH;
using jBjc34jWNo3b2W3tkkdg;
using jCNOTiCfYSWLTarqlUG;
using jEpfw6jUBBtHWw9PSCxD;
using jF5isMM0RTG1BhsllOgt;
using jFG8ylMzqoU0K7ln4GHF;
using jG8o4S2dINTQB4FgCHpQ;
using jGEfJYiM7nrxw6sJ1Wdi;
using jIdH2HMgtmukxfuJ2FY3;
using jKAqe9XJAKnUqQoyjpn;
using jKwjJ8MzgyZjlmDt3b7V;
using jMhSma8nF311mkHLjEbI;
using jQq9nBiPNAdbusZwcFVx;
using jQxx9TMPLMmBNT8NGZdD;
using jSpoGM2Xs0koSYhp8K1K;
using jTqBIm8i2KLB3f3DKHvx;
using jUTy398eztFCBAAmXjdX;
using jUWriQiS0txSTTBwrLHV;
using jVFFr6jRkQjFmhluU8ax;
using jVi93dFyW7l1WwFBOXsh;
using jW45fpFNawM5ykDWRxDG;
using jXwc0X2QioodtNGNPhwE;
using jYjYusiC77LNAW7rdRK8;
using jap88AFKSI7UQtGfjKvf;
using jbPBYPMesBatdIHwRB4r;
using jh0RH0iHIDmXUm5VjHmh;
using jhLa2YFAvxGrcSpJ1HbB;
using jj3dlS2W63ua78gUUIVB;
using jjHhd72oNvIiOl2yCMHu;
using jlQQPH2qVxNLW5wfoD3s;
using jrgjYgj8gE17l6XMLkTS;
using jsiLOrste6PIdRgG127;
using jtnA8RGZhDV2hfKi07V;
using jvxWAC8LFaQx3ghRIWpZ;
using jwBYQx2QgkCPjU9OdnAu;
using jwoOUWRBmlHRaCGurmQ;
using jxeYtjMp0qtG4CB0y9jQ;
using jyDM4xiGUNfLXGy6WEM3;
using jyJ9ehGqVeWDbPnEMDh;
using k0qIdrM9bRGHFUbeStaU;
using k3QDFPoJlFMFJ2bV9As;
using k3TOlqFNSTrBvs3VYH97;
using k4ERgF8WWYmtnYxaLpIg;
using k4FSiU86eT93fd9DaPV7;
using k6NECnjs4kWqG3rHQdMI;
using k8dkOV8cMxTs0oZOiWbj;
using k9T881FkFjEHlSP4XM2R;
using kBaC4viXHvNQFNcEERKj;
using kCFj6yF6MoRDwTc7wvTN;
using kCTtEEmDsbKfOVJvYwt;
using kCjNfk2Fasoahw3KMam9;
using kCwUW6FShJRofwhc06Rs;
using kCxfdyiox6XAi45Ro4Rk;
using kETWVs2FdAYmEXykKe0I;
using kJkow3jGJYjHmf6IbGHy;
using kO6bP8ijw4XpQuIdm0vU;
using kOgpnikyC5fiZh4otqb;
using kPFqdL8dBnTJhh3Bl2hY;
using kQy8T8Vcn1T7sGwAau8;
using kR1w9RopoY5VMfhetUW;
using kRMEDx2BdwabeZEdWkRK;
using kRffWmi8QhCgdR7PO7Rc;
using kUChxnMDnaZFq6nM8LgI;
using kVTcexjtuDYUnpW9ZjEB;
using kYc1V6F9S4jJPgCJQfGK;
using kc9tRCjWpSl2CMRGl9kf;
using kesHOE2Di1AmlT9LvmtS;
using kfrT592qaqsb1kELQBG9;
using kmCY8bjtvijF5yOVrOvM;
using kmFyqYFQ7pq50ASM0is1;
using kr8369MSj8HL78q523YG;
using kriJwgFTKRlkEgF8OumZ;
using ktsxCI8xooPL7JTP8w0B;
using kvnq5miQvobf64H6PYKq;
using kwMbc3jCmRjeG8sx1rYF;
using kwZxMAF1iIGQ612pO8KH;
using kwuKQiFtNbcPmWVsl1W4;
using l1eF7H2oEPS0kTBpIkWZ;
using l2InC2Mw3ZS6XX2Te8AF;
using l2jNTg8kd7AqiTf9V5RE;
using l7op91CjIc5pbqAAssJ;
using l8u5Yw8imIIJeXTXX3uI;
using lCkxpDF05SSGSmyBvgh9;
using lHNWBDMOhYe4oxlsqpXv;
using lIiVPZjh73DukcQiINjJ;
using lJVKFqRdrSVI1t74lhA;
using lMe2ag8yKoll6EbHPsVa;
using lObrqm2ArEIwpKY8AlIV;
using lRXrbIiFkJQujNgkaD2r;
using lSd1E183bebmuX1tGrM1;
using lSyDGRFXO3HgUNUunJgF;
using lYYwnq2QoKwoVEr2MtG4;
using lZFao9F0uHJ3MTiMBfR0;
using lbLyXpFYhbt9uNJ0EsgB;
using lduNOwFSADsmBKLs4Bh7;
using le4YWX2tEOXx2fGu9g0F;
using le9qfvF0otD3G4yETJZc;
using lfBteSFIItFBLxQXMBWr;
using lg0sYYMlAx737lqN6LIQ;
using ll4tOdFtjKe9LQ9rbQ2d;
using lmOy3gMZeAeJVKMLJprF;
using lrhlt8FNQaLMjSx2QKUp;
using ltnNMVMi0QLbSqcIKXRO;
using luDVZRiRhF2I9FGBdcmB;
using luYxf3iGSdsLLpy95yBu;
using lxXu6RgaJM2DugDbqFa;
using lyEDqsFqNes2Heb61JjY;
using lympuYKEkqrMMSldif4;
using m1VdfNvQWqMKGhrZUJW;
using m1dJJEjC1BkT4Zdtm3Gy;
using m3gkZtFmwE6emjSsbocC;
using m3wsh42ge2FM4933I6RT;
using m78IVTMOzxEaumSDBGLs;
using m7xpS4b2uOUyQ0jiJSZ;
using m8QlWoFKdsX3hAgSRMJq;
using m8WrC8EupK4VuCUS75R;
using m8ajIBF0RVRpRIK0GSdd;
using m9jS62ioGn3ZStu8cPGT;
using mAKgWs8SrsfanMEapFx7;
using mDYZMBjrS0n8TnyWN1L8;
using mFnDgNMccCUICkBZUAwJ;
using mGOXjlFFTAxBLyj8U8gZ;
using mH8XrFMfdISY0U4lDsDO;
using mJ1DJwlBY9I6H3YxHKL;
using mKVgEe87wAdL7W0vhiwO;
using mLbCB02UuQUGa74rplG0;
using mM1hvV8SfpeS1KNnm8oK;
using mNu6E1jVbXbTZUQMktdN;
using mP8Yd3jC3q0rhD4gRQWf;
using mPly1ksrZusTBuVPvGN;
using mU1bhSFGxBME0gPouuxt;
using mUNDYo9PA8JdUlCxbcC;
using mVngjniJOb0djgWnNKSf;
using mW3M4i8NEN79qboKLu8X;
using mWRnOAjZWnSZPYwuppDN;
using mZX2hdMp6NYFeHVdDCS2;
using mZgomJjxZJNUOHcCoaPj;
using mcdlcS5VH82E3qhXa47;
using mcr6Fx8lQiBxQ08cFjqv;
using mfE2MhF8xF0FO6oHpGG2;
using miUhQ7jDRGl9JHm9DqID;
using mm3mVH2K9KkQYtMfZ4Xx;
using mpwXeOkdCYnomKaeVJD;
using mtmb1UMygmCTjqE0iNwA;
using mvil24jVTX2iDHRPDiFM;
using myxlkCji1i6so31Q5Lnd;
using n1ZRDM2NiJjxKVrwSCGO;
using n2jATbMvZ4SYnWhtxZ0M;
using n3RhTeGaWQDSq0x569U;
using n8KMRX2NvwPWxsCHmyky;
using n907dvigBs9lV6wDEZBo;
using n9VZsOitkfqvkmjbBZFx;
using n9X6opMcUkDWnk69GefZ;
using n9pOwwMzcMfmBnBSMs47;
using nDh7jMjto6KfrKLo7ImS;
using nEwMGO88nsDMldR5SSAp;
using nF1MrrjWsA3WB41epCcA;
using nFIlCg2GUif4IlnXH2yc;
using nJWULZilihQrYcWutwGS;
using nKgsPNTA2KQSRPhCHq7;
using nNXUTZMAaHZ53G3xOOo1;
using nNsOH7Mut5kioLIHugXv;
using nOOOfCFHzPPCGNuNnHI2;
using nQ1t93jEOnjMOuHJBBda;
using nQRfurFpv5jJS6FRXqNT;
using nRBU5QgZ6ZrLpPhdU5q;
using nRuUp9WCoPxkneqYZFJ;
using nTCU7D82PCvMNdP684bM;
using nTCWNlsKgkOoJmTij60;
using nUs3HuFsYUMe60X3xxwa;
using nVhnfDFsPoJcypL79pu3;
using nY6QLiMaWZDEglj9fAig;
using nYJqm1jWlPnx5wsOH8xZ;
using nac2y32FuMbFYOBnAgWS;
using ncjC0ViqlYh75Au5lQOA;
using ncoiCF8JVgQHLLXdrOpn;
using neAmk4MBfya7ZL4XrEQp;
using neCt2l8UW0LkVS0aHE8B;
using ngueup2iJTvKDBlNSvCn;
using nievg9jC2OQbURXRBZ2s;
using njgvKfiUANtvcEPxqdH;
using nk1V3ZibpsPgLyqbk2hY;
using nl1xQKjp4oa38hCNUyFw;
using nnOVIJii81FCybIA1TsZ;
using nnb7ZCXGj1lPN6WAUES;
using nsZC82MCmHXelSMMttwD;
using nsqZ3rFpIs0BwTkIpyf9;
using nuS2bW226sktYAdeTYlu;
using nv9YsCQpT7vMrPn1spd;
using nvXxcosT1iYqaSifULH;
using nvqJJhFxDE3PBqhtmpEx;
using nvvwRf2Hes57JmIAXSNp;
using nxJJsgjMqv8M6ArmELsD;
using nyNLR9FyxCO64x1Iag7P;
using o32QntjEZApG5ORTCwmC;
using o5qTkGien09xnlLlaTUQ;
using oAeNXjFRgYMk8Y35JH93;
using oC2fe52WLRWUCIZX9BeM;
using oCtcCOMYUSVdwv5HKG5P;
using oD1sANCdRe3M1p2CJ4g;
using oExZc0v2yu5ewWt2cZo;
using oFwXZoiaitTDVNyNxi4h;
using oG2jyl8EnUji5gctmHfY;
using oHN97i2KZ0xt7D0y0plQ;
using oHfkBe2mrgb4P883Jajp;
using oIAXwQl7abEaucwlqVT;
using oL3wkr2j9rMi23lCIwKj;
using oLLAvgMdsb2FpyG90J2h;
using oMQCv7M0MCnghRmJBlZB;
using oMwwrOiqLJSKephqTE4L;
using oNGJACjVOLvlikKto8UQ;
using oNOS28jDdva6tA9RnX4V;
using oNiPR72QTvixerANDcnq;
using oO4jfXic17xmQgFBhfNt;
using oSw9FGbCDOs1q1fZr1m;
using oTcvwNx0whQJG34gEfy;
using oUydZ4jMbM7aLLirfEv1;
using oV8CBXF6wHts6Td3IsDp;
using oaBgUZ81qpwW0TOqScaA;
using obZWTibzraqglGdvTuS;
using obdaCjW7m6TGxbW1cZ3;
using ocOsDjFuVgkEYhe9XtIp;
using occ1cfMP1DCDhhqJdJYc;
using oe5uItjt711UwQuKx6jy;
using ojwhJ92vaWM781mwoYOr;
using okSjW9gCO6MYVe8ICRi;
using okUOwaVgEsqlCDlfEJ0;
using okYiAZC1QOhUl5ph5Jb;
using omHMJYa4o2dHg5y466e;
using ooBe1JMps0CggqNEhRd2;
using ooFYe42sy348pqAejTPP;
using oqK9IGFdLdU4MPmsMqNL;
using oqvUe9MZmRLVGoBfTKf4;
using ouX3TtFKNJa0SVBaRhnu;
using ovZo7yMgOivWTdt1I6y7;
using p0HQf02WdtChQOJKfuMJ;
using p1DB7VF3bMsrUXdtcos5;
using p3vR2QjcB3PVccjlZVIS;
using p8eyUOFAT6S0sMMYRrWY;
using pBAK4d2qhjMIeMMCWvUl;
using pCsh1FMzBZdA6KDqqPh2;
using pEEToN8SdcWq4il5FGmx;
using pJNmeil1WafjURc2hnL;
using pMPguEFVAuqAZN5Sctiq;
using pObV0oMgNtNVGiiPB70C;
using pPf15DiR2TJ6cP57g6Ib;
using pQLI1WiPzWGfGVnlx39Z;
using pUKMD7rbEXY7NiK9Hfp;
using pUhdovwGnJkrCufdR1j;
using pUqM1t22FlmFbFMssPn0;
using pYEHOA8XpGDudO7Eh1PZ;
using pZ99OGR9dYm8RHpfygD;
using pb8iOS2dqywEZ1wfUqMp;
using pdDX89F2JTWQF9BTN42R;
using peeb2fF4xehqwiM1rtRM;
using pelg5xiMesqagBH2AgUm;
using pev9B9jawUObx9cwqoTC;
using pgX0qEFLiFqsPMhY7hTT;
using phk7A7jOnaNYPucesFZF;
using piQ5Bt8YHqUFj6maYMj;
using pihT1WMz2kIE2l3VWutl;
using plSjmwMvKdLimEIpNhqf;
using pndcBsa2tJxmpoJkKfa;
using pocRJRFRYEnggfSqsO4u;
using pronlS6RQ15UPoCwvCd;
using psK636dfIoLET0P1Yid;
using psqm2yHsip2uYdFMMxP;
using pvdADHjfjw8Rt9RKTLCO;
using pweQn1jmRcwuQuEmjdyF;
using pyf3IwjhlNSmbZX9hnTF;
using q2MoE1FnJq9E6hMeUoGQ;
using q3MUvNFbAGPUIpPQtmMt;
using q5rho224DEeD1gZGGrIy;
using q71wT2jFhL29CIo5HZWq;
using q9fmnk2sfSO1gPbjFLoI;
using qCCpJ9F1k104SkvNJD6a;
using qCaMSaZffRjqePFlBGQ;
using qDdXekj9N97OMyeKqofW;
using qDrtwpFWYlCVSti7v4Aa;
using qFuUgy8HJCMKc8Qt2B5j;
using qHTrXQ8FDHx6SwsACIfW;
using qKWrJv5skE9q9TtoLO7;
using qNaSeekjH0B4jSWRMS6;
using qOvOo68PA7G9hnpTdLPr;
using qPG2RMMm43xmS5T5fPCl;
using qRuUMKjVG31RJ3ytspEb;
using qSIjfKFRvYEok2hHaL1N;
using qUYubuFtYjEuUVbZwrQI;
using qV5FfL24b2vb9HyQXKMh;
using qXn9D3iEs2792j6C3nPy;
using qYoutPRfJGs3LO3SHcD;
using qYppu62XDBp1x7HLplVD;
using qZv0b7jcTvKcDEQmRXkP;
using qaQQeVMNhTgyG3LJivfh;
using qo7KWK8YCaStxBbRENP4;
using qp424V2qkajRryHxZb50;
using qpf2Yi2auRiFGdSA4x15;
using qsCMAbFbi0BhwwHstu03;
using qtuvUaM2XNa0KeTZEa3y;
using qv5yhe28EiL5eLsWPtmO;
using qw0AhXjG5TwR52XEjpYb;
using qwHnM6iZW2BAfLZLI0dU;
using qwg5Za8VRdmV3qaIA0VD;
using r27AGPjWuImP29FuyQMG;
using r3rwTiiM0BQDKWfOpjbN;
using r6AHJOFQNIovI4pWZRNG;
using r6pH4kFKTtP02PRWieAW;
using r7ZCqvMeAB14D5pXFlrR;
using rAC9f226XGplCnZlYE1S;
using rAKF6RjVxnckC6290pGg;
using rArTGJMzbkmk1ZyXBBMw;
using rCo2rR5BetQWdC8EvKw;
using rEBOwXFT5EYj3ZPp1Xym;
using rFKsHqi2PfdZyGCoWt1b;
using rGeg0TmlJ5wsPbrBcuM;
using rGg2rig5celCSOGWias;
using rH1YMB2ELg2dZ3vVRFOW;
using rHHfJ3j7RKanl911b6Zg;
using rJHMoFigqdNrNa6eeuAl;
using rLD83lFoY7XadbGFWqwY;
using rLW2rD84so5rtLSPdfCJ;
using rP7KqBFdEVOIYVvA44vq;
using rSRTU1FpFJTPYnHgh72n;
using rSSdktjvkdBYJl2hfL2s;
using rTYUQTjhMq5VhC7EYkA2;
using rYf8TuiFYZo6SSr3iwkQ;
using raTVPBFuWonWNtyupXOB;
using rfe6jw8qIpr6rdHK2uW5;
using rgfJ8c8K2j3BQ7mNLMGT;
using rh3fEsMkSq3Yuf02YEiU;
using rhaPQZjrESAj9vJSgj15;
using rlSF2uFvoo2F594IfgTh;
using rlwubJFZv3USNsrmMf90;
using roGU0hFd6E0v04hOrkGc;
using roSAHXMrjuD3qRyTiiYp;
using roXISCjPDlbloXTYlO9U;
using rq7LMFMDmwOoylMG6E9D;
using rriLNppbOSEGo6EtXVM;
using rtiERY8dsCSRp3QmUAuu;
using rxKDU9jWPdACc9q38rW4;
using rxXwop8kYfPmSE5FRri0;
using rxZDVD89pdrU8n97Q7uy;
using ry3fwFj6gevg5WYFxG40;
using ryFqcbFpUE7HyVRA94Uf;
using ryGoIJjupRKZ4aHgL2F4;
using s0Z06n2U6F6ZRqvaodL5;
using s36mRA2CrlHHjakNTKR2;
using s3BrIgiKT8kNemvl1b52;
using s3J9gA29dclVAPdywyvB;
using s4YFNyjYZ5ZrQgFCqn6L;
using s6KbDFjDF3aFyArwBxnj;
using s871qwswUPJMFEtrlV9;
using s8oO3oFigBH7tk175I1k;
using s93WXZ89NwMUI9O81Fl3;
using sBKLNDMFGSQD2GHEpfsM;
using sCCIdlFm9pNwTtPs5Mu7;
using sDPF49M8FuaRO76TmsiN;
using sEUXL1MDePmHpt1Id4wK;
using sEdITVMEc2EwnPXIqyky;
using sEyW4IMtJUncWpu2PDnh;
using sFNILDMvcJxRNwD0AktK;
using sG0J958rANjdpPjHGJnl;
using sHWBMdukEIuvNLnK6lI;
using sI2F8LiAUdPry0XrwZ3T;
using sJ30mWfR5YkGe86idRk;
using sJ3PMwm5lstVL363j62;
using sKP1saFl9GE4sKocQ7wE;
using sKuRS8jREvhlidPbNvw5;
using sLPRsWjWrmMWcANhYAfI;
using sOOn4vKrpbAcuECQwSy;
using sRUA6pMwpvMOlULbSBMQ;
using sTeW8WFtorhsPSb6dpsV;
using sV1BRB2jPLmaAhKZt4Ir;
using sVr4El0vFKGTwYOMfeB;
using sVsJyClnsxJm2dy4MeA;
using sVyjehMy6Wtoddb21rA;
using sXUDw8Gkj5nYFDHD9MP;
using sZGjG52PQ9paI1vk5M2r;
using sdf00O8UbH62ArJ12i4X;
using siAwHeMAjVYZ8nBr7UNI;
using sjlF4ujcZBRvY5bA8Pfe;
using sm7ftlF0GUHfatRtQNNv;
using snX267itZ6cT1EPW47hb;
using sqWWUaFryoL5718XU4Fh;
using sql6IJjr41gVsUbx4aaJ;
using sr6BS5jmMV3u3IdvqvTc;
using srkrUXjDqeLxh7Ff9NCk;
using ssXVMY8AihCZr8QxSDJj;
using st9lhsFWxvF0iURi4XaL;
using suTR4dFKoRTdOaKJNUlN;
using sx1urY8lrZbvUVDrR5ir;
using t0CdQ5MaybLjBf6FJDna;
using t1ifab8RZdvg5NqV4hUh;
using t3ENr9Mj8HX8Iw14tyfJ;
using t3gdwmpU4KsFl9ieI3f;
using t4heeA2lVi6SQ9YwMTM8;
using t72OWWFDoUtGfro0GMeL;
using tBvyDhkmH28Oe5AB25j;
using tEFX6G8EKdZlROMOTiSQ;
using tGE2bLFwikVJm9l77B7w;
using tGQE7t8bKxwbblTruHlO;
using tGfq06icB1oShgaUIPmk;
using tHEwrbMNzofLYaGUI6VX;
using tJEPFN2kFRatUlaqx1tL;
using tJbVFYvDnTE2oFHutYl;
using tMLDjSFQjfXY6Ramp2WS;
using tOav2siBnIWFTkwT2cCY;
using tQmru9jV0OkSSpf1YoSc;
using tRvcNxKRu8HJiuOuSvY;
using tYfMsMFIwuVyQc3n72xV;
using tZbOhVjHQpeq8aOdZHVl;
using taE78KMn2vmsr5G2EUn5;
using tayHbe20OXNNSD0pU2b0;
using tbN47biuUNCJPOY4YPGQ;
using tbYiSgMMyUXBZFQsDjBn;
using teqfP1RvsgvUPiX7kd9;
using tiEWaaMzZTKDLFlPWqkl;
using tiuDVc8BJfjVUyYoD6NL;
using tj624S2OFhM8CJu1NiTP;
using tj7SgQaLLnToXOmjnB2;
using tjC2f5FWcnpnyn730Vxf;
using tjRW99MKvDvOCwYGkmwh;
using tkWLUyFdKOmWbX7LjtuR;
using tniw80jDt863UTBS4QJd;
using tpfFIS8hFe23h1syeOZ0;
using tsvYaT2VRNlEEWifBKAt;
using tt5qc7FH7QlbG8qITWZ9;
using tu67CyjDNhuQYAej3abV;
using tu9l1J2rBBTyWVkOV7ub;
using tvivHpF6mmR8XAKqSAeZ;
using txh4XujEiL23bSIDGbr0;
using txrLUv2QO1sQKCe9K6SC;
using tyxxJxFKzZipZpebKXgO;
using u1hlZEMp8p5ceAcMBUZZ;
using u1t0oaFrVXLmOmjKhYvw;
using u3Cys8Fl12HARhnG67Nk;
using u46FZ3E0783T2NUpQvD;
using u46SP5p06u3kaaOs7Aj;
using u4xGBJ8XHrWt0C4fdsJG;
using u5Lp2mjtBHlOknRZFDHt;
using u5evJR2L1kxWZItBPqAU;
using u7LuFhiHJIpJaxhHLAOI;
using uA03yTMVKmbX55w45OvC;
using uCrPnuGGlnb8aweTZS0;
using uEtNx3F1LqGqcmIRUZ5p;
using uEyrnUj9IpDD0u6JsiOw;
using uF4ZMW8yIRua8Z2djWXi;
using uFOLGoMmYMBSwOXAP8co;
using uGJNDqMzvbuIGHcJDTCh;
using uJOdjqMN0nhlFEVpNrnB;
using uRbDt4KpctQoJr9cobd;
using uTWGnWFOi0LF6yVsNE39;
using uVpxdt8Fzv1mb2LjKnXa;
using uWxIqJLxLHfIYksEMxP;
using uYdKVdFIXtNqPUHWna9C;
using udaoDdFRAkZXhcWKjQqE;
using uesalRMIFwH0p5KXoacQ;
using uj2Vfp8aRYnkZ977IThD;
using unN1wZ2vookebGESfQDs;
using unvc8D2JCZL5FNjFLucG;
using uojFw1FllenrFM7SXUIs;
using upA4jr4xXJSln67txkC;
using uqCUtWjshtClrQgoPxIq;
using uqv1mbF0kKQYerDHfdUu;
using ut4W8rFKATeJkqFhVYsW;
using utgMNV8g7wCNFsIjlKmS;
using uuPnhRJoB8iEVfXwVoF;
using uugjmkiXc7wajppqGVFg;
using uw4eji8wKVxxKwUBxn0O;
using uw68o38pjTyw0LHt6sFl;
using uwsi9x89VXkbSMAQV53h;
using v1dGQ88mfxnsy1JdF4r0;
using v1yIna2sMmF8wiqlcMyW;
using v3RWIS2dAob8g25iciBF;
using v3byUP8pOSbP8Z5V30Zg;
using v3lHr8F0jIfkoa6Lqup6;
using v4S8RJILC9CZskX4Hcw;
using v9J1goMFxRd8PyLdf7dZ;
using vDkoxbMzFQxwD6ZlaOsm;
using vFHeKYMBNp8PIqFjwq7u;
using vFwcftsoQpcgEmIJiYN;
using vHveJK2RKqXO1vqObwVD;
using vIjBkE2YZmn6fXmFJ6oI;
using vJlDY3ITX25atirrp1l;
using vLrrJMFSUoVN2GemKMEi;
using vNENQKCzqOiUfjbRSEY;
using vOF8guaXZbBt3BxlZ8y;
using vPpNH1MnO1q6TvsyLgWp;
using vVJsubapEDVx7AQceIQ;
using vVhyigFwagMVQL5VUnHQ;
using vWDBavMC8JKPQqhaO6Jc;
using vWWamFMMQUfybgkmGLJS;
using vZE0u1EoBhVgDr2hlpN;
using vbKIK3F4dpGQkj4CrUFT;
using vbl0fT2DtZ6586GuRHGh;
using vcLXNbGBIXcjPjtXUHd;
using vfd2GkFNIpHBWLc30ERr;
using vfkgnE2PcHUZiq13Sqwp;
using vgrACM2x8f8Arm2QaF5h;
using vhBQtRjhkQxCTxRhZAsk;
using vhmy4e2Hr1hCKEHGemHE;
using vhpMrEiMRfZyHs1VsJuv;
using viWDBEFI231aYsDA7OuB;
using vjPOfMnnQxIkR2YLhMc;
using vjxs4CjeWNu8q5flO4VH;
using vklXqFFhCdh0ViDY7kp6;
using vm5YkmKodt3hMF0JhuH;
using vmo94hMVL48VpWNPuXbj;
using vnDQCtF1z3QG1wMpQWkm;
using vnyEQjFIznhsiXIJi0Zw;
using volpcEiPfPh5ALwcZ3ZD;
using vu2YZ8AZdVLcvl7jCQb;
using vuoiKF86i6dDw7o96Wic;
using vwKkn7jiCVf5WpUTgYwv;
using vx7b9g2QAhiq0X1Z0EJe;
using vxC6mfisavuGgyIZbBFu;
using vxEdq2MXzP29SymR40GF;
using w2ENQS28VpBnVMQm87IP;
using w4GZZ0FntyqiWDcgmVFP;
using w6GG7eNhFxUroLX5t1n;
using w6UCPxjTMjbQglqQxBQC;
using w7oVFj2SNirem9u54RMS;
using w9akVviH933LJCOj5dQV;
using wALh6v8KQBGPKoe4AHdI;
using wBv5Vb20Crthj1Bmc4Gd;
using wCmMEiMjEofYcyJ6UAB1;
using wCqtIpMPrHksAH81lvYX;
using wCtJ64FrTiARqMNW58gD;
using wD8xbOFLxaiUcJo4QSEf;
using wERlAxM5aqHdkMuWJn30;
using wG81W32mcdcQM5uSWT33;
using wGHu4qFiOKbrpXZCPTdc;
using wH6mWDFnAfCulIL7qm6Z;
using wIQYnXFRl5RlppPtqI5o;
using wIV0PaFIyyVWpPgZmGkH;
using wJnsqrjtwf9sQu2UwZVl;
using wNLL70jzjikZfu7FtZqk;
using wNfd5cFR3N1yUZvqTdPy;
using wOnmfa2jWZWLcePiVLdL;
using wQ0Hf5CmEc64SnA0GF9;
using wQjoC1i4chZFASqXF7Me;
using wQx43UMeb9CFOecLsX22;
using wVRgATFm2E2PHSlaTuJT;
using wWHtlEF95r4dLN1Fx0RA;
using wWTj32Y9CjHTgxsl9fW;
using wX67JIjMGUKrygIL1EKY;
using wYcgu9X8voDLKRm6o4A;
using wZbT7UjGXMld6m8bbwm3;
using wcalyiMRlE9nx5j6ylFb;
using wdCBT487i8poQ0A56QoX;
using wdfMJn8vthK9YPjrOfoD;
using wfBDwQFo74JqhoVP8tyH;
using wiIKFoiCj63Dit1BiyPE;
using wnXpeB2IZCVVJ9b96gEM;
using ws9cBokeyWt1wr0ceEP;
using wv1fZXi21XFEmElZ26Ct;
using wwRhFVMqvwnHJiEG0np4;
using wyir8oFSZJljZk7ZuILv;
using x19jICFHYyv0TkmncDn8;
using x432hqivAH6IQUvmOY4d;
using x4KrJcjz9tdpVJiPX1tM;
using x5yPdLFLbsTcp32Da1aF;
using x7JxNK2mqvr18bjpSXW5;
using x9CCTcjM9TetOt2inw58;
using xBb0vf2doJwDsayuSqYL;
using xC2uT1FdYJUbDePPnpls;
using xFPklijz1E3ea2lMLy9g;
using xHp5HSF5sKCFnWouVjO;
using xI5uhS20x4yht17ChUcc;
using xIXZ3m8qubxKPBo5HO3S;
using xJ3KY48piFfu7CxwYqK8;
using xOUX4SjWZMKbdPa1hu21;
using xQ18sGQdoi6g2kdCuIW;
using xQ8Hda2FToBij7mgel80;
using xQQtZKNGVKamehbLqT0;
using xRoSHk2wbx348nKAQJ9J;
using xUmUYh8gVlsUMNc0slYC;
using xVGq48sqHJCgK9V3uNT;
using xXVgb7FQzK0bekyOENcK;
using xcyiGfjXwpBrn0lB0umm;
using xfUGMA2L9ooABvGdGBBX;
using xgA54n2ozbplZyCn3sUF;
using xiB3LM26hlT9hwxHdNQt;
using xjivoL28KlPjwQrHYirY;
using xkQyMGQDyjdg90ErOKx;
using xklWuqibxGIg2FtC9vuM;
using xkpbC82l4sxLdpQP945C;
using xnSSA5r7G7WWTcRqNkA;
using xp1DTZ2vrnkwK8b3t0VK;
using xq3bFsFdorQIOsuvHDXM;
using xqLB9R2FiU7YmKDZL3RL;
using xwh0bCsEhjXlV0EMTxB;
using y2jjcgMzuyMtBkiSZ0Z8;
using y2ns1r8rJNay262Hf27O;
using y4Lngk2ICCf89Li1ul8w;
using y4SGufXt7QwtYLIdkuK;
using y4Uhe82D9dKt1v7q3lEZ;
using y5Bgo72uv9B0W3dUampx;
using y5wx0OjDkMwsvdyNoP8s;
using y7UguhigdKTm25n0TDFw;
using yGyc02juMf9GbFnY0SKy;
using yHuTILFyzjQjMcBb7CNq;
using yIJAKA2gMi6kIoPeFfPF;
using yPKE6Jkn4kUm1Jr0EEn;
using yReCxm81pQUBlWtRfQYs;
using yTckQRsfxDAbQTtpmY3;
using yWjTkg2XCHYidSd3cbIC;
using ydBYE2MtEdcYmc4qUp5u;
using yfmZr62kCfGnW1pPoUli;
using yhEMlwFa22PAb414WVXf;
using yiwQyb8OdUUfhHfq4L67;
using yjNPi5FLYRyKqkqiD5pH;
using ykHxmtFLIylhqlSAuB3T;
using ylaFREFfngD77MjhbIy2;
using yoB4oNFmHWraJsnEJvRw;
using yqU2o4iBoHZakoVfUxps;
using yqmcVLjttkw0UxlvoxMn;
using yr1URr8fiBN5mEOYfdKp;
using yrDC43jchd4mcGuKrfha;
using ys7ELpikHW30YZgluIKI;
using ytaAsg2QUQQWKAhkR9rp;
using yvdEBoM0S0SCuUNukpn3;
using ywDmLs8oXAkS4RPYVUKF;
using yy4yGiiBcFkIQi19qKWh;
using z29asa8YJLB1i71q1doR;
using z2HnKuM5UpOrkw0ah53B;
using z4plUWFRLhWEfF5YpdJe;
using z6fBwHiQhD6AQJ7Zc8A8;
using z6idyVjF0jN0922eMwg8;
using z6wcDs8bYUT8VwEV5fi2;
using z73SY2jEHivGYFTb73jW;
using z7DqEDFguXaQADGmGdgN;
using z7iMhpFSoaKTxJCKYbro;
using z8gWKqFafwDeldMvHZIn;
using z9HBQx2MYNU9nLRjKtMd;
using zB99xMjDitO89601I3nn;
using zCihXA87hrBFnFG8ZfRr;
using zFLFEOKLJVOTaGlwbQp;
using zGouwijHwcRK4kRsAM3r;
using zHUY5K2w2sZPqSEuCmvD;
using zIS4Oe2YCsnt91OHkgEv;
using zJLFIBM7zhVjuImADBBY;
using zLZKN0GXe56fALPlFqW;
using zLo6sbjEqv3xlQqnnhcW;
using zM7Qe1fJ0MdqTqXuAGA;
using zQutlF8nA4jwL2kstvZm;
using zRbrgNFitVdjFtIuPeHO;
using zU7YIf8H056Abaa2k4LD;
using zVSWVwj7DQJxUBZskkSE;
using zWrQ7g8Szrqf0W4SsBy6;
using zXqKhxMUzKYvO1SBxc6L;
using zYJ1BSFUDv7xHxZEEvau;
using zYVVkb8ZgquykFIrtMR9;
using zZ864iMNFcTRMm456X9r;
using zZDqMuLdca8TpiAHh2M;
using zZMgObjZuGH9sXO7nbHP;
using zaF0vNps2qVLMrta6Gn;
using zb4LKuM6eVawLYcYQL9M;
using zbAS89jaHtMRmpCbdA4H;
using zbZnZy8ZmPSq91H9dAK4;
using zcYJfuMCRVYHWdi3UnPc;
using zcapyVnM3vGVnGkhTpZ;
using zd5lMcjl6q4nHw0yaB3q;
using zeTTH1pWZO1XqATQsHW;
using zflQHLpHMUAm6riFHke;
using zhSH7dETnIwQXd2Vu3s;
using zlSPWIFOZx9pGnsymdgY;
using zllfoMjDHE8mc97RLO6V;
using zprYLl8SS4dwpHBG9Epx;
using zpwS458YcHyCsavtiX4J;
using zqU12FiRlFEXk7ylbeJn;
using zrHq1uFIcuWZAYpVGIaD;
using zrbKfDFjTfHkhUa71iBn;
using zskafwMLxuQ7v8RSfIqY;
using ztK2Y78H5knKg38FyWiT;
using ztYDn4icKpMhAmGvdf9f;
using zuoA03T6s0gqdsaGyjD;
using zwyQlGMvvriJuBV3uaLp;

[assembly: AssemblyProduct("Rippleheart")]
[assembly: AssemblyInformationalVersion("0.1.4+509dfd587e33e243349fd5d29118de2c7cd2436d")]
[assembly: SuppressIldasm]
[assembly: AssemblyTitle("Rippleheart")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: CompilationRelaxations(8)]
[assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
[assembly: AssemblyFileVersion("0.1.4.0")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyCompany("Rippleheart")]
[assembly: AssemblyVersion("0.1.4.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace Rippleheart
{
	public class MTHC
	{
		internal static ConcurrentDictionary<string, string> rgJ3fWOxI(string folderPath, StringBuilder logBuilder, bool isServer = true)
		{
			string path = Path.GetDirectoryName(folderPath) ?? string.Empty;
			string fileName = Path.GetFileName(folderPath);
			string[] array = fileName.Split(new char[1] { ',' });
			List<string> list = new List<string>();
			string[] value = (from p in array
				where p.Length > 2
				select p.Substring(2)).ToArray();
			logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F4D4F)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-340993411 ^ -340993459), isServer ? vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1394395626 ^ -1394395556) : vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1528009292 ^ -1528009330)));
			logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x759DC857 ^ 0x759DC80D)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617915C2), string.Join(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356308943), value)));
			string[] array2 = array;
			foreach (string text in array2)
			{
				list.AddRange(Directory.GetFiles(path, text.Trim(), SearchOption.AllDirectories));
			}
			ConcurrentDictionary<string, string> aTHgBbhw1 = new ConcurrentDictionary<string, string>();
			DateTime now = DateTime.Now;
			int initialCount = Environment.ProcessorCount / 2;
			SemaphoreSlim BPKsbKuVX = new SemaphoreSlim(initialCount);
			List<Task> list2 = new List<Task>();
			foreach (string qZ9HTS5v3 in list)
			{
				BPKsbKuVX.Wait();
				list2.Add(Task.Run(delegate
				{
					c33dZsfbv(qZ9HTS5v3, aTHgBbhw1, BPKsbKuVX, ConfigKeys.cAUjAYx0W7() ?? string.Empty, useRelativePath: true);
				}));
			}
			Task.WaitAll(list2.ToArray());
			DateTime now2 = DateTime.Now;
			TimeSpan timeSpan = now2 - now;
			logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7773BD6D ^ 0x7773BDF9));
			logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617914F4)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-896128074 ^ -896128122), list.Count.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF622B), timeSpan.ToString()));
			logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-453480580 ^ -453480472));
			logBuilder.AppendLine("");
			return aTHgBbhw1;
		}

		internal static ConcurrentDictionary<string, string> SMcPLmtXD()
		{
			string[] files = Directory.GetFiles(zvDMX7LmQumenl0slt.EvtjiqojOc(), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-403316567 ^ -403316253), SearchOption.AllDirectories);
			List<string> list = new List<string>(files.Length);
			list.AddRange(files);
			List<string> list2 = list;
			ConcurrentDictionary<string, string> OrpQQDmSY = new ConcurrentDictionary<string, string>();
			DateTime now = DateTime.Now;
			int location = 0;
			int initialCount = Environment.ProcessorCount / 2;
			SemaphoreSlim ulrtb1nfV = new SemaphoreSlim(initialCount);
			List<Task> list3 = new List<Task>();
			foreach (string eHoE7ON0r in list2)
			{
				ulrtb1nfV.Wait();
				list3.Add(Task.Run(delegate
				{
					c33dZsfbv(eHoE7ON0r, OrpQQDmSY, ulrtb1nfV);
				}));
				Interlocked.Increment(ref location);
			}
			Task.WaitAll(list3.ToArray());
			DateTime now2 = DateTime.Now;
			TimeSpan timeSpan = now2 - now;
			return OrpQQDmSY;
		}

		private static void c33dZsfbv(string file, ConcurrentDictionary<string, string> fileHashes, SemaphoreSlim semaphore, string value = "", bool useRelativePath = false)
		{
			try
			{
				string value2 = k3ilZ0v7J(file);
				string key = (useRelativePath ? Ew7wEcho2(file, value) : Path.GetFileName(file));
				fileHashes.TryAdd(key, value2);
			}
			finally
			{
				semaphore.Release();
			}
		}

		public static string GetCurrentAssemblyHash()
		{
			string location = Assembly.GetExecutingAssembly().Location;
			string text = k3ilZ0v7J(location);
			string text2 = Ew7wEcho2(location, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF60F0));
			return text2 + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x3DEE06BC ^ 0x3DEE07DE) + text;
		}

		private static string Ew7wEcho2(string fullPath, string breakpoint)
		{
			int num = fullPath.IndexOf(breakpoint);
			return fullPath.Substring(num + breakpoint.Length);
		}

		internal static string k3ilZ0v7J(string filePath)
		{
			kAyDLDMB96wHGoX1l9GR kAyDLDMB96wHGoX1l9GR = new kAyDLDMB96wHGoX1l9GR(512);
			using FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan);
			byte[] array = new byte[512];
			int len;
			while ((len = fileStream.Read(array, 0, array.Length)) > 0)
			{
				kAyDLDMB96wHGoX1l9GR.svYi0EDt8PA(array, 0, len);
			}
			byte[] array2 = new byte[kAyDLDMB96wHGoX1l9GR.JNHi0tYX6lV()];
			kAyDLDMB96wHGoX1l9GR.okqinYPYBxy(array2, 0);
			StringBuilder stringBuilder = new StringBuilder();
			byte[] array3 = array2;
			foreach (byte b in array3)
			{
				stringBuilder.Append(b.ToString(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1228969872 ^ 0x494096FC)));
			}
			return stringBuilder.ToString();
		}
	}
	public class DB
	{
		internal static bool SYD4uLsV5(ConcurrentDictionary<string, string> clientHashes, ConcurrentDictionary<string, string> serverHashes, ConcurrentDictionary<string, string> greylistHashes, StringBuilder logBuilder)
		{
			ConcurrentDictionary<string, string> concurrentDictionary = bLsBsQXFu(clientHashes, greylistHashes);
			ConcurrentDictionary<string, string> concurrentDictionary2 = bLsBsQXFu(serverHashes, greylistHashes);
			if (concurrentDictionary.Count != concurrentDictionary2.Count)
			{
				List<KeyValuePair<string, string>> list = concurrentDictionary2.Except(concurrentDictionary).ToList();
				List<KeyValuePair<string, string>> list2 = concurrentDictionary.Except(concurrentDictionary2).ToList();
				if (list.Any())
				{
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1935F4)));
					int num = 1;
					foreach (KeyValuePair<string, string> item in list)
					{
						logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1719705273 ^ -1719705371)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2050834694 ^ -2050834742), num++.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1749150600 ^ -1749150408), item.Key));
					}
				}
				if (list2.Any())
				{
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x22C7AF3A ^ 0x22C7AEF4)));
					int num2 = 1;
					foreach (KeyValuePair<string, string> item2 in list2)
					{
						logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356308667)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A98A2), num2++.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7CDEE713 ^ 0x7CDEE653), item2.Key));
					}
				}
				logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-922545264 ^ -922545744)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1461454712 ^ -1461454664), concurrentDictionary.Count.ToString()).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-927698122 ^ -927698314), concurrentDictionary2.Count.ToString()));
				return false;
			}
			List<string> list3 = new List<string>();
			foreach (KeyValuePair<string, string> item3 in concurrentDictionary)
			{
				if (!concurrentDictionary2.TryGetValue(item3.Key, out var value) || value != item3.Value)
				{
					list3.Add(item3.Key);
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4DE3A3E ^ 0x4DE3864)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6D0D07F8 ^ 0x6D0D07C8), item3.Key));
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1536463877 ^ -1536464525)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B670), item3.Value));
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1356308803 ^ -1356309495)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1888877326 ^ -1888877374), value));
				}
			}
			if (list3.Any())
			{
				logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1888877326 ^ -1888877038)));
				return false;
			}
			logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-5581979 ^ -5582725)));
			return true;
		}

		internal static ConcurrentDictionary<string, string> bLsBsQXFu(ConcurrentDictionary<string, string> Hashes, ConcurrentDictionary<string, string> greylist)
		{
			HashSet<string> hashSet = new HashSet<string>(greylist.Values);
			ConcurrentDictionary<string, string> concurrentDictionary = new ConcurrentDictionary<string, string>();
			foreach (KeyValuePair<string, string> Hash in Hashes)
			{
				if (!hashSet.Contains(Hash.Value))
				{
					concurrentDictionary.TryAdd(Hash.Key, Hash.Value);
				}
			}
			return concurrentDictionary;
		}

		internal static bool DliSvNbcp(string value, ConcurrentDictionary<string, string> greylist)
		{
			HashSet<string> hashSet = new HashSet<string>(greylist.Values);
			return hashSet.Contains(value);
		}
	}
	[BepInPlugin("HsgtLgt.Rippleheart", "Rippleheart", "0.1.4")]
	public class Rippleheart : BaseUnityPlugin
	{
		internal readonly Harmony XtAKEuNuw = new Harmony(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6449AB ^ 0x644A6F));

		internal static readonly RippleheartLogger VGVRlWvKG = RippleheartLogger.POt8EnQvfp();

		public void Awake()
		{
			zvDMX7LmQumenl0slt.dUbIVU96t();
			((BaseUnityPlugin)this).Logger.LogInfo((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x13C317FC ^ 0x13C314AC)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31EF5040 ^ 0x31EF5070), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF62CC)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x29BD899C ^ 0x29BD88DC), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1247458479 ^ -1247459113)));
			VGVRlWvKG.LogInfo(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x23B8B636 ^ 0x23B8B5A2)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x13B31B70 ^ 0x13B31B40), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40F6822C ^ 0x40F68140)));
			XtAKEuNuw.PatchAll();
		}

		public void Update()
		{
			try
			{
				UpdateTimer();
			}
			catch (Exception ex)
			{
				VGVRlWvKG.LogError(ex.Message);
				RippleheartCore.Client.Vwu8M5I3EN();
			}
		}

		public void UpdateTimer()
		{
			if (!Modinfo.w5RNlrr5d() || ZNet.instance.IsServer() || ZNet.instance.IsDedicated() || ZRoutedRpc.instance == null || ZNet.instance.GetServerPeer() == null)
			{
				return;
			}
			if (Game.instance.IsShuttingDown())
			{
				Modinfo.eIl9gNZnH(value: false);
				return;
			}
			Modinfo.zosCEWjUM(Modinfo.KBeb6GAtR() + Time.deltaTime);
			if (Modinfo.KBeb6GAtR() >= (float)ConfigKeys.L4rjaHrWSS())
			{
				RippleheartCore.Client.iiq8F2YRC1();
				Modinfo.zosCEWjUM(0f);
				Modinfo.eIl9gNZnH(value: false);
			}
			if (Modinfo.w5RNlrr5d() && Input.GetKeyDown((KeyCode)287) && !ZNet.instance.IsServer() && ZRoutedRpc.instance != null)
			{
				RippleheartCore.Client.iiq8F2YRC1();
			}
		}
	}
	public class Modinfo
	{
		internal static List<ZRpc> KR8x1PPGG = new List<ZRpc>();

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static float gW41X6UP3 = 0f;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static bool NxTUhro2N = false;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static int a5kfxqWO0 = 1;

		internal static int a
		{
			[CompilerGenerated]
			get
			{
				return a5kfxqWO0;
			}
			[CompilerGenerated]
			set
			{
				a5kfxqWO0 = value;
			}
		}

		[SpecialName]
		[CompilerGenerated]
		internal static float KBeb6GAtR()
		{
			return gW41X6UP3;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void zosCEWjUM(float value)
		{
			gW41X6UP3 = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static bool w5RNlrr5d()
		{
			return NxTUhro2N;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void eIl9gNZnH(bool value)
		{
			NxTUhro2N = value;
		}
	}
}
namespace g6tKo4OeWfYvu5l5bx
{
	internal class zvDMX7LmQumenl0slt
	{
		internal static Dictionary<string, string> fR8jeuBuXL = new Dictionary<string, string>();

		internal static Dictionary<string, object> e1jjJj5mgP = new Dictionary<string, object>();

		[SpecialName]
		internal static string gj3j8qOb7O()
		{
			return Path.Combine(Paths.ConfigPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-5581979 ^ -5582709) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xDBC0790 ^ 0xDBC038A)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x50DB58AB ^ 0x50DB5C81));
		}

		[SpecialName]
		internal static string byIjM3VU7J()
		{
			return vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C908CC) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-927698122 ^ -927697138));
		}

		[SpecialName]
		internal static string EvtjiqojOc()
		{
			return Path.Combine(Paths.ConfigPath, byIjM3VU7J());
		}

		[SpecialName]
		internal static string i3OjGB9sun()
		{
			return vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x617911A8);
		}

		internal static T notY6gdh0<T>(string key)
		{
			if (e1jjJj5mgP.TryGetValue(key, out object value))
			{
				if (value is T result)
				{
					return result;
				}
				try
				{
					if (typeof(T) == typeof(bool) && value is string text)
					{
						if (bool.TryParse(text, out var result2))
						{
							return (T)(object)result2;
						}
						throw new FormatException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783298851) + text + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x3DEE06BC ^ 0x3DEE020C) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F499D));
					}
					return (T)Convert.ChangeType(value, typeof(T));
				}
				catch (InvalidCastException)
				{
					throw new InvalidCastException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B77A) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967974483) + typeof(T).Name + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1062172002 ^ -1062170654));
				}
				catch (FormatException ex2)
				{
					throw new FormatException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x28A96030 ^ 0x28A965B2) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x1DA21CD9 ^ 0x1DA21923) + ex2.Message);
				}
			}
			throw new KeyNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xC59AF04 ^ 0xC59A900) + key + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D295F));
		}

		internal static void TCXyOS1il()
		{
			if (!File.Exists(gj3j8qOb7O()))
			{
				iaQrtr6RI(gj3j8qOb7O());
				e1jjJj5mgP.Clear();
			}
			vxQnRE0tb(gj3j8qOb7O());
			Directory.CreateDirectory(EvtjiqojOc());
		}

		internal static void VL16sK0bf()
		{
			DpTjj2RsLg();
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1624317728 ^ -1624316286), ConfigKeysEnum.ServerValidation)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B036) + ConfigKeys.eLqj7vQ90l());
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x1DA21CD9 ^ 0x1DA21ABB), ConfigKeysEnum.ClientValidation)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C90D7E) + ConfigKeys.QtYjdEHQMu());
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4948D6E8 ^ 0x4948D096), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4948D6E8 ^ 0x4948D08A), ConfigKeysEnum.PeriodicCheck)), ConfigKeys.L4rjaHrWSS()));
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7388AABE ^ 0x7388ACDC), ConfigKeysEnum.CustomRelativePoint)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1932F6) + ConfigKeys.cAUjAYx0W7());
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6050B640 ^ 0x6050B03E), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x56757B86 ^ 0x56757DE4), ConfigKeysEnum.LogSwitch)), ConfigKeys.rXajskL3iw()));
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1228969872 ^ 0x494091EE), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6D0D07F8 ^ 0x6D0D019A), ConfigKeysEnum.DebugSwitch)), ConfigKeys.f5kjocgsNL()));
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72015CC8 ^ 0x72015AB6), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1172631997 ^ -1172633567), ConfigKeysEnum.ResetLogSwitch)), ConfigKeys.LdGjZktdmp()));
			global::Rippleheart.Rippleheart.VGVRlWvKG.LogDebug(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1395870666 ^ -1395871160), eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89C2C4), ConfigKeysEnum.ResetLogTime)), ConfigKeys.cdYj4rqtO5()));
		}

		internal static void vxQnRE0tb(string configPath)
		{
			try
			{
				string input = File.ReadAllText(configPath);
				WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h();
				e1jjJj5mgP = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, object>>(input) ?? new Dictionary<string, object>();
				ZLog.Log((object)string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1624317728 ^ -1624316302), e1jjJj5mgP.Count));
			}
			catch (Exception ex)
			{
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xEB79778 ^ 0xEB791A6) + ex.Message));
			}
		}

		internal static void iaQrtr6RI(string configPath)
		{
			string value = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x22C7AF3A ^ 0x22C7AE70));
			string value2 = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522428847);
			using StreamWriter streamWriter = File.CreateText(configPath);
			streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-32524488 ^ -32526214) + eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773115416)));
			streamWriter.WriteLine();
			Dictionary<ConfigKeysEnum, string> dictionary = new Dictionary<ConfigKeysEnum, string>
			{
				{
					ConfigKeysEnum.ServerValidation,
					value
				},
				{
					ConfigKeysEnum.ClientValidation,
					value2
				},
				{
					ConfigKeysEnum.PeriodicCheck,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558A3E)
				},
				{
					ConfigKeysEnum.CustomRelativePoint,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1533293849 ^ -1533293641)
				},
				{
					ConfigKeysEnum.LogSwitch,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF6604)
				},
				{
					ConfigKeysEnum.DebugSwitch,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF64CF)
				},
				{
					ConfigKeysEnum.ResetLogSwitch,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783298065)
				},
				{
					ConfigKeysEnum.ResetLogTime,
					vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x50DB58AB ^ 0x50DB5F1B)
				}
			};
			foreach (KeyValuePair<ConfigKeysEnum, string> item in dictionary)
			{
				streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573517680) + eAk0mC6O1(item.Key.ToString()));
				streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xBD77B97 ^ 0xBD77C55) + eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35263198 ^ 0x35263652)));
				if (eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1749150600 ^ -1749150820)) != item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1297663721 ^ -1297662221))
				{
					streamWriter.WriteLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x131F4D4F ^ 0x131F4A8D) + eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120037298)));
				}
				streamWriter.WriteLine(eAk0mC6O1(item.Key.ToString() + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522428739)) + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558BD0) + item.Value);
				streamWriter.WriteLine();
			}
		}

		internal static string eAk0mC6O1(string key)
		{
			string value;
			return fR8jeuBuXL.TryGetValue(key, out value) ? value : key;
		}

		internal static void dUbIVU96t()
		{
			string selectedLanguage = Localization.instance.GetSelectedLanguage();
			string text = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1395870666 ^ -1395868622), i3OjGB9sun());
			try
			{
				if (File.Exists(text) && selectedLanguage != vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31D4BCE ^ 0x31D43EE))
				{
					RKKzRRAxA(text);
					return;
				}
				aov5OM1nl(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x265F44E0 ^ 0x265F4CD2));
				Debug.Log((object)eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x759DC857 ^ 0x759DC0F9)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D2F75), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x23541B87 ^ 0x235418EB)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x676D2F45 ^ 0x676D2E05), selectedLanguage));
				tZNmTlRV4(selectedLanguage, text);
			}
			catch (Exception ex)
			{
				Debug.LogError((object)(ex.Message ?? ""));
				Debug.Log((object)eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-491850913 ^ -491848771)));
				tZNmTlRV4(selectedLanguage);
			}
		}

		internal static void tZNmTlRV4(string language, string languageFilePath = "")
		{
			if (language == vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D3FAAA6 ^ 0x4D3FA286))
			{
				JE2jqYSX2M(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-212927946 ^ -212929762));
			}
			else
			{
				JE2jqYSX2M(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89CC94));
			}
		}

		internal static void aov5OM1nl(string resourceName)
		{
			try
			{
				Assembly executingAssembly = Assembly.GetExecutingAssembly();
				using Stream stream = executingAssembly.GetManifestResourceStream(resourceName);
				if (stream == null)
				{
					throw new FileNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1233423129 ^ -1233420929) + resourceName + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x54B071 ^ 0x54B9C1));
				}
				using StreamReader streamReader = new StreamReader(stream);
				string input = streamReader.ReadToEnd();
				WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h();
				Dictionary<string, string> graph = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>();
				string path = Path.Combine(Paths.PluginPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x38E1388 ^ 0x38E1B8C), i3OjGB9sun());
				string directoryName = Path.GetDirectoryName(path);
				if (!string.IsNullOrEmpty(directoryName) && !Directory.Exists(directoryName))
				{
					Directory.CreateDirectory(directoryName);
				}
				using StreamWriter writer = new StreamWriter(path);
				TAo4o9Gc1mCtwNx0Px8 tAo4o9Gc1mCtwNx0Px = new M43S9Rch3loupwoQiNc().jp6el8vBDA();
				tAo4o9Gc1mCtwNx0Px.snoihO4J9oi(writer, graph);
			}
			catch (Exception ex)
			{
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-212927946 ^ -212929542) + ex.Message));
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-177006131 ^ -177007657) + ex.StackTrace));
			}
		}

		internal static void RKKzRRAxA(string languageFilePath)
		{
			try
			{
				using StreamReader streamReader = new StreamReader(languageFilePath);
				string input = streamReader.ReadToEnd();
				WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h();
				fR8jeuBuXL = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>();
			}
			catch (Exception ex)
			{
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-858716293 ^ -858714817) + ex.Message));
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x674B8EC1 ^ 0x674B84DB) + ex.StackTrace));
			}
		}

		internal static void JE2jqYSX2M(string resourceName)
		{
			try
			{
				Assembly executingAssembly = Assembly.GetExecutingAssembly();
				using Stream stream = executingAssembly.GetManifestResourceStream(resourceName);
				if (stream == null)
				{
					throw new FileNotFoundException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xBD77B97 ^ 0xBD7720F) + resourceName + vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x12447BD4 ^ 0x12447264));
				}
				using StreamReader streamReader = new StreamReader(stream);
				string input = streamReader.ReadToEnd();
				WMV46dpC21ryWqYUB32 wMV46dpC21ryWqYUB = new W36xOFMY6gmsSw0RwnM().UT12P4lq2h();
				fR8jeuBuXL = wMV46dpC21ryWqYUB.gh0ihpWhUy3<Dictionary<string, string>>(input) ?? new Dictionary<string, string>();
			}
			catch (Exception ex)
			{
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x40558DA6 ^ 0x40558724) + ex.Message));
				ZLog.LogError((object)(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x58DF2A61 ^ 0x58DF207B) + ex.StackTrace));
			}
		}

		internal static void DpTjj2RsLg()
		{
			ConfigKeys.Bu3j35AdIZ(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-343094924 ^ -343093482), ConfigKeysEnum.ServerValidation))));
			ConfigKeys.QSpjwch8vu(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773115650), ConfigKeysEnum.ClientValidation))));
			ConfigKeys.RoIjvFLhGX(notY6gdh0<int>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x2C986D1 ^ 0x2C980B3), ConfigKeysEnum.PeriodicCheck))));
			ConfigKeys.TL1jX6GcWU(notY6gdh0<string>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1528009292 ^ -1528009770), ConfigKeysEnum.CustomRelativePoint))));
			ConfigKeys.BE7jTCuZvu(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x58DF2A61 ^ 0x58DF2C03), ConfigKeysEnum.LogSwitch))));
			ConfigKeys.bMgjQiZRBC(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2061140430 ^ -2061141936), ConfigKeysEnum.DebugSwitch))));
			ConfigKeys.W5njEh91Ub(notY6gdh0<bool>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1817480036 ^ -1817480450), ConfigKeysEnum.ResetLogSwitch))));
			ConfigKeys.EBnjBeOSc8(notY6gdh0<float>(eAk0mC6O1(string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF6509), ConfigKeysEnum.ResetLogTime))));
		}
	}
}
namespace Rippleheart
{
	[Serializable]
	public class ConfigKeys
	{
		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static string vy3jKw0Y9C;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string J4kjRxAhcp;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static int dPCjbKYtp8;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string Io5jC7CqKA;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool m2NjWutMRE;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool GyCjNC1bZw;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool F11j9X7AkS;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static float V8sjVOkPnG;

		[SpecialName]
		[CompilerGenerated]
		internal static string eLqj7vQ90l()
		{
			return vy3jKw0Y9C;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void Bu3j35AdIZ(string value)
		{
			vy3jKw0Y9C = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static string QtYjdEHQMu()
		{
			return J4kjRxAhcp;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void QSpjwch8vu(string value)
		{
			J4kjRxAhcp = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static int L4rjaHrWSS()
		{
			return dPCjbKYtp8;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void RoIjvFLhGX(int value)
		{
			dPCjbKYtp8 = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static string cAUjAYx0W7()
		{
			return Io5jC7CqKA;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void TL1jX6GcWU(string value)
		{
			Io5jC7CqKA = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static bool rXajskL3iw()
		{
			return m2NjWutMRE;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void BE7jTCuZvu(bool value)
		{
			m2NjWutMRE = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static bool f5kjocgsNL()
		{
			return GyCjNC1bZw;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void bMgjQiZRBC(bool value)
		{
			GyCjNC1bZw = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static bool LdGjZktdmp()
		{
			return F11j9X7AkS;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void W5njEh91Ub(bool value)
		{
			F11j9X7AkS = value;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static float cdYj4rqtO5()
		{
			return V8sjVOkPnG;
		}

		[SpecialName]
		[CompilerGenerated]
		internal static void EBnjBeOSc8(float value)
		{
			V8sjVOkPnG = value;
		}
	}
	public enum ConfigKeysEnum
	{
		ServerValidation,
		ClientValidation,
		PeriodicCheck,
		CustomRelativePoint,
		LogSwitch,
		DebugSwitch,
		ResetLogSwitch,
		ResetLogTime
	}
	public class RippleheartCore
	{
		public class RpcMessageHandler
		{
			internal static async void sCPjUwQ2Gv(ZRpc rpc, ZPackage package)
			{
				if (ZNet.instance.IsServer() || ZNet.instance.IsDedicated())
				{
					await SyCjfCotr0(rpc, package);
				}
				else
				{
					await r5DjLF4YRt(rpc, package);
				}
			}

			internal static async Task SyCjfCotr0(ZRpc rpc, ZPackage pkg)
			{
				int flag = pkg.ReadInt();
				switch (flag)
				{
				case 0:
				{
					string version = pkg.ReadString();
					if (c5ujhLwUbS(rpc, version))
					{
						ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-671560037 ^ -671563083)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x31EF5040 ^ 0x31EF5070), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-522430133 ^ -522429913)));
						Server.t4JjOMwK01(rpc, 1);
					}
					break;
				}
				case 1:
				{
					if (!pkg.ReadBool())
					{
						ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-896128074 ^ -896129046)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573519080), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF62CC)));
						rpc.GetSocket().Dispose();
						break;
					}
					ZNetPeer peer = Tools.fT98704P3V(rpc);
					if (!ZNet.instance.IsAdmin(peer.m_socket.GetHostName()))
					{
						Tools.Sg08cMuPUf(rpc, 2, isCritical: true);
					}
					else
					{
						ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4E685CE8 ^ 0x4E685070)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x126727B8 ^ 0x12672788), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1233423129 ^ -1233422453)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1373249349 ^ -1373249029), peer.m_socket.GetHostName()));
					}
					break;
				}
				case 2:
				{
					StringBuilder logBuilder = new StringBuilder();
					logBuilder.AppendLine("");
					logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x567A1955 ^ 0x567A19C1));
					if (Modinfo.a == 1)
					{
						logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-573479684 ^ -573478860)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x67065854 ^ 0x67065864), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4DE3A3E ^ 0x4DE3952)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x66CD65D2 ^ 0x66CD6492), Tools.fT98704P3V(rpc).m_socket.GetHostName())
							.Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-797989608 ^ -797987114), Modinfo.a++.ToString()));
					}
					else
					{
						logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x7CDEE713 ^ 0x7CDEEBE7)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x45759294 ^ 0x457592A4), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A9BFE)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967973495), Tools.fT98704P3V(rpc).m_playerName)
							.Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-220351450 ^ -220348440), Modinfo.a++.ToString()));
					}
					Task<bool> task = Server.bFFjyiEly8(pkg, logBuilder);
					if (await task)
					{
						Tools.Sg08cMuPUf(rpc, 2, isCritical: true);
					}
					else
					{
						rpc.GetSocket().Dispose();
						Modinfo.a = 1;
						logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0xEB79778 ^ 0xEB79A56)));
					}
					logBuilder.AppendLine(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x6F17A26D ^ 0x6F17A2F9));
					Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString());
					break;
				}
				case 3:
					if (!pkg.ReadBool())
					{
						rpc.GetSocket().Dispose();
						Rippleheart.VGVRlWvKG.LogError(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(--1545155712 ^ 0x5C1939E2)));
					}
					break;
				default:
					throw new NotImplementedException(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1314171080 ^ -1314170202)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B25E), flag.ToString()));
				}
			}

			internal static async Task r5DjLF4YRt(ZRpc rpc, ZPackage pkg)
			{
				switch (pkg.ReadInt())
				{
				case 0:
				{
					string version = pkg.ReadString();
					c5ujhLwUbS(rpc, version);
					break;
				}
				case 1:
				{
					if (!Client.jmp88qBrni(pkg))
					{
						Tools.Sg08cMuPUf(rpc, 1, isCritical: false);
						break;
					}
					StringBuilder logBuilder = new StringBuilder();
					await Client.Ls182WH9YK(rpc, 2, new StringBuilder());
					Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString());
					break;
				}
				case 2:
					Modinfo.eIl9gNZnH(pkg.ReadBool());
					break;
				default:
					throw new NotImplementedException();
				}
			}
		}

		public static class Server
		{
			internal static void t4JjOMwK01(ZRpc rpc, int messageTag)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Expected O, but got Unknown
				ZPackage val = new ZPackage();
				val.Write(messageTag);
				byte[] array;
				using (MemoryStream memoryStream = new MemoryStream())
				{
					BinaryFormatter binaryFormatter = new BinaryFormatter();
					binaryFormatter.Serialize(memoryStream, zvDMX7LmQumenl0slt.e1jjJj5mgP);
					array = memoryStream.ToArray();
				}
				val.Write(array);
				rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2044712085 ^ -2044714973), new object[1] { val });
			}

			internal static void I84jYJNqHG(string server, StringBuilder logBuilder)
			{
				string Qmf8q1g7P8 = server;
				StringBuilder DSt8jJaghx = logBuilder;
				Task.Run(delegate
				{
					joMjxNPvj2 = MTHC.rgJ3fWOxI(Qmf8q1g7P8, DSt8jJaghx);
				});
				Task.Run(delegate
				{
					sCpj1ggOUx = MTHC.SMcPLmtXD();
				});
			}

			internal static Task<bool> bFFjyiEly8(ZPackage pkg, StringBuilder logBuilder)
			{
				byte[] serializedData = pkg.ReadByteArray();
				ConcurrentDictionary<string, string> clientHashes = Tools.Ex38etqqFu<ConcurrentDictionary<string, string>>(serializedData);
				if (joMjxNPvj2 != null && sCpj1ggOUx != null)
				{
					string[] value = (from p in Path.GetFileName(ConfigKeys.QtYjdEHQMu()).Split(new char[1] { ',' })
						where p.Length > 2
						select p.Substring(2)).ToArray();
					logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-773114212 ^ -773113014)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x45759294 ^ 0x457592A4), string.Join(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120038618), value)));
					bool result = DB.SYD4uLsV5(clientHashes, joMjxNPvj2, sCpj1ggOUx, logBuilder);
					return Task.FromResult(result);
				}
				logBuilder.AppendLine(zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x2C986D1 ^ 0x2C988DF)));
				return Task.FromResult(result: false);
			}
		}

		public static class Client
		{
			internal static bool jmp88qBrni(ZPackage zpackage)
			{
				byte[] buffer = zpackage.ReadByteArray();
				try
				{
					using MemoryStream serializationStream = new MemoryStream(buffer);
					BinaryFormatter binaryFormatter = new BinaryFormatter();
					if (binaryFormatter.Deserialize(serializationStream) is Dictionary<string, object> e1jjJj5mgP)
					{
						zvDMX7LmQumenl0slt.e1jjJj5mgP = e1jjJj5mgP;
						ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5B89C4A6 ^ 0x5B89CA92)));
						foreach (KeyValuePair<string, object> item in zvDMX7LmQumenl0slt.e1jjJj5mgP)
						{
							ZLog.Log((object)string.Format(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-73906972 ^ -73905526), item.Key, item.Value));
						}
						zvDMX7LmQumenl0slt.VL16sK0bf();
						RippleheartLogger.LL88dg54lq(Path.Combine(Paths.ConfigPath, vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x61791B76)), a: false);
						return true;
					}
					ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-2061140430 ^ -2061143932)));
					return false;
				}
				catch (Exception ex)
				{
					ZLog.LogError((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A9662)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x35CF61A0 ^ 0x35CF6190), ex.Message));
					return false;
				}
			}

			internal static async void iiq8F2YRC1()
			{
				StringBuilder logBuilder = new StringBuilder();
				ZNetPeer peer = Tools.TWx83sfVBU(ZNet.instance.GetServerPeer().m_uid, a: false);
				if (peer != null)
				{
					await Ls182WH9YK(peer, 2, logBuilder);
				}
				else
				{
					ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x617915F2 ^ 0x61791ADC)));
				}
				Rippleheart.VGVRlWvKG.LogInfo(logBuilder.ToString());
			}

			internal static void Vwu8M5I3EN()
			{
				StringBuilder stringBuilder = new StringBuilder();
				ZNetPeer val = Tools.TWx83sfVBU(ZNet.instance.GetServerPeer().m_uid, a: false);
				if (val != null)
				{
					Tools.Sg08cMuPUf(val, 3, isCritical: false);
				}
				else
				{
					ZLog.LogWarning((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-866810000 ^ -866809762)));
				}
				Rippleheart.VGVRlWvKG.LogInfo(stringBuilder.ToString());
			}

			internal static async Task Ls182WH9YK(object peerOrRpc, int logo, StringBuilder logBuilder)
			{
				byte[] bytes = await E998iOPw80(logBuilder);
				ZPackage package = new ZPackage();
				package.Write(logo);
				package.Write(bytes);
				ZNetPeer peer = (ZNetPeer)((peerOrRpc is ZNetPeer) ? peerOrRpc : null);
				if (peer != null)
				{
					peer.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x28A96030 ^ 0x28A96B78), new object[1] { package });
					return;
				}
				ZRpc rpc = (ZRpc)((peerOrRpc is ZRpc) ? peerOrRpc : null);
				if (rpc != null)
				{
					rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x5A21B26E ^ 0x5A21B926), new object[1] { package });
					return;
				}
				throw new ArgumentException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1297663721 ^ -1297664387));
			}

			internal static async Task<byte[]> E998iOPw80(StringBuilder logBuilder)
			{
				StringBuilder M728G76UD7 = logBuilder;
				return await Task.Run(() => Tools.zxJ8JxSM5h(MTHC.rgJ3fWOxI(Path.Combine(Paths.GameRootPath) + ConfigKeys.QtYjdEHQMu(), M728G76UD7, isServer: false)));
			}
		}

		public static class Tools
		{
			internal static void Sg08cMuPUf(object peerOrRpc, int messageTag, bool isCritical)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Expected O, but got Unknown
				ZPackage val = new ZPackage();
				val.Write(messageTag);
				val.Write(isCritical);
				ZNetPeer val2 = (ZNetPeer)((peerOrRpc is ZNetPeer) ? peerOrRpc : null);
				if (val2 != null)
				{
					val2.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x48C90B08 ^ 0x48C90040), new object[1] { val });
					return;
				}
				ZRpc val3 = (ZRpc)((peerOrRpc is ZRpc) ? peerOrRpc : null);
				if (val3 != null)
				{
					val3.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-671560037 ^ -671562285), new object[1] { val });
					return;
				}
				throw new ArgumentException(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120035136));
			}

			internal static T Ex38etqqFu<T>(byte[] serializedData)
			{
				using MemoryStream serializationStream = new MemoryStream(serializedData);
				BinaryFormatter binaryFormatter = new BinaryFormatter();
				return (T)binaryFormatter.Deserialize(serializationStream);
			}

			internal static byte[] zxJ8JxSM5h<T>(T objectToSerialize)
			{
				using MemoryStream memoryStream = new MemoryStream();
				BinaryFormatter binaryFormatter = new BinaryFormatter();
				binaryFormatter.Serialize(memoryStream, objectToSerialize);
				return memoryStream.ToArray();
			}

			internal static ZNetPeer fT98704P3V(ZRpc rpc)
			{
				foreach (ZNetPeer connectedPeer in ZNet.instance.GetConnectedPeers())
				{
					if (connectedPeer.m_rpc == rpc)
					{
						return connectedPeer;
					}
				}
				return null;
			}

			internal static ZNetPeer TWx83sfVBU(long uid, bool a)
			{
				List<ZNetPeer> list = new List<ZNetPeer>();
				list = (List<ZNetPeer>)(a ? ((IList)swY8PJGVa7()) : ((IList)ZNet.instance.GetConnectedPeers()));
				foreach (ZNetPeer item in list)
				{
					if (item.m_uid == uid)
					{
						return item;
					}
				}
				return null;
			}

			internal static List<ZNetPeer> swY8PJGVa7()
			{
				FieldInfo fieldInfo = AccessTools.Field(typeof(ZRoutedRpc), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1573519064 ^ -1573515598));
				return (List<ZNetPeer>)fieldInfo.GetValue(ZRoutedRpc.instance);
			}
		}

		internal static ConcurrentDictionary<string, string>? joMjxNPvj2;

		internal static ConcurrentDictionary<string, string>? sCpj1ggOUx;

		internal static void adgjDFm0wN(ZNetPeer peer)
		{
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Expected O, but got Unknown
			if (ZNet.instance.IsServer() || ZNet.instance.IsDedicated())
			{
				ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1983369307 ^ -1983371913)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1783300021 ^ -1783299973), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x72BF636B ^ 0x72BF6007)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1120038486 ^ -1120038678), peer.m_socket.GetHostName()));
			}
			else
			{
				ZLog.Log((object)zvDMX7LmQumenl0slt.eAk0mC6O1(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-967973687 ^ -967970875)).Replace(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x4D8A9892 ^ 0x4D8A98A2), vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1247458479 ^ -1247459267)));
			}
			ZPackage val = new ZPackage();
			val.Write(0);
			val.Write(MTHC.GetCurrentAssemblyHash());
			peer.m_rpc.Invoke(vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-754245056 ^ -754243320), new object[1] { val });
		}

		internal static bool c5ujhLwUbS(ZRpc rpc, string version)
		{
			if (version != MTHC.GetCurrentAssemblyHash())
			{
				string newValue = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(0x15A37FBE ^ 0x15A374C4) + version;
				string newValue2 = vgylUai99P4JJEHo3lAx.A46iV8ZejLa(-1901140752 ^ -1901138038) + MTHC.GetCurrentAssemblyHash();
				s